diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-11-05 18:46:27 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2021-11-09 16:47:23 +0300 |
commit | 9c4cf354146ce961bd7e2d8494ffc65e56a00e4c (patch) | |
tree | ac9992355fe30f6d964a8f8c0040463cf5d410a5 /source/blender/draw/engines/eevee/eevee_shader.hh | |
parent | c92b2d8bc4aea4877bbefe1bfb1c97d7d798f717 (diff) |
EEVEE: Shadow: Implement Virtual Shadowmapping
This is a total refactor of how shadows are handled.
We use Virtual shadow maps with different Level of details to
ensure a somewhat evenly distributed precision.
The shadow test is a really crude shadow test that will be
improved in further commit.
There is a pool of 4096 Tilemaps that are distributed between
shadowed ligths. These tilemaps are 16x16 each and reference
shadow map pages that are allocated in an atlas. Pages are only
allocated if needed (i.e: visible for rendering an object).
Page management is done on GPU using compute shaders to reduce
CPU task.
On CPU only one draw pass per updated tilemaps is issued.
This reduces the memory requirement of shadowmapping large scenes
with many lights.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_shader.hh')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_shader.hh | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_shader.hh b/source/blender/draw/engines/eevee/eevee_shader.hh index 15dc0710d4e..7db1e843775 100644 --- a/source/blender/draw/engines/eevee/eevee_shader.hh +++ b/source/blender/draw/engines/eevee/eevee_shader.hh @@ -108,6 +108,11 @@ enum eShaderType { RAYTRACE_RESOLVE_REFRACTION, SHADOW_CLEAR, + SHADOW_DEBUG, + SHADOW_TILE_SETUP, + SHADOW_TILE_TAG_UPDATE, + SHADOW_TILE_TAG_USAGE, + SHADOW_TILE_TAG_VISIBILITY, SUBSURFACE_EVAL, |