Skip to content

File ShadowSystem.h

FileList > render > ShadowSystem.h

Go to the source code of this file

GPU light buffer management, shadow map caching, and shadow computation. More...

  • #include "Light.h"
  • #include "RenderConfigs.h"
  • #include "Texture.h"
  • #include "buffers/StorageBuffer.h"
  • #include "buffers/UniformBuffer.h"
  • #include "buffers/FrameBuffer.h"
  • #include "PolygonLight.h"
  • #include "shaders/RenderShader.h"
  • #include <unordered_map>
  • #include <vector>
  • #include <memory>
  • #include <array>

Classes

Type Name
struct ShadowSystem
Owns per-light GPU resources, shadow maps, and shadow computation.
struct AreaStruct
GPU layout for area light data.
struct PointStruct
GPU layout for point light data.
struct PolyStruct
GPU layout for polygonal light header data.
struct PolyVertStruct
GPU layout for polygonal light vertex data.
struct SceneInfo
Light count statistics for current scene.
struct SpotStruct
GPU layout for spot light data.
struct SunStruct
GPU layout for sun/directional light data.

Detailed Description

Provides ShadowSystem for aggregating scene lights into typed GPU storage buffers (SSBO), owning per-light shadow map textures and projection matrices, and managing the shadow computation pipeline.

Architecture: * ShadowSystem converts scene lights into GPU-friendly buffers * ShadowSystem owns per-light shadow maps (raw depth/moment textures) * ShadowSystem owns per-light projection matrices * Renderer reads light data via ShadowSystem bindings

Note:

Separated from Light (scene layer) because ShadowSystem is a render-layer concern: it manages GPU resources and shadow computation, not scene objects.


The documentation for this class was generated from the following file src/render/ShadowSystem.h