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

Classes

class  FInitReflectionIndirectArgsCS
 
class  FReflectionTileClassificationBuildListsCS
 
class  FReflectionClearNeighborTileCS
 
class  FReflectionGenerateRaysCS
 
class  FReflectionClearUnusedTraceTileDataCS
 
class  FLumenReflectionResolveCS
 
class  FLumenReflectionDenoiserTemporalCS
 
class  FLumenReflectionDenoiserClearCS
 
class  FLumenReflectionDenoiserSpatialCS
 

Namespaces

namespace  LumenReflections
 

Functions

FAutoConsoleVariableRef GVarLumenReflectionTraceMeshSDFs (TEXT("r.Lumen.Reflections.TraceMeshSDFs"), GLumenReflectionTraceMeshSDFs, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionRadianceCacheReprojectionRadiusScale (TEXT("r.Lumen.Reflections.RadianceCache.ReprojectionRadiusScale"), GLumenReflectionRadianceCacheReprojectionRadiusScale, TEXT("Scales the radius of the sphere around each Radiance Cache probe that is intersected for parallax correction when interpolating from the Radiance Cache."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef GVarLumenReflectionRoughnessFadeLength (TEXT("r.Lumen.Reflections.RoughnessFadeLength"), GLumenReflectionRoughnessFadeLength, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef GVarLumenReflectionGGXSamplingBias (TEXT("r.Lumen.Reflections.GGXSamplingBias"), GLumenReflectionGGXSamplingBias, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionTemporalFilter (TEXT("r.Lumen.Reflections.Temporal"), GLumenReflectionTemporalFilter, TEXT("Whether to use a temporal filter"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionHistoryDistanceThreshold (TEXT("r.Lumen.Reflections.Temporal.DistanceThreshold"), GLumenReflectionHistoryDistanceThreshold, TEXT("World space distance threshold needed to discard last frame's lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef GVarLumenReflectionSmoothBias (TEXT("r.Lumen.Reflections.SmoothBias"), GLumenReflectionSmoothBias, TEXT("Values larger than 0 apply a global material roughness bias for Lumen Reflections, where 1 is fully mirror."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstruction (TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction"), GLumenReflectionScreenSpaceReconstruction, TEXT("Whether to use the screen space BRDF reweighting reconstruction"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstructionNumSamples (TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction.NumSamples"), GLumenReflectionScreenSpaceReconstructionNumSamples, TEXT("Number of samples to use for the screen space BRDF reweighting reconstruction"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstructionRoughnessScale (TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction.RoughnessScale"), GLumenReflectionScreenSpaceReconstructionRoughnessScale, TEXT("Values higher than 1 allow neighbor traces to be blurred together more aggressively, but is not physically correct."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionBilateralFilter (TEXT("r.Lumen.Reflections.BilateralFilter"), GLumenReflectionBilateralFilter, TEXT("Whether to do a bilateral filter as a last step in denoising Lumen Reflections."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionBilateralFilterNumSamples (TEXT("r.Lumen.Reflections.BilateralFilter.NumSamples"), GLumenReflectionBilateralFilterNumSamples, TEXT("Number of bilateral filter samples."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenReflectionBilateralFilterDepthWeightScale (TEXT("r.Lumen.Reflections.BilateralFilter.DepthWeightScale"), GLumenReflectionBilateralFilterDepthWeightScale, TEXT("Scales the depth weight of the bilateral filter"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
float GetLumenReflectionSpecularScale ()
 
float GetLumenReflectionContrast ()
 
int32 LumenReflections::GetMaxFramesAccumulated ()
 
void LumenReflections::ModifyCompilationEnvironment (const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
 
float LumenReflections::GetDenoiserOneOverTonemapRange ()
 
FRDGBufferRef SetupVisualizeReflectionTraces (FRDGBuilder &GraphBuilder, FLumenReflectionsVisualizeTracesParameters &VisualizeTracesParameters)
 
void GetReflectionsVisualizeTracesBuffer (TRefCountPtr< FRDGPooledBuffer > &VisualizeTracesData)
 
 IMPLEMENT_GLOBAL_SHADER (FInitReflectionIndirectArgsCS, "/Engine/Private/Lumen/LumenReflections.usf", "InitReflectionIndirectArgsCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FReflectionTileClassificationBuildListsCS, "/Engine/Private/Lumen/LumenReflections.usf", "ReflectionTileClassificationBuildListsCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FReflectionClearNeighborTileCS, "/Engine/Private/Lumen/LumenReflections.usf", "ReflectionClearNeighborTileCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FReflectionGenerateRaysCS, "/Engine/Private/Lumen/LumenReflections.usf", "ReflectionGenerateRaysCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FReflectionClearUnusedTraceTileDataCS, "/Engine/Private/Lumen/LumenReflections.usf", "ReflectionClearUnusedTraceTileDataCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenReflectionResolveCS, "/Engine/Private/Lumen/LumenReflectionResolve.usf", "LumenReflectionResolveCS", SF_Compute)
 
bool ShouldRenderLumenReflections (const FSceneView &View, bool bSkipTracingDataCheck, bool bSkipProjectCheck, bool bIncludeStandalone)
 
FLumenReflectionTileParameters ReflectionTileClassification (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FMinimalSceneTextures &SceneTextures, const FLumenSceneFrameTemporaries &FrameTemporaries, const FLumenReflectionTracingParameters &ReflectionTracingParameters, const FLumenFrontLayerTranslucencyGBufferParameters &FrontLayerTranslucencyGBuffer, ERDGPassFlags ComputePassFlags)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenReflectionDenoiserTemporalCS, "/Engine/Private/Lumen/LumenReflectionDenoiserTemporal.usf", "LumenReflectionDenoiserTemporalCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenReflectionDenoiserClearCS, "/Engine/Private/Lumen/LumenReflectionDenoiserClear.usf", "LumenReflectionDenoiserClearCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenReflectionDenoiserSpatialCS, "/Engine/Private/Lumen/LumenReflectionDenoiserSpatial.usf", "LumenReflectionDenoiserSpatialCS", SF_Compute)
 
 DECLARE_GPU_STAT (LumenReflections)
 
 DECLARE_GPU_STAT (RayTracedTranslucency)
 

Variables

FLumenGatherCvarState GLumenGatherCvars
 
int32 GLumenReflectionTraceMeshSDFs = 1
 
float GLumenReflectionRadianceCacheReprojectionRadiusScale = 10.0f
 
TAutoConsoleVariable< floatCVarLumenReflectionMaxRoughnessToTrace (TEXT("r.Lumen.Reflections.MaxRoughnessToTrace"), -1.0f, TEXT("Max roughness value for which Lumen still traces dedicated reflection rays. Overrides Post Process Volume settings when set to anything >= 0."), ECVF_RenderThreadSafe)
 
TAutoConsoleVariable< floatCVarLumenReflectionMaxRoughnessToTraceClamp (TEXT("r.Lumen.Reflections.MaxRoughnessToTraceClamp"), 1.0f, TEXT("Scalability clamp for max roughness value for which Lumen still traces dedicated reflection rays. Project and Post Process Volumes settings are clamped to this value. Useful for scalability."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
TAutoConsoleVariable< floatCVarLumenReflectionsMaxRoughnessToTraceForFoliage (TEXT("r.Lumen.Reflections.MaxRoughnessToTraceForFoliage"), 0.2f, TEXT("Max roughness value for which Lumen still traces dedicated reflection rays from foliage pixels. Where foliage pixel is a pixel with two sided or subsurface shading model."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
float GLumenReflectionRoughnessFadeLength = .1f
 
float GLumenReflectionGGXSamplingBias = .1f
 
int32 GLumenReflectionTemporalFilter = 1
 
TAutoConsoleVariable< int32CVarLumenReflectionTemporalMaxRayDirections (TEXT("r.Lumen.Reflections.Temporal.MaxRayDirections"), 1024, TEXT("Number of possible random directions per pixel."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
float GLumenReflectionHistoryDistanceThreshold = .03f
 
TAutoConsoleVariable< int32CVarLumenReflectionMaxRayIntensity (TEXT("r.Lumen.Reflections.MaxRayIntensity"), 40.0f, TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
float GLumenReflectionSmoothBias = 0.0f
 
int32 GLumenReflectionScreenSpaceReconstruction = 1
 
int32 GLumenReflectionScreenSpaceReconstructionNumSamples = 5
 
float GLumenReflectionScreenSpaceReconstructionRoughnessScale = 1.0f
 
int32 GLumenReflectionBilateralFilter = 1
 
int32 GLumenReflectionBilateralFilterNumSamples = 4
 
float GLumenReflectionBilateralFilterDepthWeightScale = 10000.0f
 
int32 GLumenReflectionsVisualizeTracingCoherency = 0
 
FAutoConsoleVariableRef GVarLumenReflectionsVisualizeTracingCoherency (TEXT("r.Lumen.Reflections.VisualizeTracingCoherency"), GLumenReflectionsVisualizeTracingCoherency, TEXT("Set to 1 to capture traces from a random wavefront and draw them on the screen. Set to 1 again to re-capture. Shaders must enable support first, see DEBUG_SUPPORT_VISUALIZE_TRACE_COHERENCY"), ECVF_RenderThreadSafe)
 
float GLumenReflectionsSpecularScale = 1.f
 
FAutoConsoleVariableRef GVarLumenReflectionsSpecularScale (TEXT("r.Lumen.Reflections.SpecularScale"), GLumenReflectionsSpecularScale, TEXT("Non-physically correct Lumen specular reflection scale. Recommended to keep at 1."), ECVF_RenderThreadSafe)
 
float GLumenReflectionsContrast = 1.f
 
FAutoConsoleVariableRef GVarLumenReflectionsContrast (TEXT("r.Lumen.Reflections.Contrast"), GLumenReflectionsContrast, TEXT("Non-physically correct Lumen reflection contrast. Recommended to keep at 1."), ECVF_RenderThreadSafe)
 
TAutoConsoleVariable< int32CVarRayTracedTranslucencyMaxRayIntensity (TEXT("r.RayTracedTranslucency.MaxRayIntensity"), 1000.0f, TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies for raytraced translucency surfaces."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
TRefCountPtr< FRDGPooledBufferGVisualizeReflectionTracesData
 
const int32 GReflectionResolveTileSize = 8
 

Function Documentation

◆ CVarLumenReflectionBilateralFilter()

FAutoConsoleVariableRef CVarLumenReflectionBilateralFilter ( TEXT("r.Lumen.Reflections.BilateralFilter")  ,
GLumenReflectionBilateralFilter  ,
TEXT("Whether to do a bilateral filter as a last step in denoising Lumen Reflections." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionBilateralFilterDepthWeightScale()

FAutoConsoleVariableRef CVarLumenReflectionBilateralFilterDepthWeightScale ( TEXT("r.Lumen.Reflections.BilateralFilter.DepthWeightScale")  ,
GLumenReflectionBilateralFilterDepthWeightScale  ,
TEXT("Scales the depth weight of the bilateral filter" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionBilateralFilterNumSamples()

FAutoConsoleVariableRef CVarLumenReflectionBilateralFilterNumSamples ( TEXT("r.Lumen.Reflections.BilateralFilter.NumSamples")  ,
GLumenReflectionBilateralFilterNumSamples  ,
TEXT("Number of bilateral filter samples." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionHistoryDistanceThreshold()

FAutoConsoleVariableRef CVarLumenReflectionHistoryDistanceThreshold ( TEXT("r.Lumen.Reflections.Temporal.DistanceThreshold")  ,
GLumenReflectionHistoryDistanceThreshold  ,
TEXT("World space distance threshold needed to discard last frame's lighting results. Lower values reduce ghosting from characters when near a wall but increase flickering artifacts." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionRadianceCacheReprojectionRadiusScale()

FAutoConsoleVariableRef CVarLumenReflectionRadianceCacheReprojectionRadiusScale ( TEXT("r.Lumen.Reflections.RadianceCache.ReprojectionRadiusScale")  ,
GLumenReflectionRadianceCacheReprojectionRadiusScale  ,
TEXT("Scales the radius of the sphere around each Radiance Cache probe that is intersected for parallax correction when interpolating from the Radiance Cache." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionScreenSpaceReconstruction()

FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstruction ( TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction")  ,
GLumenReflectionScreenSpaceReconstruction  ,
TEXT("Whether to use the screen space BRDF reweighting reconstruction" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionScreenSpaceReconstructionNumSamples()

FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstructionNumSamples ( TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction.NumSamples")  ,
GLumenReflectionScreenSpaceReconstructionNumSamples  ,
TEXT("Number of samples to use for the screen space BRDF reweighting reconstruction" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionScreenSpaceReconstructionRoughnessScale()

FAutoConsoleVariableRef CVarLumenReflectionScreenSpaceReconstructionRoughnessScale ( TEXT("r.Lumen.Reflections.ScreenSpaceReconstruction.RoughnessScale")  ,
GLumenReflectionScreenSpaceReconstructionRoughnessScale  ,
TEXT("Values higher than 1 allow neighbor traces to be blurred together more aggressively, but is not physically correct." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionTemporalFilter()

FAutoConsoleVariableRef CVarLumenReflectionTemporalFilter ( TEXT("r.Lumen.Reflections.Temporal")  ,
GLumenReflectionTemporalFilter  ,
TEXT("Whether to use a temporal filter" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_GPU_STAT() [1/2]

DECLARE_GPU_STAT ( LumenReflections  )

◆ DECLARE_GPU_STAT() [2/2]

DECLARE_GPU_STAT ( RayTracedTranslucency  )

◆ GetLumenReflectionContrast()

float GetLumenReflectionContrast ( )

◆ GetLumenReflectionSpecularScale()

float GetLumenReflectionSpecularScale ( )

◆ GetReflectionsVisualizeTracesBuffer()

void GetReflectionsVisualizeTracesBuffer ( TRefCountPtr< FRDGPooledBuffer > &  VisualizeTracesData)

◆ GVarLumenReflectionGGXSamplingBias()

FAutoConsoleVariableRef GVarLumenReflectionGGXSamplingBias ( TEXT("r.Lumen.Reflections.GGXSamplingBias")  ,
GLumenReflectionGGXSamplingBias  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GVarLumenReflectionRoughnessFadeLength()

FAutoConsoleVariableRef GVarLumenReflectionRoughnessFadeLength ( TEXT("r.Lumen.Reflections.RoughnessFadeLength")  ,
GLumenReflectionRoughnessFadeLength  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GVarLumenReflectionSmoothBias()

FAutoConsoleVariableRef GVarLumenReflectionSmoothBias ( TEXT("r.Lumen.Reflections.SmoothBias")  ,
GLumenReflectionSmoothBias  ,
TEXT("Values larger than 0 apply a global material roughness bias for Lumen Reflections, where 1 is fully mirror." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GVarLumenReflectionTraceMeshSDFs()

FAutoConsoleVariableRef GVarLumenReflectionTraceMeshSDFs ( TEXT("r.Lumen.Reflections.TraceMeshSDFs")  ,
GLumenReflectionTraceMeshSDFs  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/9]

IMPLEMENT_GLOBAL_SHADER ( FInitReflectionIndirectArgsCS  ,
"/Engine/Private/Lumen/LumenReflections.usf"  ,
"InitReflectionIndirectArgsCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenReflectionDenoiserClearCS  ,
"/Engine/Private/Lumen/LumenReflectionDenoiserClear.usf"  ,
"LumenReflectionDenoiserClearCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenReflectionDenoiserSpatialCS  ,
"/Engine/Private/Lumen/LumenReflectionDenoiserSpatial.usf"  ,
"LumenReflectionDenoiserSpatialCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenReflectionDenoiserTemporalCS  ,
"/Engine/Private/Lumen/LumenReflectionDenoiserTemporal.usf"  ,
"LumenReflectionDenoiserTemporalCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/9]

IMPLEMENT_GLOBAL_SHADER ( FLumenReflectionResolveCS  ,
"/Engine/Private/Lumen/LumenReflectionResolve.usf"  ,
"LumenReflectionResolveCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/9]

IMPLEMENT_GLOBAL_SHADER ( FReflectionClearNeighborTileCS  ,
"/Engine/Private/Lumen/LumenReflections.usf"  ,
"ReflectionClearNeighborTileCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/9]

IMPLEMENT_GLOBAL_SHADER ( FReflectionClearUnusedTraceTileDataCS  ,
"/Engine/Private/Lumen/LumenReflections.usf"  ,
"ReflectionClearUnusedTraceTileDataCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/9]

IMPLEMENT_GLOBAL_SHADER ( FReflectionGenerateRaysCS  ,
"/Engine/Private/Lumen/LumenReflections.usf"  ,
"ReflectionGenerateRaysCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/9]

IMPLEMENT_GLOBAL_SHADER ( FReflectionTileClassificationBuildListsCS  ,
"/Engine/Private/Lumen/LumenReflections.usf"  ,
"ReflectionTileClassificationBuildListsCS"  ,
SF_Compute   
)

◆ ReflectionTileClassification()

FLumenReflectionTileParameters ReflectionTileClassification ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FMinimalSceneTextures SceneTextures,
const FLumenSceneFrameTemporaries FrameTemporaries,
const FLumenReflectionTracingParameters ReflectionTracingParameters,
const FLumenFrontLayerTranslucencyGBufferParameters FrontLayerTranslucencyGBuffer,
ERDGPassFlags  ComputePassFlags 
)

◆ SetupVisualizeReflectionTraces()

FRDGBufferRef SetupVisualizeReflectionTraces ( FRDGBuilder GraphBuilder,
FLumenReflectionsVisualizeTracesParameters VisualizeTracesParameters 
)

◆ ShouldRenderLumenReflections()

bool ShouldRenderLumenReflections ( const FSceneView View,
bool  bSkipTracingDataCheck,
bool  bSkipProjectCheck,
bool  bIncludeStandalone 
)

Variable Documentation

◆ CVarLumenReflectionMaxRayIntensity

TAutoConsoleVariable< int32 > CVarLumenReflectionMaxRayIntensity(TEXT("r.Lumen.Reflections.MaxRayIntensity"), 40.0f, TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.MaxRayIntensity")  ,
40.  0f,
TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionMaxRoughnessToTrace

TAutoConsoleVariable< float > CVarLumenReflectionMaxRoughnessToTrace(TEXT("r.Lumen.Reflections.MaxRoughnessToTrace"), -1.0f, TEXT("Max roughness value for which Lumen still traces dedicated reflection rays. Overrides Post Process Volume settings when set to anything >= 0."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.MaxRoughnessToTrace")  ,
-1.  0f,
TEXT("Max roughness value for which Lumen still traces dedicated reflection rays. Overrides Post Process Volume settings when set to anything >= 0.")  ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenReflectionMaxRoughnessToTraceClamp

TAutoConsoleVariable< float > CVarLumenReflectionMaxRoughnessToTraceClamp(TEXT("r.Lumen.Reflections.MaxRoughnessToTraceClamp"), 1.0f, TEXT("Scalability clamp for max roughness value for which Lumen still traces dedicated reflection rays. Project and Post Process Volumes settings are clamped to this value. Useful for scalability."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.MaxRoughnessToTraceClamp")  ,
1.  0f,
TEXT("Scalability clamp for max roughness value for which Lumen still traces dedicated reflection rays. Project and Post Process Volumes settings are clamped to this value. Useful for scalability." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionsMaxRoughnessToTraceForFoliage

TAutoConsoleVariable< float > CVarLumenReflectionsMaxRoughnessToTraceForFoliage(TEXT("r.Lumen.Reflections.MaxRoughnessToTraceForFoliage"), 0.2f, TEXT("Max roughness value for which Lumen still traces dedicated reflection rays from foliage pixels. Where foliage pixel is a pixel with two sided or subsurface shading model."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.MaxRoughnessToTraceForFoliage")  ,
0.  2f,
TEXT("Max roughness value for which Lumen still traces dedicated reflection rays from foliage pixels. Where foliage pixel is a pixel with two sided or subsurface shading model." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenReflectionTemporalMaxRayDirections

TAutoConsoleVariable< int32 > CVarLumenReflectionTemporalMaxRayDirections(TEXT("r.Lumen.Reflections.Temporal.MaxRayDirections"), 1024, TEXT("Number of possible random directions per pixel."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.Temporal.MaxRayDirections")  ,
1024  ,
TEXT("Number of possible random directions per pixel." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarRayTracedTranslucencyMaxRayIntensity

TAutoConsoleVariable< int32 > CVarRayTracedTranslucencyMaxRayIntensity(TEXT("r.RayTracedTranslucency.MaxRayIntensity"), 1000.0f, TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies for raytraced translucency surfaces."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.RayTracedTranslucency.MaxRayIntensity")  ,
1000.  0f,
TEXT("Clamps the maximum ray lighting intensity (with PreExposure) to reduce fireflies for raytraced translucency surfaces." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GLumenGatherCvars

FLumenGatherCvarState GLumenGatherCvars
extern

◆ GLumenReflectionBilateralFilter

int32 GLumenReflectionBilateralFilter = 1

◆ GLumenReflectionBilateralFilterDepthWeightScale

float GLumenReflectionBilateralFilterDepthWeightScale = 10000.0f

◆ GLumenReflectionBilateralFilterNumSamples

int32 GLumenReflectionBilateralFilterNumSamples = 4

◆ GLumenReflectionGGXSamplingBias

float GLumenReflectionGGXSamplingBias = .1f

◆ GLumenReflectionHistoryDistanceThreshold

float GLumenReflectionHistoryDistanceThreshold = .03f

◆ GLumenReflectionRadianceCacheReprojectionRadiusScale

float GLumenReflectionRadianceCacheReprojectionRadiusScale = 10.0f

◆ GLumenReflectionRoughnessFadeLength

float GLumenReflectionRoughnessFadeLength = .1f

◆ GLumenReflectionsContrast

float GLumenReflectionsContrast = 1.f

◆ GLumenReflectionScreenSpaceReconstruction

int32 GLumenReflectionScreenSpaceReconstruction = 1

◆ GLumenReflectionScreenSpaceReconstructionNumSamples

int32 GLumenReflectionScreenSpaceReconstructionNumSamples = 5

◆ GLumenReflectionScreenSpaceReconstructionRoughnessScale

float GLumenReflectionScreenSpaceReconstructionRoughnessScale = 1.0f

◆ GLumenReflectionSmoothBias

float GLumenReflectionSmoothBias = 0.0f

◆ GLumenReflectionsSpecularScale

float GLumenReflectionsSpecularScale = 1.f

◆ GLumenReflectionsVisualizeTracingCoherency

int32 GLumenReflectionsVisualizeTracingCoherency = 0

◆ GLumenReflectionTemporalFilter

int32 GLumenReflectionTemporalFilter = 1

◆ GLumenReflectionTraceMeshSDFs

int32 GLumenReflectionTraceMeshSDFs = 1

◆ GReflectionResolveTileSize

const int32 GReflectionResolveTileSize = 8

◆ GVarLumenReflectionsContrast

FAutoConsoleVariableRef GVarLumenReflectionsContrast(TEXT("r.Lumen.Reflections.Contrast"), GLumenReflectionsContrast, TEXT("Non-physically correct Lumen reflection contrast. Recommended to keep at 1."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.Contrast")  ,
GLumenReflectionsContrast  ,
TEXT("Non-physically correct Lumen reflection contrast. Recommended to keep at 1.")  ,
ECVF_RenderThreadSafe   
)

◆ GVarLumenReflectionsSpecularScale

FAutoConsoleVariableRef GVarLumenReflectionsSpecularScale(TEXT("r.Lumen.Reflections.SpecularScale"), GLumenReflectionsSpecularScale, TEXT("Non-physically correct Lumen specular reflection scale. Recommended to keep at 1."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.SpecularScale")  ,
GLumenReflectionsSpecularScale  ,
TEXT("Non-physically correct Lumen specular reflection scale. Recommended to keep at 1.")  ,
ECVF_RenderThreadSafe   
)

◆ GVarLumenReflectionsVisualizeTracingCoherency

FAutoConsoleVariableRef GVarLumenReflectionsVisualizeTracingCoherency(TEXT("r.Lumen.Reflections.VisualizeTracingCoherency"), GLumenReflectionsVisualizeTracingCoherency, TEXT("Set to 1 to capture traces from a random wavefront and draw them on the screen. Set to 1 again to re-capture. Shaders must enable support first, see DEBUG_SUPPORT_VISUALIZE_TRACE_COHERENCY"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.Reflections.VisualizeTracingCoherency")  ,
GLumenReflectionsVisualizeTracingCoherency  ,
TEXT("Set to 1 to capture traces from a random wavefront and draw them on the screen. Set to 1 again to re-capture. Shaders must enable support first, see DEBUG_SUPPORT_VISUALIZE_TRACE_COHERENCY" ,
ECVF_RenderThreadSafe   
)

◆ GVisualizeReflectionTracesData

TRefCountPtr<FRDGPooledBuffer> GVisualizeReflectionTracesData