* Tried to fix NVIDIA shininess==0 bug (again!)
* MTL loader now properly follows spec regarding initial values of colors * TangentBinormalGenerator now throws proper exception on missing normals git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@7730 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
This commit is contained in:
parent
951d9fe23a
commit
9f7d5410b7
@ -78,7 +78,7 @@ jnlp.signed=true
|
|||||||
jnlp.signing=generated
|
jnlp.signing=generated
|
||||||
jnlp.signing.alias=
|
jnlp.signing.alias=
|
||||||
jnlp.signing.keystore=
|
jnlp.signing.keystore=
|
||||||
main.class=jme3test.export.TestOgreConvert
|
main.class=testcases.ObjImport
|
||||||
manifest.file=MANIFEST.MF
|
manifest.file=MANIFEST.MF
|
||||||
meta.inf.dir=${src.dir}/META-INF
|
meta.inf.dir=${src.dir}/META-INF
|
||||||
mkdist.disabled=false
|
mkdist.disabled=false
|
||||||
|
@ -101,7 +101,9 @@ float lightComputeSpecular(in vec3 norm, in vec3 viewdir, in vec3 lightdir, in f
|
|||||||
vec2 computeLighting(in vec3 wvPos, in vec3 wvNorm, in vec3 wvViewDir, in vec3 wvLightDir){
|
vec2 computeLighting(in vec3 wvPos, in vec3 wvNorm, in vec3 wvViewDir, in vec3 wvLightDir){
|
||||||
float diffuseFactor = lightComputeDiffuse(wvNorm, wvLightDir, wvViewDir);
|
float diffuseFactor = lightComputeDiffuse(wvNorm, wvLightDir, wvViewDir);
|
||||||
float specularFactor = lightComputeSpecular(wvNorm, wvViewDir, wvLightDir, m_Shininess);
|
float specularFactor = lightComputeSpecular(wvNorm, wvViewDir, wvLightDir, m_Shininess);
|
||||||
specularFactor *= step(1.0, m_Shininess);
|
|
||||||
|
// if shininess is == 0, spec == 0, if shininess > 1, spec == 1
|
||||||
|
specularFactor *= min(1.0, m_Shininess);
|
||||||
|
|
||||||
#ifdef HQ_ATTENUATION
|
#ifdef HQ_ATTENUATION
|
||||||
float att = clamp(1.0 - g_LightPosition.w * length(lightVec), 0.0, 1.0);
|
float att = clamp(1.0 - g_LightPosition.w * length(lightVec), 0.0, 1.0);
|
||||||
|
@ -92,8 +92,8 @@ public class MTLLoader implements AssetLoader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected void resetMaterial(){
|
protected void resetMaterial(){
|
||||||
ambient.set(ColorRGBA.Black);
|
ambient.set(ColorRGBA.DarkGray);
|
||||||
diffuse.set(ColorRGBA.Black);
|
diffuse.set(ColorRGBA.LightGray);
|
||||||
specular.set(ColorRGBA.Black);
|
specular.set(ColorRGBA.Black);
|
||||||
shininess = 16;
|
shininess = 16;
|
||||||
shadeless = false;
|
shadeless = false;
|
||||||
@ -189,6 +189,9 @@ public class MTLLoader implements AssetLoader {
|
|||||||
specular.set(readColor());
|
specular.set(readColor());
|
||||||
}else if (cmd.equals("ns")){
|
}else if (cmd.equals("ns")){
|
||||||
shininess = scan.nextFloat(); /* (128f / 1000f)*/
|
shininess = scan.nextFloat(); /* (128f / 1000f)*/
|
||||||
|
if (specular.equals(ColorRGBA.Black)){
|
||||||
|
specular.set(ColorRGBA.White);
|
||||||
|
}
|
||||||
}else if (cmd.equals("d") || cmd.equals("tr")){
|
}else if (cmd.equals("d") || cmd.equals("tr")){
|
||||||
alpha = scan.nextFloat();
|
alpha = scan.nextFloat();
|
||||||
transparent = true;
|
transparent = true;
|
||||||
|
@ -166,6 +166,10 @@ public class TangentBinormalGenerator {
|
|||||||
t[i] = new Vector2f();
|
t[i] = new Vector2f();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (mesh.getBuffer(Type.Normal) == null){
|
||||||
|
throw new IllegalArgumentException("The given mesh has no normal data!");
|
||||||
|
}
|
||||||
|
|
||||||
VertexData[] vertices;
|
VertexData[] vertices;
|
||||||
switch (mesh.getMode()) {
|
switch (mesh.getMode()) {
|
||||||
case Triangles:
|
case Triangles:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user