UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LightRendering.cpp File Reference

Classes

class  FStencilConeIndexBuffer
 
class  FStencilConeVertexBuffer
 
class  FDeferredLightHairVS
 
class  FDeferredLightPS
 
class  FDeferredLightOverlapPS
 
class  FCopyStencilToLightingChannelsPS
 

Macros

#define ENABLE_DEBUG_DISCARD_PROP   1
 

Enumerations

enum class  ELightSourceShape { Directional , Capsule , Rect , MAX }
 

Functions

 DECLARE_GPU_DRAWCALL_STAT (Lights)
 
 IMPLEMENT_TYPE_LAYOUT (FLightFunctionSharedParameters)
 
 IMPLEMENT_TYPE_LAYOUT (FStencilingGeometryShaderParameters)
 
 IMPLEMENT_TYPE_LAYOUT (FOnePassPointShadowProjectionShaderParameters)
 
 IMPLEMENT_TYPE_LAYOUT (FShadowProjectionShaderParameters)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FDeferredLightUniformStruct, "DeferredLightUniforms")
 
 DECLARE_DWORD_COUNTER_STAT (TEXT("VSM Light Projections (Local One Pass Fast)"), STAT_VSMLocalProjectionOnePassFast, STATGROUP_ShadowRendering)
 
void GetLightContactShadowParameters (const FLightSceneProxy *Proxy, float &OutLength, bool &bOutLengthInWS, float &OutCastingIntensity, float &OutNonCastingIntensity)
 
uint32 GetShadowedBits (const FSceneView &View, const FLightSceneInfo &LightSceneInfo, bool bUseLightFunctionAtlas)
 
FDeferredLightUniformStruct GetDeferredLightParameters (const FSceneView &View, const FLightSceneInfo &LightSceneInfo, bool bUseLightFunctionAtlas, uint32 LightFlags)
 
FDeferredLightUniformStruct GetSimpleDeferredLightParameters (const FSceneView &View, const FSimpleLightEntry &SimpleLight, const FVector &LightWorldPosition)
 
FDeferredLightUniformStruct GetSimpleDeferredLightParameters (const FSceneView &View, const FSimpleLightEntry &SimpleLight, const FSimpleLightPerViewEntry &SimpleLightPerViewData)
 
ELightOcclusionType GetLightOcclusionType (const FLightSceneProxy &Proxy, const FSceneViewFamily &ViewFamily)
 
ELightOcclusionType GetLightOcclusionType (const FLightSceneInfoCompact &LightInfo, const FSceneViewFamily &ViewFamily)
 
float GetLightFadeFactor (const FSceneView &View, const FLightSceneProxy *Proxy)
 
 IMPLEMENT_GLOBAL_SHADER (FDeferredLightVS, "/Engine/Private/DeferredLightVertexShaders.usf", "VertexMain", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FDeferredLightHairVS, "/Engine/Private/DeferredLightVertexShaders.usf", "HairVertexMain", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FDeferredLightPS, "/Engine/Private/DeferredLightPixelShaders.usf", "DeferredLightPixelMain", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FDeferredLightOverlapPS, "/Engine/Private/StationaryLightOverlapShaders.usf", "OverlapPixelMain", SF_Pixel)
 
uint32 GetShadowQuality ()
 
bool CanLightUsesAtlasForUnbatchedLight (ERHIFeatureLevel::Type FeatureLevel, const FLightSceneProxy *Proxy)
 
FHairStrandsTransmittanceMaskData CreateDummyHairStrandsTransmittanceMaskData (FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap)
 
template<ECompareFunction CompareFunction>
void GetSubstrateTiledDepthStencilState (ESubstrateTileType InTileType, FGraphicsPipelineStateInitializer &GraphicsPSOInit, uint32 &OutStencilRef)
 
void GetSubstrateTiledDepthStencilStateNoDepthTest (ESubstrateTileType InTileType, FGraphicsPipelineStateInitializer &GraphicsPSOInit, uint32 &OutStencilRef)
 
