From a5ac8d1093e0d54b7e2563eb3ea120e0e792481f Mon Sep 17 00:00:00 2001 From: yum Date: Tue, 24 Mar 2026 19:14:44 -0700 Subject: Try to avoid NaN in dominant direction calculation --- lighting.cginc | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lighting.cginc') diff --git a/lighting.cginc b/lighting.cginc index 0287f51..8b6693c 100755 --- a/lighting.cginc +++ b/lighting.cginc @@ -145,7 +145,15 @@ float4 getIndirectDiffuse(v2f i, Pbr pbr, inout LightData light) { ); // Multiply unit vector by L1 matrix to get vector pointing in direction of // light. + float3 raw_dir = mul(mat, float3(1,1,1)); + float raw_dir_len = length(raw_dir); float3 dom_dir = normalize(mul(mat, float3(1,1,1))); + if (abs(raw_dir_len) < 1e-3) { + dom_dir = light.direct.dir; + } else { + dom_dir = raw_dir; + } + dom_dir = normalize(dom_dir); light.indirect.diffuse_dominant_dir = dom_dir; #endif -- cgit v1.2.3