Nebula
Loading...
Searching...
No Matches
Lighting Namespace Reference

Detailed Description

The lighting subsystem allows for attaching light source functionality to a GraphicsEntityId.

It currently supports a deferred renderer, dynamic global and local shadows, as well as light probes which are used for dynamic or static environment reflections and irradiance.

Classes

class  LightContext

Functions

 __ImplementContext (LightContext, LightContext::genericLightAllocator)
void CalculateCSMSplits (const Graphics::GraphicsEntityId camera, const Math::vec3 lightDirection, const Util::FixedArray< float > &distances, Util::FixedArray< Math::mat4 > &projections, Util::FixedArray< Math::mat4 > &viewProjections, const float shadowTileSize, const Math::bbox &shadowRegion)

Variables

struct { 
   Util::Array< Graphics::GraphicsEntityId >   Lighting::spotLightEntities 
   Util::Array< Ids::Id32 >   Lighting::shadowCastingLights 
   CoreGraphics::TextureId   Lighting::terrainShadowMap = CoreGraphics::InvalidTextureId 
   uint   Lighting::terrainShadowMapSize 
   uint   Lighting::terrainSize 
   Util::OccupancyQuadTree   Lighting::shadowAtlasTileOctree 
   CoreGraphics::TextureId   Lighting::shadowAtlas 
   CoreGraphics::TextureViewId   Lighting::shadowAtlasView 
   CoreGraphics::PassId   Lighting::shadowPass 
lightServerState
struct { 
   CoreGraphics::ShaderId   Lighting::classificationShader 
   CoreGraphics::ShaderProgramId   Lighting::cullProgram 
   CoreGraphics::ShaderProgramId   Lighting::debugProgram 
   CoreGraphics::ShaderProgramId   Lighting::renderProgram 
   CoreGraphics::BufferId   Lighting::clusterLightIndexLists 
   CoreGraphics::BufferSet   Lighting::stagingClusterLightsList 
   CoreGraphics::BufferId   Lighting::clusterLightsList 
   CoreGraphics::BufferId   Lighting::clusterPointLights 
   CoreGraphics::BufferId   Lighting::clusterSpotLights 
   CoreGraphics::ResourceTableId   Lighting::resourceTable 
   uint   Lighting::numThreadsThisFrame 
   LightsCluster::LightLists::STRUCT   Lighting::lightList 
   LightsCluster::LightUniforms::STRUCT   Lighting::consts 
clusterState
struct { 
   CoreGraphics::ShaderId   Lighting::combineShader 
   CoreGraphics::ShaderProgramId   Lighting::combineProgram 
   CoreGraphics::BufferId   Lighting::combineConstants 
   Util::FixedArray< CoreGraphics::ResourceTableId >   Lighting::resourceTables 
combineState
struct { 
   CoreGraphics::TextureId   Lighting::ltcLut0 
   CoreGraphics::TextureId   Lighting::ltcLut1 
textureState

Function Documentation

◆ __ImplementContext()

Lighting::__ImplementContext ( LightContext ,
LightContext::genericLightAllocator  )

◆ CalculateCSMSplits()

void Lighting::CalculateCSMSplits ( const Graphics::GraphicsEntityId camera,
const Math::vec3 lightDirection,
const Util::FixedArray< float > & distances,
Util::FixedArray< Math::mat4 > & projections,
Util::FixedArray< Math::mat4 > & viewProjections,
const float shadowTileSize,
const Math::bbox & shadowRegion )

Variable Documentation

◆ classificationShader

CoreGraphics::ShaderId Lighting::classificationShader

◆ clusterLightIndexLists

CoreGraphics::BufferId Lighting::clusterLightIndexLists

◆ clusterLightsList

CoreGraphics::BufferId Lighting::clusterLightsList

◆ clusterPointLights

CoreGraphics::BufferId Lighting::clusterPointLights

◆ clusterSpotLights

CoreGraphics::BufferId Lighting::clusterSpotLights

◆ [struct]

struct { ... } Lighting::clusterState

◆ combineConstants

CoreGraphics::BufferId Lighting::combineConstants

◆ combineProgram

CoreGraphics::ShaderProgramId Lighting::combineProgram

◆ combineShader

CoreGraphics::ShaderId Lighting::combineShader

◆ [struct]

struct { ... } Lighting::combineState

◆ consts

LightsCluster::LightUniforms::STRUCT Lighting::consts

◆ cullProgram

CoreGraphics::ShaderProgramId Lighting::cullProgram

◆ debugProgram

CoreGraphics::ShaderProgramId Lighting::debugProgram

◆ lightList

LightsCluster::LightLists::STRUCT Lighting::lightList

◆ [struct]

struct { ... } Lighting::lightServerState

◆ ltcLut0

CoreGraphics::TextureId Lighting::ltcLut0

◆ ltcLut1

CoreGraphics::TextureId Lighting::ltcLut1

◆ numThreadsThisFrame

uint Lighting::numThreadsThisFrame

◆ renderProgram

CoreGraphics::ShaderProgramId Lighting::renderProgram

◆ resourceTable

CoreGraphics::ResourceTableId Lighting::resourceTable

◆ resourceTables

◆ shadowAtlas

CoreGraphics::TextureId Lighting::shadowAtlas

◆ shadowAtlasTileOctree

Util::OccupancyQuadTree Lighting::shadowAtlasTileOctree

◆ shadowAtlasView

CoreGraphics::TextureViewId Lighting::shadowAtlasView

◆ shadowCastingLights

Util::Array<Ids::Id32> Lighting::shadowCastingLights

◆ shadowPass

CoreGraphics::PassId Lighting::shadowPass

◆ spotLightEntities

Util::Array<Graphics::GraphicsEntityId> Lighting::spotLightEntities

◆ stagingClusterLightsList

CoreGraphics::BufferSet Lighting::stagingClusterLightsList

◆ terrainShadowMap

CoreGraphics::TextureId Lighting::terrainShadowMap = CoreGraphics::InvalidTextureId

◆ terrainShadowMapSize

uint Lighting::terrainShadowMapSize

◆ terrainSize

uint Lighting::terrainSize

◆ [struct]

struct { ... } Lighting::textureState