uint32 SetupLightGraphicsPSOState (bool bDirectional, bool bCameraInsideLightGeometry, bool bReverseCulling, ESubstrateTileType SubstrateTileMaterialType, FGraphicsPipelineStateInitializer &GraphicsPSOInit, EShaderPlatform ShaderPlatform)
 
void SetupLightForHairGraphicsPSOState (FGraphicsPipelineStateInitializer &GraphicsPSOInit)
 
 IMPLEMENT_GLOBAL_SHADER (FCopyStencilToLightingChannelsPS, "/Engine/Private/DownsampleDepthPixelShader.usf", "CopyStencilToLightingChannelsPS", SF_Pixel)
 
void DeferredLightGlobalPSOCollector (const FSceneTexturesConfig &SceneTexturesConfig, int32 GlobalPSOCollectorIndex, TArray< FPSOPrecacheData > &PSOInitializers)
 

Variables

TGlobalResource< FStencilConeIndexBufferGStencilConeIndexBuffer
 
TGlobalResource< FStencilConeVertexBufferGStencilConeVertexBuffer
 
int32 GbEnableAsyncComputeTranslucencyLightingVolumeClear
 
FRegisterGlobalPSOCollectorFunction RegisterDeferredLightGlobalPSOCollectorDeferredLightGlobalPSOCollector
 

Macro Definition Documentation

◆ ENABLE_DEBUG_DISCARD_PROP

#define ENABLE_DEBUG_DISCARD_PROP   1

Enumeration Type Documentation

◆ ELightSourceShape

enum class ELightSourceShape
strong
Enumerator
Directional 
Capsule 
Rect 
MAX 

Function Documentation

◆ CanLightUsesAtlasForUnbatchedLight()

bool CanLightUsesAtlasForUnbatchedLight ( ERHIFeatureLevel::Type  FeatureLevel,
const FLightSceneProxy Proxy 
)

◆ CreateDummyHairStrandsTransmittanceMaskData()

FHairStrandsTransmittanceMaskData CreateDummyHairStrandsTransmittanceMaskData ( FRDGBuilder GraphBuilder,
FGlobalShaderMap ShaderMap 
)

◆ DECLARE_DWORD_COUNTER_STAT()

◆ DECLARE_GPU_DRAWCALL_STAT()

DECLARE_GPU_DRAWCALL_STAT ( Lights  )

◆ DeferredLightGlobalPSOCollector()

void DeferredLightGlobalPSOCollector ( const FSceneTexturesConfig SceneTexturesConfig,
int32  GlobalPSOCollectorIndex,
TArray< FPSOPrecacheData > &  PSOInitializers 
)

◆ GetDeferredLightParameters()

FDeferredLightUniformStruct GetDeferredLightParameters ( const FSceneView View,
const FLightSceneInfo LightSceneInfo,
bool  bUseLightFunctionAtlas,
uint32  LightFlags 
)

◆ GetLightContactShadowParameters()

void GetLightContactShadowParameters ( const FLightSceneProxy Proxy,
float OutLength,
bool bOutLengthInWS,
float OutCastingIntensity,
float OutNonCastingIntensity 
)

◆ GetLightFadeFactor()

float GetLightFadeFactor ( const FSceneView View,
const FLightSceneProxy Proxy 
)

◆ GetLightOcclusionType() [1/2]

ELightOcclusionType GetLightOcclusionType ( const FLightSceneInfoCompact LightInfo,
const FSceneViewFamily ViewFamily 
)

◆ GetLightOcclusionType() [2/2]

ELightOcclusionType GetLightOcclusionType ( const FLightSceneProxy Proxy,
const FSceneViewFamily ViewFamily 
)

◆ GetShadowedBits()

uint32 GetShadowedBits ( const FSceneView View,
const FLightSceneInfo LightSceneInfo,
bool  bUseLightFunctionAtlas 
)

◆ GetShadowQuality()

uint32 GetShadowQuality ( )

◆ GetSimpleDeferredLightParameters() [1/2]

FDeferredLightUniformStruct GetSimpleDeferredLightParameters ( const FSceneView View,
const FSimpleLightEntry SimpleLight,
const FSimpleLightPerViewEntry SimpleLightPerViewData 
)

