Blender V4.3
blender::eevee::ShadowDirectional Class Reference

#include <eevee_shadow.hh>

Inherits blender::NonCopyable, and blender::NonMovable.

Public Member Functions

 ShadowDirectional (ShadowModule &module)
 
 ShadowDirectional (ShadowDirectional &&other)
 
 ~ShadowDirectional ()
 
- Public Member Functions inherited from blender::NonCopyable
 NonCopyable (const NonCopyable &other)=delete
 
NonCopyableoperator= (const NonCopyable &other)=delete
 
 NonCopyable ()=default
 
 NonCopyable (NonCopyable &&other)=default
 
NonCopyableoperator= (NonCopyable &&other)=default
 

Static Public Member Functions

static float coverage_get (int lvl)
 
static float tile_size_get (int lvl)
 

Directional Shadow Maps

In order to improve shadow map density, we switch between two tile-map distribution mode. One is beater suited for large FOV (clip-map), the other for really small FOV or Orthographic projections (cascade).

Clip-map distribution centers a number of log2 sized tile-maps around the view position. https://developer.nvidia.com/gpugems/gpugems2/part-i-geometric-complexity/chapter-2-terrain-rendering-using-gpu-based-geometry

Cascade distribution puts tile-maps along the frustum projection to the light space. https://developer.nvidia.com/gpugems/gpugems3/part-ii-light-and-shadows/chapter-10-parallel-split-shadow-maps-programmable-gpus

We choose to distribute cascades linearly to achieve uniform density and simplify lookup. Using clip-map instead of cascades for perspective view also allows for better caching.

void release_excess_tilemaps (const Light &light, const Camera &camera)
 
void end_sync (Light &light, const Camera &camera)
 

Detailed Description

Definition at line 441 of file eevee_shadow.hh.

Constructor & Destructor Documentation

◆ ShadowDirectional() [1/2]

blender::eevee::ShadowDirectional::ShadowDirectional ( ShadowModule & module)
inline

Definition at line 450 of file eevee_shadow.hh.

◆ ShadowDirectional() [2/2]

blender::eevee::ShadowDirectional::ShadowDirectional ( ShadowDirectional && other)
inline

Definition at line 451 of file eevee_shadow.hh.

◆ ~ShadowDirectional()

blender::eevee::ShadowDirectional::~ShadowDirectional ( )
inline

Member Function Documentation

◆ coverage_get()

static float blender::eevee::ShadowDirectional::coverage_get ( int lvl)
inlinestatic

◆ end_sync()

◆ release_excess_tilemaps()

void blender::eevee::ShadowDirectional::release_excess_tilemaps ( const Light & light,
const Camera & camera )

◆ tile_size_get()

static float blender::eevee::ShadowDirectional::tile_size_get ( int lvl)
inlinestatic

The documentation for this class was generated from the following files: