summaryrefslogtreecommitdiffstats
path: root/lighting.cginc
diff options
context:
space:
mode:
Diffstat (limited to 'lighting.cginc')
-rwxr-xr-xlighting.cginc8
1 files changed, 8 insertions, 0 deletions
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