Material assignation fix when blender does not fully assigns the materials. Proper warning is generated and default material is used.
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@9693 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
49c47f8174
commit
6c2f7288b7
@ -34,6 +34,7 @@ package com.jme3.scene.plugins.blender.meshes;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
import com.jme3.asset.BlenderKey.FeaturesToLoad;
|
import com.jme3.asset.BlenderKey.FeaturesToLoad;
|
||||||
import com.jme3.math.Vector2f;
|
import com.jme3.math.Vector2f;
|
||||||
@ -62,6 +63,8 @@ import com.jme3.util.BufferUtils;
|
|||||||
* @author Marcin Roguski (Kaelthas)
|
* @author Marcin Roguski (Kaelthas)
|
||||||
*/
|
*/
|
||||||
public class MeshHelper extends AbstractBlenderHelper {
|
public class MeshHelper extends AbstractBlenderHelper {
|
||||||
|
private static final Logger LOGGER = Logger.getLogger(MeshHelper.class.getName());
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This constructor parses the given blender version and stores the result. Some functionalities may differ in different blender
|
* This constructor parses the given blender version and stores the result. Some functionalities may differ in different blender
|
||||||
* versions.
|
* versions.
|
||||||
@ -213,6 +216,11 @@ public class MeshHelper extends AbstractBlenderHelper {
|
|||||||
List<Vector2f> uvCoordinates = meshBuilder.getUVCoordinates(materialNumber);
|
List<Vector2f> uvCoordinates = meshBuilder.getUVCoordinates(materialNumber);
|
||||||
MaterialContext materialContext = materials[materialNumber];
|
MaterialContext materialContext = materials[materialNumber];
|
||||||
materialContext.applyMaterial(geometry, structure.getOldMemoryAddress(), uvCoordinates, blenderContext);
|
materialContext.applyMaterial(geometry, structure.getOldMemoryAddress(), uvCoordinates, blenderContext);
|
||||||
|
} else {
|
||||||
|
geometry.setMaterial(blenderContext.getDefaultMaterial());
|
||||||
|
LOGGER.warning("The importer came accross mesh that points to a null material. Default material is used to prevent loader from crashing, " +
|
||||||
|
"but the model might look not the way it should. Sometimes blender does not assign materials properly. " +
|
||||||
|
"Enter the edit mode and assign materials once more to your faces.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user