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

Classes

class  FMarkRadianceProbesUsedByGBufferCS
 
class  FIrradianceFieldGatherCS
 

Namespaces

namespace  LumenIrradianceFieldGather
 

Functions

FAutoConsoleVariableRef CVarLumenIrradianceFieldGather (TEXT("r.Lumen.IrradianceFieldGather"), GLumenIrradianceFieldGather, TEXT("Whether to use the Irradiance Field Final Gather, an experimental opaque final gather that interpolates from pre-calculated irradiance in probes for cheaper, but lower quality GI."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
LumenRadianceCache::FRadianceCacheInputs LumenIrradianceFieldGather::SetupRadianceCacheInputs ()
 
 IMPLEMENT_GLOBAL_SHADER (FMarkRadianceProbesUsedByGBufferCS, "/Engine/Private/Lumen/LumenIrradianceFieldGather.usf", "MarkRadianceProbesUsedByGBufferCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FIrradianceFieldGatherCS, "/Engine/Private/Lumen/LumenIrradianceFieldGather.usf", "IrradianceFieldGatherCS", SF_Compute)
 
 DECLARE_GPU_STAT (LumenIrradianceFieldGather)
 

Variables

int32 GLumenIrradianceFieldGather = 0
 
int32 GLumenIrradianceFieldNumClipmaps = 4
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldNumClipmaps (TEXT("r.Lumen.IrradianceFieldGather.NumClipmaps"), GLumenIrradianceFieldNumClipmaps, TEXT("Number of radiance cache clipmaps."), ECVF_RenderThreadSafe)
 
float GLumenIrradianceFieldClipmapWorldExtent = 5000.0f
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldClipmapWorldExtent (TEXT("r.Lumen.IrradianceFieldGather.ClipmapWorldExtent"), GLumenIrradianceFieldClipmapWorldExtent, TEXT("World space extent of the first clipmap"), ECVF_RenderThreadSafe)
 
float GLumenIrradianceFieldClipmapDistributionBase = 2.0f
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldClipmapDistributionBase (TEXT("r.Lumen.IrradianceFieldGather.ClipmapDistributionBase"), GLumenIrradianceFieldClipmapDistributionBase, TEXT("Base of the Pow() that controls the size of each successive clipmap relative to the first."), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldGridResolution = 64
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldResolution (TEXT("r.Lumen.IrradianceFieldGather.GridResolution"), GLumenIrradianceFieldGridResolution, TEXT("Resolution of the probe placement grid within each clipmap"), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldProbeResolution = 16
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeResolution (TEXT("r.Lumen.IrradianceFieldGather.ProbeResolution"), GLumenIrradianceFieldProbeResolution, TEXT("Resolution of the probe's 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2"), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldProbeIrradianceResolution = 6
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeIrradianceResolution (TEXT("r.Lumen.IrradianceFieldGather.IrradianceProbeResolution"), GLumenIrradianceFieldProbeIrradianceResolution, TEXT("Resolution of the probe's 2d irradiance layout."), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldProbeOcclusionResolution = 16
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionResolution (TEXT("r.Lumen.IrradianceFieldGather.OcclusionProbeResolution"), GLumenIrradianceFieldProbeOcclusionResolution, TEXT("Resolution of the probe's 2d occlusion layout."), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldNumMipmaps = 1
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldNumMipmaps (TEXT("r.Lumen.IrradianceFieldGather.NumMipmaps"), GLumenIrradianceFieldNumMipmaps, TEXT("Number of radiance cache mipmaps."), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldProbeAtlasResolutionInProbes = 128
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeAtlasResolutionInProbes (TEXT("r.Lumen.IrradianceFieldGather.ProbeAtlasResolutionInProbes"), GLumenIrradianceFieldProbeAtlasResolutionInProbes, TEXT("Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering."), ECVF_RenderThreadSafe)
 
float GLumenIrradianceFieldProbeOcclusionViewBias = 20
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionViewBias (TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionViewBias"), GLumenIrradianceFieldProbeOcclusionViewBias, TEXT("Bias along the view direction to reduce self-occlusion artifacts from Probe Occlusion"), ECVF_RenderThreadSafe)
 
float GLumenIrradianceFieldProbeOcclusionNormalBias = 20
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionNormalBias (TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionNormalBias"), GLumenIrradianceFieldProbeOcclusionNormalBias, TEXT("Bias along the normal to reduce self-occlusion artifacts from Probe Occlusion"), ECVF_RenderThreadSafe)
 
int32 GLumenIrradianceFieldStats = 0
 
FAutoConsoleVariableRef CVarLumenIrradianceFieldStats (TEXT("r.Lumen.IrradianceFieldGather.RadianceCache.Stats"), GLumenIrradianceFieldStats, TEXT("GPU print out Radiance Cache update stats."), ECVF_RenderThreadSafe)
 

Function Documentation

◆ CVarLumenIrradianceFieldGather()

FAutoConsoleVariableRef CVarLumenIrradianceFieldGather ( TEXT("r.Lumen.IrradianceFieldGather")  ,
GLumenIrradianceFieldGather  ,
TEXT("Whether to use the Irradiance Field Final Gather, an experimental opaque final gather that interpolates from pre-calculated irradiance in probes for cheaper, but lower quality GI." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_GPU_STAT()

DECLARE_GPU_STAT ( LumenIrradianceFieldGather  )

◆ IMPLEMENT_GLOBAL_SHADER() [1/2]

IMPLEMENT_GLOBAL_SHADER ( FIrradianceFieldGatherCS  ,
"/Engine/Private/Lumen/LumenIrradianceFieldGather.usf"  ,
"IrradianceFieldGatherCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/2]

IMPLEMENT_GLOBAL_SHADER ( FMarkRadianceProbesUsedByGBufferCS  ,
"/Engine/Private/Lumen/LumenIrradianceFieldGather.usf"  ,
"MarkRadianceProbesUsedByGBufferCS"  ,
SF_Compute   
)

Variable Documentation

◆ CVarLumenIrradianceFieldClipmapDistributionBase

FAutoConsoleVariableRef CVarLumenIrradianceFieldClipmapDistributionBase(TEXT("r.Lumen.IrradianceFieldGather.ClipmapDistributionBase"), GLumenIrradianceFieldClipmapDistributionBase, TEXT("Base of the Pow() that controls the size of each successive clipmap relative to the first."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ClipmapDistributionBase")  ,
GLumenIrradianceFieldClipmapDistributionBase  ,
TEXT("Base of the Pow() that controls the size of each successive clipmap relative to the first." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldClipmapWorldExtent

FAutoConsoleVariableRef CVarLumenIrradianceFieldClipmapWorldExtent(TEXT("r.Lumen.IrradianceFieldGather.ClipmapWorldExtent"), GLumenIrradianceFieldClipmapWorldExtent, TEXT("World space extent of the first clipmap"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ClipmapWorldExtent")  ,
GLumenIrradianceFieldClipmapWorldExtent  ,
TEXT("World space extent of the first clipmap" ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldNumClipmaps

FAutoConsoleVariableRef CVarLumenIrradianceFieldNumClipmaps(TEXT("r.Lumen.IrradianceFieldGather.NumClipmaps"), GLumenIrradianceFieldNumClipmaps, TEXT("Number of radiance cache clipmaps."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.NumClipmaps")  ,
GLumenIrradianceFieldNumClipmaps  ,
TEXT("Number of radiance cache clipmaps." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldNumMipmaps

FAutoConsoleVariableRef CVarLumenIrradianceFieldNumMipmaps(TEXT("r.Lumen.IrradianceFieldGather.NumMipmaps"), GLumenIrradianceFieldNumMipmaps, TEXT("Number of radiance cache mipmaps."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.NumMipmaps")  ,
GLumenIrradianceFieldNumMipmaps  ,
TEXT("Number of radiance cache mipmaps." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeAtlasResolutionInProbes

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeAtlasResolutionInProbes(TEXT("r.Lumen.IrradianceFieldGather.ProbeAtlasResolutionInProbes"), GLumenIrradianceFieldProbeAtlasResolutionInProbes, TEXT("Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ProbeAtlasResolutionInProbes")  ,
GLumenIrradianceFieldProbeAtlasResolutionInProbes  ,
TEXT("Number of probes along one dimension of the probe atlas cache texture. This controls the memory usage of the cache. Overflow currently results in incorrect rendering." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeIrradianceResolution

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeIrradianceResolution(TEXT("r.Lumen.IrradianceFieldGather.IrradianceProbeResolution"), GLumenIrradianceFieldProbeIrradianceResolution, TEXT("Resolution of the probe's 2d irradiance layout."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.IrradianceProbeResolution")  ,
GLumenIrradianceFieldProbeIrradianceResolution  ,
TEXT("Resolution of the probe's 2d irradiance layout." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeOcclusionNormalBias

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionNormalBias(TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionNormalBias"), GLumenIrradianceFieldProbeOcclusionNormalBias, TEXT("Bias along the normal to reduce self-occlusion artifacts from Probe Occlusion"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionNormalBias")  ,
GLumenIrradianceFieldProbeOcclusionNormalBias  ,
TEXT("Bias along the normal to reduce self-occlusion artifacts from Probe Occlusion" ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeOcclusionResolution

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionResolution(TEXT("r.Lumen.IrradianceFieldGather.OcclusionProbeResolution"), GLumenIrradianceFieldProbeOcclusionResolution, TEXT("Resolution of the probe's 2d occlusion layout."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.OcclusionProbeResolution")  ,
GLumenIrradianceFieldProbeOcclusionResolution  ,
TEXT("Resolution of the probe's 2d occlusion layout." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeOcclusionViewBias

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeOcclusionViewBias(TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionViewBias"), GLumenIrradianceFieldProbeOcclusionViewBias, TEXT("Bias along the view direction to reduce self-occlusion artifacts from Probe Occlusion"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ProbeOcclusionViewBias")  ,
GLumenIrradianceFieldProbeOcclusionViewBias  ,
TEXT("Bias along the view direction to reduce self-occlusion artifacts from Probe Occlusion" ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldProbeResolution

FAutoConsoleVariableRef CVarLumenIrradianceFieldProbeResolution(TEXT("r.Lumen.IrradianceFieldGather.ProbeResolution"), GLumenIrradianceFieldProbeResolution, TEXT("Resolution of the probe's 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.ProbeResolution")  ,
GLumenIrradianceFieldProbeResolution  ,
TEXT("Resolution of the probe's 2d radiance layout. The number of rays traced for the probe will be ProbeResolution ^ 2")  ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldResolution

FAutoConsoleVariableRef CVarLumenIrradianceFieldResolution(TEXT("r.Lumen.IrradianceFieldGather.GridResolution"), GLumenIrradianceFieldGridResolution, TEXT("Resolution of the probe placement grid within each clipmap"), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.GridResolution")  ,
GLumenIrradianceFieldGridResolution  ,
TEXT("Resolution of the probe placement grid within each clipmap" ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenIrradianceFieldStats

FAutoConsoleVariableRef CVarLumenIrradianceFieldStats(TEXT("r.Lumen.IrradianceFieldGather.RadianceCache.Stats"), GLumenIrradianceFieldStats, TEXT("GPU print out Radiance Cache update stats."), ECVF_RenderThreadSafe) ( TEXT("r.Lumen.IrradianceFieldGather.RadianceCache.Stats")  ,
GLumenIrradianceFieldStats  ,
TEXT("GPU print out Radiance Cache update stats." ,
ECVF_RenderThreadSafe   
)

◆ GLumenIrradianceFieldClipmapDistributionBase

float GLumenIrradianceFieldClipmapDistributionBase = 2.0f

◆ GLumenIrradianceFieldClipmapWorldExtent

float GLumenIrradianceFieldClipmapWorldExtent = 5000.0f

◆ GLumenIrradianceFieldGather

int32 GLumenIrradianceFieldGather = 0

◆ GLumenIrradianceFieldGridResolution

int32 GLumenIrradianceFieldGridResolution = 64

◆ GLumenIrradianceFieldNumClipmaps

int32 GLumenIrradianceFieldNumClipmaps = 4

◆ GLumenIrradianceFieldNumMipmaps

int32 GLumenIrradianceFieldNumMipmaps = 1

◆ GLumenIrradianceFieldProbeAtlasResolutionInProbes

int32 GLumenIrradianceFieldProbeAtlasResolutionInProbes = 128

◆ GLumenIrradianceFieldProbeIrradianceResolution

int32 GLumenIrradianceFieldProbeIrradianceResolution = 6

◆ GLumenIrradianceFieldProbeOcclusionNormalBias

float GLumenIrradianceFieldProbeOcclusionNormalBias = 20

◆ GLumenIrradianceFieldProbeOcclusionResolution

int32 GLumenIrradianceFieldProbeOcclusionResolution = 16

◆ GLumenIrradianceFieldProbeOcclusionViewBias

float GLumenIrradianceFieldProbeOcclusionViewBias = 20

◆ GLumenIrradianceFieldProbeResolution

int32 GLumenIrradianceFieldProbeResolution = 16

◆ GLumenIrradianceFieldStats

int32 GLumenIrradianceFieldStats = 0