From f09cda0927b5022565a64dbbc19071e19020b6d3 Mon Sep 17 00:00:00 2001 From: Dmitri K Date: Fri, 2 Dec 2016 17:49:43 -0500 Subject: [PATCH] fixing weird normals bug --- src/shaders/basicShader.frag | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/shaders/basicShader.frag b/src/shaders/basicShader.frag index d1eec2b..384b55c 100644 --- a/src/shaders/basicShader.frag +++ b/src/shaders/basicShader.frag @@ -30,16 +30,16 @@ vec4 calcDirLight(vec4 tex, vec3 fPos, vec3 fNorm) { if(useNormalMap) { vec3 vNorm = texture(texNormal, texCoords).rgb; - nfNormal = normalize(normalMatrix * vNorm); + nfNormal = normalMatrix * normalize(2 * vNorm - 1); } else { nfNormal = normalize(fNorm); } // Compute diffuse component - float diff = 0.2*max(0.0, dot(nfNormal, -LightDirection)); + float diff = 0.2*max(0.0, dot(nfNormal, -LightDirection)); // Compute specular component - vec3 Rl = reflect(LightDirection, nfNormal); + vec3 Rl = reflect(-LightDirection, nfNormal); float spec = 0.2*pow(max(0.0, dot(/*normalMatrix */ Rl, nviewDirection)), 64); // Compute ambient component @@ -60,7 +60,8 @@ vec4 calcPointLight(vec4 tex, vec3 fPos, vec3 fNorm, int i) { if(useNormalMap) { vec3 vNorm = texture(texNormal, texCoords).rgb; - nfNormal = normalize(normalMatrix * vNorm); + //nfNormal = normalize(normalMatrix * vNorm); + nfNormal = normalMatrix * normalize(2 * vNorm - 1); } else { nfNormal = normalize(fNorm); }