add impossible normal viewing angle mitigation for specular reflections

This commit is contained in:
Xonk
2026-07-15 23:08:52 -04:00
parent 51680594fa
commit fab413d2bb
+3
View File
@@ -342,6 +342,9 @@ vec3 specularReflections(
mat3 basis = CoordBase(normal); mat3 basis = CoordBase(normal);
vec3 viewDir = -playerPos*basis; vec3 viewDir = -playerPos*basis;
// impossible normal viewing angle mitigation.
viewDir.z = abs(viewDir.z);
#if defined FORWARD_ROUGH_REFLECTION || defined DEFERRED_ROUGH_REFLECTION #if defined FORWARD_ROUGH_REFLECTION || defined DEFERRED_ROUGH_REFLECTION
vec3 samplePoints = SampleVNDFGGX(viewDir, roughness, noise.xy); vec3 samplePoints = SampleVNDFGGX(viewDir, roughness, noise.xy);
vec3 reflectedVector_L = basis * reflect(-normalize(viewDir), samplePoints); vec3 reflectedVector_L = basis * reflect(-normalize(viewDir), samplePoints);