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

Functions

FAutoConsoleVariableRef CVarDiffuseTraceStepFactor (TEXT("r.Lumen.DiffuseIndirect.TraceStepFactor"), GDiffuseTraceStepFactor, TEXT("."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDiffuseMinSampleRadius (TEXT("r.Lumen.DiffuseIndirect.MinSampleRadius"), GLumenDiffuseMinSampleRadius, TEXT("."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDiffuseMinTraceDistance (TEXT("r.Lumen.DiffuseIndirect.MinTraceDistance"), GLumenDiffuseMinTraceDistance, TEXT("."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDiffuseSurfaceBias (TEXT("r.Lumen.DiffuseIndirect.SurfaceBias"), GLumenGatherCvars.SurfaceBias, TEXT("."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarDiffuseCardInterpolateInfluenceRadius (TEXT("r.Lumen.DiffuseIndirect.CardInterpolateInfluenceRadius"), GLumenDiffuseCardInterpolateInfluenceRadius, TEXT("."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarDiffuseCardTraceEndDistanceFromCamera (TEXT("r.Lumen.DiffuseIndirect.CardTraceEndDistanceFromCamera"), GDiffuseCardTraceEndDistanceFromCamera, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarTraceDistanceScale (TEXT("r.Lumen.TraceDistanceScale"), GLumenTraceDistanceScale, TEXT("Scales the tracing distance for all tracing methods and Lumen features, used by scalability."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenTraceMeshSDFs (TEXT("r.Lumen.TraceMeshSDFs"), GLumenTraceMeshSDFs, TEXT("Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen's Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenAllowTraceMeshSDFs (TEXT("r.Lumen.TraceMeshSDFs.Allow"), GLumenAllowTracingMeshSDFs, TEXT("Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen's Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef GVarLumenDiffuseMaxMeshSDFTraceDistance (TEXT("r.Lumen.TraceMeshSDFs.TraceDistance"), GLumenGatherCvars.MeshSDFTraceDistance, TEXT("Max trace distance against Mesh Distance Fields and Heightfields."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDiffuseFroxelGridPixelSize (TEXT("r.Lumen.DiffuseIndirect.CullGridPixelSize"), GCardFroxelGridPixelSize, TEXT("Size of a cell in the card grid, in pixels."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CCardGridDistributionLogZScale (TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionLogZScale"), GCardGridDistributionLogZScale, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CCardGridDistributionLogZOffset (TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionLogZOffset"), GCardGridDistributionLogZOffset, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarCardGridDistributionZScale (TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionZScale"), GCardGridDistributionZScale, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenDiffuseIndirectApplySSAO (TEXT("r.Lumen.DiffuseIndirect.SSAO"), GLumenDiffuseIndirectApplySSAO, TEXT("Whether to render and apply SSAO to Lumen GI, only when r.Lumen.ScreenProbeGather.ShortRangeAO is disabled. This is useful for providing short range occlusion when Lumen's Screen Bent Normal is disabled due to scalability, however SSAO settings like screen radius come from the user's post process settings."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenShouldUseStereoOptimizations (TEXT("r.Lumen.StereoOptimizations"), GLumenShouldUseStereoOptimizations, TEXT("Whether to to share certain Lumen state between views during the instanced stereo rendering."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
bool ShouldRenderLumenDiffuseGI (const FScene *Scene, const FSceneView &View, bool bSkipTracingDataCheck, bool bSkipProjectCheck)
 
bool ShouldRenderLumenDirectLighting (const FScene *Scene, const FSceneView &View)
 
bool ShouldRenderAOWithLumenGI ()
 
bool ShouldUseStereoLumenOptimizations ()
 
void SetupLumenDiffuseTracingParameters (float MaxTraceDistance, float OrthoMaxDimension, FLumenIndirectTracingParameters &OutParameters)
 
void SetupLumenDiffuseTracingParametersForProbe (float MaxTraceDistance, float OrthoMaxDimension, FLumenIndirectTracingParameters &OutParameters, float DiffuseConeHalfAngle)
 
void SetupLumenDiffuseTracingParameters (const FViewInfo &View, FLumenIndirectTracingParameters &OutParameters)
 
void SetupLumenDiffuseTracingParametersForProbe (const FViewInfo &View, FLumenIndirectTracingParameters &OutParameters, float DiffuseConeHalfAngle)
 
void GetCardGridZParams (float InNearPlane, float InFarPlane, FVector &OutZParams, int32 &OutGridSizeZ)
 
void CullForCardTracing (FRDGBuilder &GraphBuilder, const FScene *Scene, const FViewInfo &View, const FLumenSceneFrameTemporaries &FrameTemporaries, const FLumenIndirectTracingParameters &IndirectTracingParameters, FLumenMeshSDFGridParameters &MeshSDFGridParameters, ERDGPassFlags ComputePassFlags)
 

Variables

int32 GLumenSceneGlobalSDFSimpleCoverageBasedExpand
 
FLumenGatherCvarState GLumenGatherCvars
 
float GDiffuseTraceStepFactor = 1
 
float GLumenDiffuseMinSampleRadius = 10
 
float GLumenDiffuseMinTraceDistance = 0
 
float GLumenDiffuseCardInterpolateInfluenceRadius = 10
 
float GDiffuseCardTraceEndDistanceFromCamera = 4000.0f
 
float GLumenTraceDistanceScale = 1.0f
 
int32 GLumenTraceMeshSDFs = 0
 
int32 GLumenAllowTracingMeshSDFs = 1
 
int32 GCardFroxelGridPixelSize = 64
 
float GCardGridDistributionLogZScale = .01f
 
float GCardGridDistributionLogZOffset = 1.0f
 
float GCardGridDistributionZScale = 4.0f
 
int32 GLumenDiffuseIndirectApplySSAO = 0
 
int32 GLumenShouldUseStereoOptimizations = 1
 

Function Documentation

◆ CCardGridDistributionLogZOffset()

FAutoConsoleVariableRef CCardGridDistributionLogZOffset ( TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionLogZOffset")  ,
GCardGridDistributionLogZOffset  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CCardGridDistributionLogZScale()

FAutoConsoleVariableRef CCardGridDistributionLogZScale ( TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionLogZScale")  ,
GCardGridDistributionLogZScale  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CullForCardTracing()

void CullForCardTracing ( FRDGBuilder GraphBuilder,
const FScene Scene,
const FViewInfo View,
const FLumenSceneFrameTemporaries FrameTemporaries,
const FLumenIndirectTracingParameters IndirectTracingParameters,
FLumenMeshSDFGridParameters MeshSDFGridParameters,
ERDGPassFlags  ComputePassFlags 
)

◆ CVarCardGridDistributionZScale()

FAutoConsoleVariableRef CVarCardGridDistributionZScale ( TEXT("r.Lumen.DiffuseIndirect.CullGridDistributionZScale")  ,
GCardGridDistributionZScale  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarDiffuseCardInterpolateInfluenceRadius()

FAutoConsoleVariableRef CVarDiffuseCardInterpolateInfluenceRadius ( TEXT("r.Lumen.DiffuseIndirect.CardInterpolateInfluenceRadius")  ,
GLumenDiffuseCardInterpolateInfluenceRadius  ,
TEXT(".")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarDiffuseCardTraceEndDistanceFromCamera()

FAutoConsoleVariableRef CVarDiffuseCardTraceEndDistanceFromCamera ( TEXT("r.Lumen.DiffuseIndirect.CardTraceEndDistanceFromCamera")  ,
GDiffuseCardTraceEndDistanceFromCamera  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarDiffuseTraceStepFactor()

FAutoConsoleVariableRef CVarDiffuseTraceStepFactor ( TEXT("r.Lumen.DiffuseIndirect.TraceStepFactor")  ,
GDiffuseTraceStepFactor  ,
TEXT(".")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenAllowTraceMeshSDFs()

FAutoConsoleVariableRef CVarLumenAllowTraceMeshSDFs ( TEXT("r.Lumen.TraceMeshSDFs.Allow")  ,
GLumenAllowTracingMeshSDFs  ,
TEXT("Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen's Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDiffuseFroxelGridPixelSize()

FAutoConsoleVariableRef CVarLumenDiffuseFroxelGridPixelSize ( TEXT("r.Lumen.DiffuseIndirect.CullGridPixelSize")  ,
GCardFroxelGridPixelSize  ,
TEXT("Size of a cell in the card grid, in pixels." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDiffuseIndirectApplySSAO()

FAutoConsoleVariableRef CVarLumenDiffuseIndirectApplySSAO ( TEXT("r.Lumen.DiffuseIndirect.SSAO")  ,
GLumenDiffuseIndirectApplySSAO  ,
TEXT("Whether to render and apply SSAO to Lumen GI, only when r.Lumen.ScreenProbeGather.ShortRangeAO is disabled. This is useful for providing short range occlusion when Lumen's Screen Bent Normal is disabled due to scalability, however SSAO settings like screen radius come from the user's post process settings." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDiffuseMinSampleRadius()

FAutoConsoleVariableRef CVarLumenDiffuseMinSampleRadius ( TEXT("r.Lumen.DiffuseIndirect.MinSampleRadius")  ,
GLumenDiffuseMinSampleRadius  ,
TEXT(".")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDiffuseMinTraceDistance()

FAutoConsoleVariableRef CVarLumenDiffuseMinTraceDistance ( TEXT("r.Lumen.DiffuseIndirect.MinTraceDistance")  ,
GLumenDiffuseMinTraceDistance  ,
TEXT(".")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenDiffuseSurfaceBias()

FAutoConsoleVariableRef CVarLumenDiffuseSurfaceBias ( TEXT("r.Lumen.DiffuseIndirect.SurfaceBias")  ,
GLumenGatherCvars.  SurfaceBias,
TEXT(".")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenShouldUseStereoOptimizations()

FAutoConsoleVariableRef CVarLumenShouldUseStereoOptimizations ( TEXT("r.Lumen.StereoOptimizations")  ,
GLumenShouldUseStereoOptimizations  ,
TEXT("Whether to to share certain Lumen state between views during the instanced stereo rendering." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenTraceMeshSDFs()

FAutoConsoleVariableRef CVarLumenTraceMeshSDFs ( TEXT("r.Lumen.TraceMeshSDFs")  ,
GLumenTraceMeshSDFs  ,
TEXT("Whether Lumen should trace against Mesh Signed Distance fields. When enabled, Lumen's Software Tracing will be more accurate, but scenes with high instance density (overlapping meshes) will have high tracing costs. When disabled, lower resolution Global Signed Distance Field will be used instead." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarTraceDistanceScale()

FAutoConsoleVariableRef CVarTraceDistanceScale ( TEXT("r.Lumen.TraceDistanceScale")  ,
GLumenTraceDistanceScale  ,
TEXT("Scales the tracing distance for all tracing methods and Lumen features, used by scalability." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GetCardGridZParams()

void GetCardGridZParams ( float  InNearPlane,
float  InFarPlane,
FVector OutZParams,
int32 OutGridSizeZ 
)

◆ GVarLumenDiffuseMaxMeshSDFTraceDistance()

FAutoConsoleVariableRef GVarLumenDiffuseMaxMeshSDFTraceDistance ( TEXT("r.Lumen.TraceMeshSDFs.TraceDistance")  ,
GLumenGatherCvars.  MeshSDFTraceDistance,
TEXT("Max trace distance against Mesh Distance Fields and Heightfields." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ SetupLumenDiffuseTracingParameters() [1/2]

void SetupLumenDiffuseTracingParameters ( const FViewInfo View,
FLumenIndirectTracingParameters OutParameters 
)

◆ SetupLumenDiffuseTracingParameters() [2/2]

void SetupLumenDiffuseTracingParameters ( float  MaxTraceDistance,
float  OrthoMaxDimension,
FLumenIndirectTracingParameters OutParameters 
)

◆ SetupLumenDiffuseTracingParametersForProbe() [1/2]

void SetupLumenDiffuseTracingParametersForProbe ( const FViewInfo View,
FLumenIndirectTracingParameters OutParameters,
float  DiffuseConeHalfAngle 
)

◆ SetupLumenDiffuseTracingParametersForProbe() [2/2]

void SetupLumenDiffuseTracingParametersForProbe ( float  MaxTraceDistance,
float  OrthoMaxDimension,
FLumenIndirectTracingParameters OutParameters,
float  DiffuseConeHalfAngle 
)

◆ ShouldRenderAOWithLumenGI()

bool ShouldRenderAOWithLumenGI ( )

◆ ShouldRenderLumenDiffuseGI()

bool ShouldRenderLumenDiffuseGI ( const FScene Scene,
const FSceneView View,
bool  bSkipTracingDataCheck,
bool  bSkipProjectCheck 
)

◆ ShouldRenderLumenDirectLighting()

bool ShouldRenderLumenDirectLighting ( const FScene Scene,
const FSceneView View 
)

◆ ShouldUseStereoLumenOptimizations()

bool ShouldUseStereoLumenOptimizations ( )

Variable Documentation

◆ GCardFroxelGridPixelSize

int32 GCardFroxelGridPixelSize = 64

◆ GCardGridDistributionLogZOffset

float GCardGridDistributionLogZOffset = 1.0f

◆ GCardGridDistributionLogZScale

float GCardGridDistributionLogZScale = .01f

◆ GCardGridDistributionZScale

float GCardGridDistributionZScale = 4.0f

◆ GDiffuseCardTraceEndDistanceFromCamera

float GDiffuseCardTraceEndDistanceFromCamera = 4000.0f

◆ GDiffuseTraceStepFactor

float GDiffuseTraceStepFactor = 1

◆ GLumenAllowTracingMeshSDFs

int32 GLumenAllowTracingMeshSDFs = 1

◆ GLumenDiffuseCardInterpolateInfluenceRadius

float GLumenDiffuseCardInterpolateInfluenceRadius = 10

◆ GLumenDiffuseIndirectApplySSAO

int32 GLumenDiffuseIndirectApplySSAO = 0

◆ GLumenDiffuseMinSampleRadius

float GLumenDiffuseMinSampleRadius = 10

◆ GLumenDiffuseMinTraceDistance

float GLumenDiffuseMinTraceDistance = 0

◆ GLumenGatherCvars

FLumenGatherCvarState GLumenGatherCvars

◆ GLumenSceneGlobalSDFSimpleCoverageBasedExpand

int32 GLumenSceneGlobalSDFSimpleCoverageBasedExpand
extern

◆ GLumenShouldUseStereoOptimizations

int32 GLumenShouldUseStereoOptimizations = 1

◆ GLumenTraceDistanceScale

float GLumenTraceDistanceScale = 1.0f

◆ GLumenTraceMeshSDFs

int32 GLumenTraceMeshSDFs = 0