use of org.rajawali3d.loader.fbx.FBXValues.Objects.FBXMaterial in project Rajawali by Rajawali.
the class LoaderFBX method getMaterialForMesh.
private Material getMaterialForMesh(Object3D o, String name) {
Material mat = new Material();
FBXMaterial material = null;
Stack<Connect> conns = mFbx.connections.connections;
int num = conns.size();
String materialName = null;
for (int i = 0; i < num; ++i) {
if (conns.get(i).object2.equals(name)) {
materialName = conns.get(i).object1;
break;
}
}
if (materialName != null) {
Stack<FBXMaterial> materials = mFbx.objects.materials;
num = materials.size();
for (int i = 0; i < num; ++i) {
if (materials.get(i).name.equals(materialName)) {
material = materials.get(i);
break;
}
}
}
if (material != null) {
mat.setDiffuseMethod(new DiffuseMethod.Lambert());
mat.enableLighting(true);
Vector3 color = material.properties.diffuseColor;
mat.setColor(Color.rgb((int) (color.x * 255.f), (int) (color.y * 255.f), (int) (color.z * 255.f)));
color = material.properties.ambientColor;
mat.setAmbientColor(Color.rgb((int) (color.x * 255.f), (int) (color.y * 255.f), (int) (color.z * 255.f)));
float intensity = material.properties.ambientFactor.floatValue();
mat.setAmbientIntensity(intensity, intensity, intensity);
if (material.shadingModel.equals("phong")) {
SpecularMethod.Phong method = new SpecularMethod.Phong();
if (material.properties.specularColor != null) {
color = material.properties.specularColor;
method.setSpecularColor(Color.rgb((int) (color.x * 255.f), (int) (color.y * 255.f), (int) (color.z * 255.f)));
}
if (material.properties.shininess != null)
method.setShininess(material.properties.shininess);
}
}
return mat;
}
Aggregations