diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-05-26 23:28:35 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-05-27 00:31:17 +0300 |
commit | 60ddea7758128283f3ed3a15a2f8448691a811a8 (patch) | |
tree | 7bed40b0fd57e743ca25b26eb61d8753177122e2 /source/blender/draw/intern/DRW_render.h | |
parent | 975828e23a4073cc6f05132a2f8d51446f912efb (diff) |
Workbench: Shadows: Add frustum check and camera occlusion test.
If the object is manifold and the camera is in the shadow side, we can
use the depth fail method to fix the inverted shadow glitch.
Unfortunately this does not really work for non-manifold.
Implementation details:
We try to be as efficient as we can, we precompute camera near plane
projected into 2D shadow space so we can test for intersection with the
shadow boundbox easily.
As the intersection test is done in 2D it's pretty fast.
Unfortunately, this means the shadow bounds are all aligned to the same
space and are not the smallest bound we could extract.
Diffstat (limited to 'source/blender/draw/intern/DRW_render.h')
-rw-r--r-- | source/blender/draw/intern/DRW_render.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index f799d7d62e6..25806062f68 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -497,6 +497,8 @@ bool DRW_culling_sphere_test(BoundSphere *bsphere); bool DRW_culling_box_test(BoundBox *bbox); bool DRW_culling_plane_test(float plane[4]); +void DRW_culling_frustum_corners_get(BoundBox *corners); + /* Selection */ void DRW_select_load_id(uint id); |