Blender V5.0
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 456 of file eevee_shadow.hh.

Constructor & Destructor Documentation

◆ ShadowDirectional() [1/2]

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

Definition at line 465 of file eevee_shadow.hh.

References module.

Referenced by ShadowDirectional().

◆ ShadowDirectional() [2/2]

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

Definition at line 466 of file eevee_shadow.hh.

References ShadowDirectional().

◆ ~ShadowDirectional()

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

Definition at line 469 of file eevee_shadow.hh.

Member Function Documentation

◆ coverage_get()

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

Definition at line 485 of file eevee_shadow.hh.

References exp2.

Referenced by blender::eevee::ShadowTileMap::sync_orthographic(), and tile_size_get().

◆ end_sync()

◆ release_excess_tilemaps()

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

◆ tile_size_get()

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

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