瀏覽代碼

- 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 年之前
父節點
當前提交
d5c766cc8b
共有 1 個文件被更改,包括 9 次插入8 次删除
  1. 9 8
      engine/src/tools/jme3tools/optimize/GeometryBatchFactory.java

+ 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;
     }