Blender V4.3
eevee_light.hh File Reference
#include "BLI_bitmap.h"
#include "BLI_vector.hh"
#include "DNA_light_types.h"
#include "eevee_camera.hh"
#include "eevee_sampling.hh"
#include "eevee_shader.hh"
#include "eevee_shader_shared.hh"
#include "eevee_sync.hh"

Go to the source code of this file.

Classes

struct  blender::eevee::Light
 
class  blender::eevee::LightModule
 

Namespaces

namespace  blender
 
namespace  blender::eevee
 

Detailed Description

The light module manages light data buffers and light culling system.

The culling follows the principles of Tiled Culling + Z binning from: "Improved Culling for Tiled and Clustered Rendering" by Michal Drobot http://advances.realtimerendering.com/s2017/2017_Sig_Improved_Culling_final.pdf

The culling is separated in 4 compute phases:

  • View Culling (select pass): Create a z distance and a index buffer of visible lights.
  • Light sorting: Outputs visible lights sorted by Z distance.
  • Z binning: Compute the Z bins min/max light indices.
  • Tile intersection: Fine grained 2D culling of each lights outputting a bitmap per tile.

Definition in file eevee_light.hh.