Browse Source

Normalized the wNormal and wTangent before computing the TBN mat in the PBRLighting frag shader

Nehon 9 năm trước cách đây
mục cha
commit
556aaa4396

+ 3 - 1
jme3-core/src/main/resources/Common/MatDefs/Light/PBRLighting.frag

@@ -78,7 +78,9 @@ void main(){
     vec3 viewDir = normalize(g_CameraPosition - wPosition);
 
     #if defined(NORMALMAP) || defined(PARALLAXMAP)
-      mat3 tbnMat = mat3(wTangent.xyz, wTangent.w * cross( (wNormal), (wTangent.xyz)), wNormal.xyz);
+      vec3 tan = normalize(wTangent.xyz);
+      vec3 norm = normalize(wNormal);
+      mat3 tbnMat = mat3(tan, wTangent.w * cross(norm, tan), norm.xyz);
     #endif
 
     #if (defined(PARALLAXMAP) || (defined(NORMALMAP_PARALLAX) && defined(NORMALMAP)))