Selaa lähdekoodia

Bugfix: allowing to use vertex colors when mesh has no material defined in blender.

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@10916 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
Kae..pl 11 vuotta sitten
vanhempi
commit
1e33d2b0f3

+ 8 - 2
engine/src/blender/com/jme3/scene/plugins/blender/meshes/MeshHelper.java

@@ -48,6 +48,7 @@ import com.jme3.scene.Mesh;
 import com.jme3.scene.Mesh.Mode;
 import com.jme3.scene.VertexBuffer;
 import com.jme3.scene.VertexBuffer.Format;
+import com.jme3.scene.VertexBuffer.Type;
 import com.jme3.scene.VertexBuffer.Usage;
 import com.jme3.scene.plugins.blender.AbstractBlenderHelper;
 import com.jme3.scene.plugins.blender.BlenderContext;
@@ -120,7 +121,7 @@ public class MeshHelper extends AbstractBlenderHelper {
             materials = materialHelper.getMaterials(structure, blenderContext);
         }
 
-        LOGGER.fine("Reading vertices and their colors.");
+        LOGGER.fine("Reading vertices.");
         MeshBuilder meshBuilder = new MeshBuilder(structure, materials, blenderContext);
         if (meshBuilder.isEmpty()) {
             LOGGER.fine("The geometry is empty.");
@@ -201,7 +202,12 @@ public class MeshHelper extends AbstractBlenderHelper {
                 if (mode != Mode.Triangles && mode != Mode.TriangleFan && mode != Mode.TriangleStrip) {
                     geometry.setMaterial(this.getBlackUnshadedMaterial(blenderContext));
                 } else {
-                    geometry.setMaterial(blenderContext.getDefaultMaterial());
+                    Material defaultMaterial = blenderContext.getDefaultMaterial();
+                    if(geometry.getMesh().getBuffer(Type.Color) != null) {
+                        defaultMaterial = defaultMaterial.clone();
+                        defaultMaterial.setBoolean("VertexColor", true);
+                    }
+                    geometry.setMaterial(defaultMaterial);
                 }
                 if (uvCoordsBuffer != null) {
                     for (VertexBuffer buffer : uvCoordsBuffer) {