Browse Source

- make GeometryBatchFactory check for diffuse texture before applying normal textures
- make GeometryBatchFactory throw exception when atlas is full

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9042 75d07b2b-3a1a-0410-a2c5-0572b91ccdca

nor..67 13 năm trước cách đây
mục cha
commit
d5c766cc8b

+ 9 - 8
engine/src/tools/jme3tools/optimize/GeometryBatchFactory.java

@@ -339,13 +339,14 @@ public class GeometryBatchFactory {
             if (diffuse != null && diffuse.getKey() != null) {
                 String keyName = diffuse.getKey().getName();
                 if (!atlas.addTexture(diffuse, "DiffuseMap")) {
-                    logger.log(Level.WARNING, "Adding diffuse texture {0} to atlas failed, atlas full?", keyName);
-                }
-                if (normal != null && normal.getKey() != null) {
-                    atlas.addTexture(diffuse, "NormalMap", keyName);
-                }
-                if (specular != null && specular.getKey() != null) {
-                    atlas.addTexture(specular, "SpecularMap", keyName);
+                    throw new IllegalStateException("Adding diffuse texture" + keyName + "to atlas failed, atlas full.");
+                } else {
+                    if (normal != null && normal.getKey() != null) {
+                        atlas.addTexture(diffuse, "NormalMap", keyName);
+                    }
+                    if (specular != null && specular.getKey() != null) {
+                        atlas.addTexture(specular, "SpecularMap", keyName);
+                    }
                 }
             }
         }
@@ -370,7 +371,7 @@ public class GeometryBatchFactory {
             mat.setTexture("SpecularMap", specularMap);
         }
         mat.setFloat("Shininess", 16.0f);
-        
+
         geom.setMaterial(mat);
         return geom;
     }