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

Classes

class  FLumenGatheredLight
 
class  FSpliceCardPagesIntoTilesCS
 
class  FInitializeCardTileIndirectArgsCS
 
class  FCalculateCardTileDepthRangesCS
 
class  FBuildLightTilesCS
 
class  FComputeLightTileOffsetsPerLightCS
 
class  FCompactLightTilesCS
 
class  FInitializeLightTileIndirectArgsCS
 
class  FLumenCardBatchDirectLightingCS
 
class  FLumenDirectLightingShadowMaskFromLightAttenuationCS
 
class  FLumenDirectLightingShadowMaskFromLightAttenuationWithLightFunctionCS
 
class  FInitShadowTraceIndirectArgsCS
 
class  FLumenSceneDirectLightingTraceDistanceFieldShadowsCS
 
struct  FViewBatchedLightParameters
 
struct  FLumenPackedLight
 
struct  FLightTileCullContext
 
struct  FLumenDirectLightingTaskData
 
class  FLumenSceneDirectLightingStatsCS
 

Functions

FAutoConsoleVariableRef CVarLumenDirectLightingOffscreenShadowingTraceMeshSDFs (TEXT("r.LumenScene.DirectLighting.OffscreenShadowing.TraceMeshSDFs"), GLumenDirectLightingOffscreenShadowingTraceMeshSDFs, TEXT("Whether to trace against Mesh Signed Distance Fields for offscreen shadowing, or to trace against the lower resolution Global SDF."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarOffscreenShadowingTraceStepFactor (TEXT("r.LumenScene.DirectLighting.OffscreenShadowingTraceStepFactor"), GOffscreenShadowingTraceStepFactor, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDirectLightingCloudTransmittance (TEXT("r.LumenScene.DirectLighting.CloudTransmittance"), GLumenDirectLightingCloudTransmittance, TEXT("Whether to sample cloud shadows when avaible."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
uint32 GetLumenLightingStatMode ()
 
 IMPLEMENT_GLOBAL_SHADER (FSpliceCardPagesIntoTilesCS, "/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf", "SpliceCardPagesIntoTilesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCalculateCardTileDepthRangesCS, "/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf", "CalculateCardTileDepthRangesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FBuildLightTilesCS, "/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf", "BuildLightTilesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FComputeLightTileOffsetsPerLightCS, "/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf", "ComputeLightTileOffsetsPerLightCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCompactLightTilesCS, "/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf", "CompactLightTilesCS", SF_Compute)
 
void ClearLumenSceneDirectLighting (const FViewInfo &View, FRDGBuilder &GraphBuilder, const FLumenSceneData &LumenSceneData, const FLumenSceneFrameTemporaries &FrameTemporaries, FLumenCardUpdateContext CardUpdateContext)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenCardBatchDirectLightingCS, "/Engine/Private/Lumen/LumenSceneDirectLighting.usf", "LumenCardBatchDirectLightingCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenDirectLightingShadowMaskFromLightAttenuationCS, "/Engine/Private/Lumen/LumenSceneDirectLightingShadowMask.usf", "LumenSceneDirectLightingShadowMaskFromLightAttenuationCS", SF_Compute)
 
 IMPLEMENT_MATERIAL_SHADER_TYPE (, FLumenDirectLightingShadowMaskFromLightAttenuationWithLightFunctionCS, TEXT("/Engine/Private/Lumen/LumenSceneDirectLightingShadowMask.usf"), TEXT("LumenSceneDirectLightingShadowMaskFromLightAttenuationCS"), SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenSceneDirectLightingTraceDistanceFieldShadowsCS, "/Engine/Private/Lumen/LumenSceneDirectLightingSoftwareRayTracing.usf", "LumenSceneDirectLightingTraceDistanceFieldShadowsCS", SF_Compute)
 
void SetupLightFunctionParameters (const FViewInfo &View, const FLightSceneInfo *LightSceneInfo, float ShadowFadeFraction, FLightFunctionParameters &OutParameters)
 
void SetupMeshSDFShadowInitializer (const FLightSceneInfo *LightSceneInfo, const FBox &LumenSceneBounds, FSphere &OutShadowBounds, FWholeSceneProjectedShadowInitializer &OutInitializer)
 
void CullMeshObjectsForLightCards (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FLightSceneInfo *LightSceneInfo, EDistanceFieldPrimitiveType PrimitiveType, const FDistanceFieldObjectBufferParameters &ObjectBufferParameters, FMatrix &WorldToMeshSDFShadowValue, FLightTileIntersectionParameters &LightTileIntersectionParameters)
 
void TraceDistanceFieldShadows (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, TRDGUniformBufferRef< FLumenCardScene > LumenCardSceneUniformBuffer, TConstArrayView< FLumenGatheredLight > GatheredLights, TConstArrayView< int32 > StandaloneLightIndices, FViewBatchedLightParameters &ViewBatchedLightParameters, const FLumenLightTileScatterParameters &LightTileScatterParameters, const LumenSceneDirectLighting::FLightDataParameters &LumenLightData, const FDistanceFieldObjectBufferParameters &ObjectBufferParameters, int32 ViewIndex, int32 NumViews, FRDGBufferUAVRef ShadowMaskTilesUAV, ERDGPassFlags ComputePassFlags)
 
uint32 PackRG16 (float In0, float In1)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenSceneDirectLightingStatsCS, "/Engine/Private/Lumen/LumenSceneLightingDebug.usf", "LumenSceneDirectLightingStatsCS", SF_Compute)
 

Variables

int32 GLumenDirectLightingOffscreenShadowingTraceMeshSDFs = 1
 
float GOffscreenShadowingTraceStepFactor = 5
 
int32 GLumenDirectLightingCloudTransmittance = 1
 

Function Documentation

◆ ClearLumenSceneDirectLighting()

void ClearLumenSceneDirectLighting ( const FViewInfo View,
FRDGBuilder GraphBuilder,
const FLumenSceneData LumenSceneData,
const FLumenSceneFrameTemporaries FrameTemporaries,
FLumenCardUpdateContext  CardUpdateContext 
)

◆ CullMeshObjectsForLightCards()

void CullMeshObjectsForLightCards ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FLightSceneInfo LightSceneInfo,
EDistanceFieldPrimitiveType  PrimitiveType,
const FDistanceFieldObjectBufferParameters ObjectBufferParameters,
FMatrix WorldToMeshSDFShadowValue,
FLightTileIntersectionParameters LightTileIntersectionParameters 
)

◆ CVarLumenDirectLightingCloudTransmittance()

FAutoConsoleVariableRef CVarLumenDirectLightingCloudTransmittance ( TEXT("r.LumenScene.DirectLighting.CloudTransmittance")  ,
GLumenDirectLightingCloudTransmittance  ,
TEXT("Whether to sample cloud shadows when avaible." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDirectLightingOffscreenShadowingTraceMeshSDFs()

FAutoConsoleVariableRef CVarLumenDirectLightingOffscreenShadowingTraceMeshSDFs ( TEXT("r.LumenScene.DirectLighting.OffscreenShadowing.TraceMeshSDFs")  ,
GLumenDirectLightingOffscreenShadowingTraceMeshSDFs  ,
TEXT("Whether to trace against Mesh Signed Distance Fields for offscreen shadowing, or to trace against the lower resolution Global SDF." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarOffscreenShadowingTraceStepFactor()

FAutoConsoleVariableRef CVarOffscreenShadowingTraceStepFactor ( TEXT("r.LumenScene.DirectLighting.OffscreenShadowingTraceStepFactor")  ,
GOffscreenShadowingTraceStepFactor  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GetLumenLightingStatMode()

uint32 GetLumenLightingStatMode ( )

◆ IMPLEMENT_GLOBAL_SHADER() [1/9]

IMPLEMENT_GLOBAL_SHADER ( FBuildLightTilesCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf"  ,
"BuildLightTilesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/9]

IMPLEMENT_GLOBAL_SHADER ( FCalculateCardTileDepthRangesCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf"  ,
"CalculateCardTileDepthRangesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/9]

IMPLEMENT_GLOBAL_SHADER ( FCompactLightTilesCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf"  ,
"CompactLightTilesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/9]

IMPLEMENT_GLOBAL_SHADER ( FComputeLightTileOffsetsPerLightCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf"  ,
"ComputeLightTileOffsetsPerLightCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenCardBatchDirectLightingCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLighting.usf"  ,
"LumenCardBatchDirectLightingCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenDirectLightingShadowMaskFromLightAttenuationCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingShadowMask.usf"  ,
"LumenSceneDirectLightingShadowMaskFromLightAttenuationCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenSceneDirectLightingStatsCS  ,
"/Engine/Private/Lumen/LumenSceneLightingDebug.usf"  ,
"LumenSceneDirectLightingStatsCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenSceneDirectLightingTraceDistanceFieldShadowsCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingSoftwareRayTracing.usf"  ,
"LumenSceneDirectLightingTraceDistanceFieldShadowsCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/9]

IMPLEMENT_GLOBAL_SHADER ( FSpliceCardPagesIntoTilesCS  ,
"/Engine/Private/Lumen/LumenSceneDirectLightingCulling.usf"  ,
"SpliceCardPagesIntoTilesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_MATERIAL_SHADER_TYPE()

IMPLEMENT_MATERIAL_SHADER_TYPE ( FLumenDirectLightingShadowMaskFromLightAttenuationWithLightFunctionCS  ,
TEXT("/Engine/Private/Lumen/LumenSceneDirectLightingShadowMask.usf" ,
TEXT("LumenSceneDirectLightingShadowMaskFromLightAttenuationCS")  ,
SF_Compute   
)

◆ PackRG16()

uint32 PackRG16 ( float  In0,
float  In1 
)

◆ SetupLightFunctionParameters()

void SetupLightFunctionParameters ( const FViewInfo View,
const FLightSceneInfo LightSceneInfo,
float  ShadowFadeFraction,
FLightFunctionParameters OutParameters 
)

◆ SetupMeshSDFShadowInitializer()

void SetupMeshSDFShadowInitializer ( const FLightSceneInfo LightSceneInfo,
const FBox LumenSceneBounds,
FSphere OutShadowBounds,
FWholeSceneProjectedShadowInitializer OutInitializer 
)

◆ TraceDistanceFieldShadows()

void TraceDistanceFieldShadows ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
TRDGUniformBufferRef< FLumenCardScene LumenCardSceneUniformBuffer,
TConstArrayView< FLumenGatheredLight GatheredLights,
TConstArrayView< int32 StandaloneLightIndices,
FViewBatchedLightParameters ViewBatchedLightParameters,
const FLumenLightTileScatterParameters LightTileScatterParameters,
const LumenSceneDirectLighting::FLightDataParameters LumenLightData,
const FDistanceFieldObjectBufferParameters ObjectBufferParameters,
int32  ViewIndex,
int32  NumViews,
FRDGBufferUAVRef  ShadowMaskTilesUAV,
ERDGPassFlags  ComputePassFlags 
)

Variable Documentation

◆ GLumenDirectLightingCloudTransmittance

int32 GLumenDirectLightingCloudTransmittance = 1

◆ GLumenDirectLightingOffscreenShadowingTraceMeshSDFs

int32 GLumenDirectLightingOffscreenShadowingTraceMeshSDFs = 1

◆ GOffscreenShadowingTraceStepFactor

float GOffscreenShadowingTraceStepFactor = 5