2
0
Эх сурвалжийг харах

Fix clearcoat without Schlick-GGX specular.

Fixes #11698.
Ferenc Arn 8 жил өмнө
parent
commit
3e09b9b335

+ 7 - 1
drivers/gles3/shaders/scene.glsl

@@ -1013,7 +1013,7 @@ LIGHT_SHADER_CODE
 #elif defined(SPECULAR_DISABLED)
 		//none..
 
-#else
+#elif defined(SPECULAR_SCHLICK_GGX)
 		// shlick+ggx as default
 		float alpha = roughness * roughness;
 
@@ -1056,6 +1056,12 @@ LIGHT_SHADER_CODE
 #endif
 
 #if defined(LIGHT_USE_CLEARCOAT)
+# if !defined(SPECULAR_SCHLICK_GGX)
+ 		vec3 H = normalize(V + L);
+ 		float dotLH5 = SchlickFresnel( dotLH );
+ 		float dotNH = max(dot(N,H), 0.0 );
+# endif
+
 		float Dr = GTR1(dotNH, mix(.1,.001,clearcoat_gloss));
 		float Fr = mix(.04, 1.0, dotLH5);
 		float Gr = G1V(dotNL, .25) * G1V(dotNV, .25);