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

Classes

class  FLumenCardCombineLightingCS
 
class  FClearCardUpdateContextCS
 
class  FBuildPageUpdatePriorityHistogramCS
 
class  FSelectMaxUpdateBucketCS
 
class  FBuildCardsUpdateListCS
 
class  FSetCardPageIndexIndirectArgsCS
 
class  FLumenSceneLightingStatsCS
 

Namespaces

namespace  LumenSceneLighting
 
namespace  LumenCardUpdateContext
 

Functions

FAutoConsoleVariableRef CVarLumenSceneLightingFeedback (TEXT("r.LumenScene.Lighting.Feedback"), GLumenSceneLightingFeedback, TEXT("Whether to prioritize surface cache lighting updates based on the feedback."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneDirectLightingUpdateFactor (TEXT("r.LumenScene.DirectLighting.UpdateFactor"), GLumenDirectLightingUpdateFactor, TEXT("Controls for how many texels direct lighting will be updated every frame. Texels = SurfaceCacheTexels / Factor."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneRadiosityUpdateFactor (TEXT("r.LumenScene.Radiosity.UpdateFactor"), GLumenRadiosityUpdateFactor, TEXT("Controls for how many texels radiosity will be updated every frame. Texels = SurfaceCacheTexels / Factor."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneLightingStats (TEXT("r.LumenScene.Lighting.Stats"), GLumenLightingStats, TEXT("GPU print out Lumen lighting update stats."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
uint32 GetLumenLightingStatMode ()
 
bool LumenSceneLighting::UseFeedback (const FSceneViewFamily &ViewFamily)
 
void SetLightingUpdateAtlasSize (FIntPoint PhysicalAtlasSize, int32 UpdateFactor, FLumenCardUpdateContext &Context)
 
 IMPLEMENT_GLOBAL_SHADER (FClearLumenCardsPS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "ClearLumenCardsPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FCopyCardCaptureLightingToAtlasPS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "CopyCardCaptureLightingToAtlasPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FRasterizeToCardsVS,"/Engine/Private/Lumen/LumenSceneLighting.usf","RasterizeToCardsVS", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenCardCombineLightingCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "CombineLumenSceneLightingCS", SF_Compute)
 
 DECLARE_GPU_STAT (LumenSceneLighting)
 
 IMPLEMENT_GLOBAL_SHADER (FClearCardUpdateContextCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "ClearCardUpdateContextCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FBuildPageUpdatePriorityHistogramCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "BuildPageUpdatePriorityHistogramCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FSelectMaxUpdateBucketCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "SelectMaxUpdateBucketCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FBuildCardsUpdateListCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "BuildCardsUpdateListCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FSetCardPageIndexIndirectArgsCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "SetCardPageIndexIndirectArgsCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenSceneLightingStatsCS, "/Engine/Private/Lumen/LumenSceneLightingDebug.usf", "LumenSceneLightingStatsCS", SF_Compute)
 

Variables

int32 GLumenSceneLightingFeedback = 1
 
int32 GLumenDirectLightingUpdateFactor = 32
 
int32 GLumenRadiosityUpdateFactor = 64
 
int32 GLumenLightingStats = 0
 
constexpr uint32 LumenCardUpdateContext::CARD_UPDATE_CONTEXT_MAX = 2
 
constexpr uint32 LumenCardUpdateContext::PRIORITY_HISTOGRAM_SIZE = 16
 
constexpr uint32 LumenCardUpdateContext::MAX_UPDATE_BUCKET_STRIDE = 2
 
constexpr uint32 LumenCardUpdateContext::CARD_PAGE_TILE_ALLOCATOR_STRIDE = 2
 

Function Documentation

◆ CVarLumenSceneDirectLightingUpdateFactor()

FAutoConsoleVariableRef CVarLumenSceneDirectLightingUpdateFactor ( TEXT("r.LumenScene.DirectLighting.UpdateFactor")  ,
GLumenDirectLightingUpdateFactor  ,
TEXT("Controls for how many texels direct lighting will be updated every frame. Texels = SurfaceCacheTexels / Factor." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneLightingFeedback()

FAutoConsoleVariableRef CVarLumenSceneLightingFeedback ( TEXT("r.LumenScene.Lighting.Feedback")  ,
GLumenSceneLightingFeedback  ,
TEXT("Whether to prioritize surface cache lighting updates based on the feedback." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneLightingStats()

FAutoConsoleVariableRef CVarLumenSceneLightingStats ( TEXT("r.LumenScene.Lighting.Stats")  ,
GLumenLightingStats  ,
TEXT("GPU print out Lumen lighting update stats." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneRadiosityUpdateFactor()

FAutoConsoleVariableRef CVarLumenSceneRadiosityUpdateFactor ( TEXT("r.LumenScene.Radiosity.UpdateFactor")  ,
GLumenRadiosityUpdateFactor  ,
TEXT("Controls for how many texels radiosity will be updated every frame. Texels = SurfaceCacheTexels / Factor." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_GPU_STAT()

DECLARE_GPU_STAT ( LumenSceneLighting  )

◆ GetLumenLightingStatMode()

uint32 GetLumenLightingStatMode ( )

◆ IMPLEMENT_GLOBAL_SHADER() [1/10]

IMPLEMENT_GLOBAL_SHADER ( FBuildCardsUpdateListCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"BuildCardsUpdateListCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/10]

IMPLEMENT_GLOBAL_SHADER ( FBuildPageUpdatePriorityHistogramCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"BuildPageUpdatePriorityHistogramCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/10]

IMPLEMENT_GLOBAL_SHADER ( FClearCardUpdateContextCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"ClearCardUpdateContextCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/10]

IMPLEMENT_GLOBAL_SHADER ( FClearLumenCardsPS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"ClearLumenCardsPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/10]

IMPLEMENT_GLOBAL_SHADER ( FCopyCardCaptureLightingToAtlasPS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"CopyCardCaptureLightingToAtlasPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/10]

IMPLEMENT_GLOBAL_SHADER ( FLumenCardCombineLightingCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"CombineLumenSceneLightingCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/10]

IMPLEMENT_GLOBAL_SHADER ( FLumenSceneLightingStatsCS  ,
"/Engine/Private/Lumen/LumenSceneLightingDebug.usf"  ,
"LumenSceneLightingStatsCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/10]

IMPLEMENT_GLOBAL_SHADER ( FRasterizeToCardsVS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"RasterizeToCardsVS"  ,
SF_Vertex   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/10]

IMPLEMENT_GLOBAL_SHADER ( FSelectMaxUpdateBucketCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"SelectMaxUpdateBucketCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [10/10]

IMPLEMENT_GLOBAL_SHADER ( FSetCardPageIndexIndirectArgsCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"SetCardPageIndexIndirectArgsCS"  ,
SF_Compute   
)

◆ SetLightingUpdateAtlasSize()

void SetLightingUpdateAtlasSize ( FIntPoint  PhysicalAtlasSize,
int32  UpdateFactor,
FLumenCardUpdateContext Context 
)

Variable Documentation

◆ GLumenDirectLightingUpdateFactor

int32 GLumenDirectLightingUpdateFactor = 32

◆ GLumenLightingStats

int32 GLumenLightingStats = 0

◆ GLumenRadiosityUpdateFactor

int32 GLumenRadiosityUpdateFactor = 64

◆ GLumenSceneLightingFeedback

int32 GLumenSceneLightingFeedback = 1