Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2021-11-05 18:46:27 +0300
committerClément Foucault <foucault.clem@gmail.com>2021-11-09 16:47:23 +0300
commit9c4cf354146ce961bd7e2d8494ffc65e56a00e4c (patch)
treeac9992355fe30f6d964a8f8c0040463cf5d410a5 /source/blender/draw/engines/eevee/eevee_shader.hh
parentc92b2d8bc4aea4877bbefe1bfb1c97d7d798f717 (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.hh5
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,