From 396256b6e064bf6b45e2a9d29c4b225676c3fcb2 Mon Sep 17 00:00:00 2001 From: plagman Date: Fri, 15 May 2009 14:23:08 +0000 Subject: [PATCH] Tweak the lighting model so that specular highlights ignore the diffuse map value when a specular map is defined. git-svn-id: https://svn.eduke32.com/eduke32@1380 1a8010ca-5511-0410-912e-c29ae57300e0 --- polymer/eduke32/build/src/polymer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/polymer/eduke32/build/src/polymer.c b/polymer/eduke32/build/src/polymer.c index 511253d11..b28bb96fb 100644 --- a/polymer/eduke32/build/src/polymer.c +++ b/polymer/eduke32/build/src/polymer.c @@ -255,6 +255,7 @@ _prprogrambit prprogrambits[PR_BIT_COUNT] = { "\n", // frag_prog " diffuseTexel = texture2D(diffuseMap, commonTexCoord.st);\n" + " specTexel = diffuseTexel;\n" " if (isLightingPass == 0)\n" " result *= diffuseTexel;\n" "\n", @@ -486,12 +487,12 @@ _prprogrambit prprogrambits[PR_BIT_COUNT] = { "\n" " R = reflect(-L, N);\n" "\n" - " lightDiffuse = diffuseTexel.a * gl_Color.a * diffuseTexel.rgb * shadowResult *\n" + " lightDiffuse = diffuseTexel.a * gl_Color.a * shadowResult * lightTexel *\n" " gl_LightSource[0].diffuse.rgb * lightAttenuation * spotAttenuation;\n" - " result += vec4(lightDiffuse * lightTexel * NdotL, 0.0);\n" + " result += vec4(lightDiffuse * diffuseTexel.rgb * NdotL, 0.0);\n" "\n" " lightSpecular = pow( max(dot(R, E), 0.0), specularMaterial.x * specTexel.a) * specularMaterial.y;\n" - " result += vec4(lightDiffuse * lightTexel * specTexel.rgb * lightSpecular, 0.0);\n" + " result += vec4(lightDiffuse * specTexel.rgb * lightSpecular, 0.0);\n" "\n", }, {