* MTL loader now properly follows spec regarding initial values of colors
* TangentBinormalGenerator now throws proper exception on missing normals
git-svn-id: http://jmonkeyengine.googlecode.com/svn/trunk@7730
75d07b2b-3a1a-0410-a2c5-
0572b91ccdca
jnlp.signing=generated\r
jnlp.signing.alias=\r
jnlp.signing.keystore=\r
-main.class=jme3test.export.TestOgreConvert\r
+main.class=testcases.ObjImport\r
manifest.file=MANIFEST.MF\r
meta.inf.dir=${src.dir}/META-INF\r
mkdist.disabled=false\r
vec2 computeLighting(in vec3 wvPos, in vec3 wvNorm, in vec3 wvViewDir, in vec3 wvLightDir){\r
float diffuseFactor = lightComputeDiffuse(wvNorm, wvLightDir, wvViewDir);\r
float specularFactor = lightComputeSpecular(wvNorm, wvViewDir, wvLightDir, m_Shininess);\r
- specularFactor *= step(1.0, m_Shininess);\r
+\r
+ // if shininess is == 0, spec == 0, if shininess > 1, spec == 1\r
+ specularFactor *= min(1.0, m_Shininess); \r
\r
#ifdef HQ_ATTENUATION\r
float att = clamp(1.0 - g_LightPosition.w * length(lightVec), 0.0, 1.0);\r
}
protected void resetMaterial(){
- ambient.set(ColorRGBA.Black);
- diffuse.set(ColorRGBA.Black);
+ ambient.set(ColorRGBA.DarkGray);
+ diffuse.set(ColorRGBA.LightGray);
specular.set(ColorRGBA.Black);
shininess = 16;
shadeless = false;
specular.set(readColor());
}else if (cmd.equals("ns")){
shininess = scan.nextFloat(); /* (128f / 1000f)*/
+ if (specular.equals(ColorRGBA.Black)){
+ specular.set(ColorRGBA.White);
+ }
}else if (cmd.equals("d") || cmd.equals("tr")){
alpha = scan.nextFloat();
transparent = true;
v[i] = new Vector3f();
t[i] = new Vector2f();
}
+
+ if (mesh.getBuffer(Type.Normal) == null){
+ throw new IllegalArgumentException("The given mesh has no normal data!");
+ }
VertexData[] vertices;
switch (mesh.getMode()) {