FIXED: Issue 430: Blender loader sets blend mode = alpha on material that is not really transparent
git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8900 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
4b55383ba0
commit
0e4f115e84
@ -63,7 +63,6 @@ public final class MaterialContext {
|
|||||||
int mode = ((Number) structure.getFieldValue("mode")).intValue();
|
int mode = ((Number) structure.getFieldValue("mode")).intValue();
|
||||||
shadeless = (mode & 0x4) != 0;
|
shadeless = (mode & 0x4) != 0;
|
||||||
vertexColor = (mode & 0x80) != 0;
|
vertexColor = (mode & 0x80) != 0;
|
||||||
transparent = (mode & 0x10000) != 0;
|
|
||||||
vTangent = (mode & 0x4000000) != 0; // NOTE: Requires tangents
|
vTangent = (mode & 0x4000000) != 0; // NOTE: Requires tangents
|
||||||
|
|
||||||
int diff_shader = ((Number) structure.getFieldValue("diff_shader")).intValue();
|
int diff_shader = ((Number) structure.getFieldValue("diff_shader")).intValue();
|
||||||
@ -90,6 +89,7 @@ public final class MaterialContext {
|
|||||||
float shininess = ((Number) structure.getFieldValue("emit")).floatValue();
|
float shininess = ((Number) structure.getFieldValue("emit")).floatValue();
|
||||||
this.shininess = shininess > 0.0f ? shininess : MaterialHelper.DEFAULT_SHININESS;
|
this.shininess = shininess > 0.0f ? shininess : MaterialHelper.DEFAULT_SHININESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
float[] diffuseColorArray = new float[] {diffuseColor.r, diffuseColor.g, diffuseColor.b, diffuseColor.a};//TODO: czy trzeba wstawiac te dane?
|
float[] diffuseColorArray = new float[] {diffuseColor.r, diffuseColor.g, diffuseColor.b, diffuseColor.a};//TODO: czy trzeba wstawiac te dane?
|
||||||
|
|
||||||
mTexs = new ArrayList<Structure>();
|
mTexs = new ArrayList<Structure>();
|
||||||
@ -161,6 +161,21 @@ public final class MaterialContext {
|
|||||||
|
|
||||||
this.texturesCount = mTexs.size();
|
this.texturesCount = mTexs.size();
|
||||||
this.textureType = firstTextureType;
|
this.textureType = firstTextureType;
|
||||||
|
|
||||||
|
//veryfying if the transparency is present
|
||||||
|
//(in blender transparent mask is 0x10000 but its better to verify it because blender can indicate transparency when
|
||||||
|
//it is not required
|
||||||
|
boolean transparent = false;
|
||||||
|
if(diffuseColor != null) {
|
||||||
|
transparent = diffuseColor.a < 1.0f;
|
||||||
|
}
|
||||||
|
if(specularColor != null) {
|
||||||
|
transparent = transparent || specularColor.a < 1.0f;
|
||||||
|
}
|
||||||
|
if(ambientColor != null) {
|
||||||
|
transparent = transparent || ambientColor.a < 1.0f;
|
||||||
|
}
|
||||||
|
this.transparent = transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user