diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-03-13 18:06:23 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-03-13 18:06:34 +0300 |
commit | 3952fd199ac9285049bb22e3f9bb9aac822030c5 (patch) | |
tree | 62a03255bce347e0fd98aaa7ce9d9b35e989a45b /source | |
parent | 0e9ea707b5e5be2a38dd29dded3dd6c25a5e1992 (diff) |
Fix T59448: Eevee broken Area Light shadows for square and rectange shape
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_lights.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_lights.c b/source/blender/draw/engines/eevee/eevee_lights.c index f4fe088157e..db7d5be7cf6 100644 --- a/source/blender/draw/engines/eevee/eevee_lights.c +++ b/source/blender/draw/engines/eevee/eevee_lights.c @@ -693,6 +693,14 @@ static void eevee_light_setup(Object *ob, EEVEE_Light *evli) copy_v3_v3(evli->upvec, mat[1]); normalize_v3(evli->upvec); + /* Make sure we have a consistent Right Hand coord frame. + * (in case of negatively scaled Z axis) */ + float cross[3]; + cross_v3_v3v3(cross, evli->rightvec, evli->forwardvec); + if (dot_v3v3(cross, evli->upvec) < 0.0) { + negate_v3(evli->upvec); + } + light_shape_parameters_set(evli, la, scale); /* Light Type */ |