◆ GetSimpleDeferredLightParameters() [2/2]

FDeferredLightUniformStruct GetSimpleDeferredLightParameters ( const FSceneView View,
const FSimpleLightEntry SimpleLight,
const FVector LightWorldPosition 
)

◆ GetSubstrateTiledDepthStencilState()

template<ECompareFunction CompareFunction>
void GetSubstrateTiledDepthStencilState ( ESubstrateTileType  InTileType,
FGraphicsPipelineStateInitializer GraphicsPSOInit,
uint32 OutStencilRef 
)

◆ GetSubstrateTiledDepthStencilStateNoDepthTest()

void GetSubstrateTiledDepthStencilStateNoDepthTest ( ESubstrateTileType  InTileType,
FGraphicsPipelineStateInitializer GraphicsPSOInit,
uint32 OutStencilRef 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/5]

IMPLEMENT_GLOBAL_SHADER ( FCopyStencilToLightingChannelsPS  ,
"/Engine/Private/DownsampleDepthPixelShader.usf"  ,
"CopyStencilToLightingChannelsPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/5]

IMPLEMENT_GLOBAL_SHADER ( FDeferredLightHairVS  ,
"/Engine/Private/DeferredLightVertexShaders.usf"  ,
"HairVertexMain"  ,
SF_Vertex   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/5]

IMPLEMENT_GLOBAL_SHADER ( FDeferredLightOverlapPS  ,
"/Engine/Private/StationaryLightOverlapShaders.usf"  ,
"OverlapPixelMain"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/5]

IMPLEMENT_GLOBAL_SHADER ( FDeferredLightPS  ,
"/Engine/Private/DeferredLightPixelShaders.usf"  ,
"DeferredLightPixelMain"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/5]

IMPLEMENT_GLOBAL_SHADER ( FDeferredLightVS  ,
"/Engine/Private/DeferredLightVertexShaders.usf"  ,
"VertexMain"  ,
SF_Vertex   
)

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT()

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FDeferredLightUniformStruct  ,
"DeferredLightUniforms"   
)

◆ IMPLEMENT_TYPE_LAYOUT() [1/4]

IMPLEMENT_TYPE_LAYOUT ( FLightFunctionSharedParameters  )

◆ IMPLEMENT_TYPE_LAYOUT() [2/4]

IMPLEMENT_TYPE_LAYOUT ( FOnePassPointShadowProjectionShaderParameters  )

◆ IMPLEMENT_TYPE_LAYOUT() [3/4]

IMPLEMENT_TYPE_LAYOUT ( FShadowProjectionShaderParameters  )

◆ IMPLEMENT_TYPE_LAYOUT() [4/4]

IMPLEMENT_TYPE_LAYOUT ( FStencilingGeometryShaderParameters  )

◆ SetupLightForHairGraphicsPSOState()

void SetupLightForHairGraphicsPSOState ( FGraphicsPipelineStateInitializer GraphicsPSOInit)

Shader parameters for Standard Deferred Light for HairStrands pass.

◆ SetupLightGraphicsPSOState()

uint32 SetupLightGraphicsPSOState ( bool  bDirectional,
bool  bCameraInsideLightGeometry,
bool  bReverseCulling,
ESubstrateTileType  SubstrateTileMaterialType,
FGraphicsPipelineStateInitializer GraphicsPSOInit,
EShaderPlatform  ShaderPlatform 
)

Variable Documentation

◆ DeferredLightGlobalPSOCollector

◆ GbEnableAsyncComputeTranslucencyLightingVolumeClear

int32 GbEnableAsyncComputeTranslucencyLightingVolumeClear
extern

◆ GStencilConeIndexBuffer

TGlobalResource<FStencilConeIndexBuffer> GStencilConeIndexBuffer

The stencil cone index buffer.

◆ GStencilConeVertexBuffer

TGlobalResource<FStencilConeVertexBuffer> GStencilConeVertexBuffer

The (dummy) stencil cone vertex buffer.