瀏覽代碼

Fix irradiance in fragment

Sebastien Vandenberghe 8 年之前
父節點
當前提交
29d97fc846
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      src/Shaders/pbr.fragment.fx

+ 5 - 1
src/Shaders/pbr.fragment.fx

@@ -563,7 +563,11 @@ void main(void) {
 		#if defined(NORMAL) && !defined(USESPHERICALINFRAGMENT)
 			environmentIrradiance = vEnvironmentIrradiance;
 		#else
-			environmentIrradiance = environmentIrradianceJones(reflectionVector);
+			vec3 irradianceVector = vec3(reflectionMatrix * vec4(vNormalW, 0)).xyz;
+			#ifdef REFLECTIONMAP_OPPOSITEZ
+				irradianceVector.z *= -1.0;
+			#endif
+			environmentIrradiance = environmentIrradianceJones(irradianceVector);
 		#endif
 	#endif