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

Classes

struct  FMeshCardsAdd
 
struct  FMeshCardsRemove
 
struct  FInstanceRange
 
struct  FCardAllocationOutput
 
struct  FLumenSurfaceCacheCullPrimitivesTask
 
struct  FLumenSurfaceCacheCullInstancesTask
 
struct  FSurfaceCacheRemove
 
struct  FLumenSurfaceCacheUpdateMeshCardsTask
 
class  FResampleLightingHistoryToCardCaptureAtlasCS
 
class  FLumenCardResamplePS
 
class  FClearLumenCardCapturePS
 

Namespaces

namespace  LumenScene
 

Functions

FAutoConsoleVariableRef CVarLumenFastCameraMode (TEXT("r.LumenScene.FastCameraMode"), GLumenFastCameraMode, TEXT("Whether to update the Lumen Scene for fast camera movement - lower quality, faster updates so lighting can keep up with the camera."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneParallelUpdate (TEXT("r.LumenScene.ParallelUpdate"), GLumenSceneParallelUpdate, TEXT("Whether to run the Lumen Scene update in parallel."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenScenePrimitivePerTask (TEXT("r.LumenScene.PrimitivesPerTask"), GLumenScenePrimitivesPerTask, TEXT("How many primitives to process per single surface cache update task."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneMeshCardsPerTask (TEXT("r.LumenScene.MeshCardsPerTask"), GLumenSceneMeshCardsPerTask, TEXT("How many mesh cards to process per single surface cache update task."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheFreeze (TEXT("r.LumenScene.SurfaceCache.Freeze"), GLumenSurfaceCacheFreeze, TEXT("Freeze surface cache updates for debugging.\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheFreezeUpdateFrame (TEXT("r.LumenScene.SurfaceCache.FreezeUpdateFrame"), GLumenSurfaceCacheFreezeUpdateFrame, TEXT("Keep updating the same subset of surface cache for debugging and profiling.\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheReset (TEXT("r.LumenScene.SurfaceCache.Reset"), GLumenSceneSurfaceCacheReset, TEXT("Reset all atlases and captured cards.\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheResetEveryNthFrame (TEXT("r.LumenScene.SurfaceCache.ResetEveryNthFrame"), GLumenSceneSurfaceCacheResetEveryNthFrame, TEXT("Continuously reset all atlases and captured cards every N-th frame.\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneCardCapturesPerFrame (TEXT("r.LumenScene.SurfaceCache.CardCapturesPerFrame"), GLumenSceneCardCapturesPerFrame, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneCardCaptureFactor (TEXT("r.LumenScene.SurfaceCache.CardCaptureFactor"), GLumenSceneCardCaptureFactor, TEXT("Controls how many texels can be captured per frame. Texels = SurfaceCacheTexels / Factor."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneCardFixedDebugResolution (TEXT("r.LumenScene.SurfaceCache.CardFixedDebugResolution"), GLumenSceneCardFixedDebugResolution, TEXT("Lumen card resolution"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneCardMaxTexelDensity (TEXT("r.LumenScene.SurfaceCache.CardMaxTexelDensity"), GLumenSceneCardMaxTexelDensity, TEXT("Lumen card texels per world space distance"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneCardMaxResolution (TEXT("r.LumenScene.SurfaceCache.CardMaxResolution"), GLumenSceneCardMaxResolution, TEXT("Maximum card resolution in Lumen Scene"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
int32 GetCardMaxResolution ()
 
int32 GetMaxLumenSceneCardCapturesPerFrame ()
 
bool LumenScene::AllowSurfaceCacheCardSharing ()
 
int32 LumenScene::GetMaxMeshCardsToAddPerFrame ()
 
int32 LumenScene::GetMaxMeshCardsRemovesPerFrame ()
 
int32 GetMaxTileCapturesPerFrame ()
 
void AddLumenStreamingViewOrigins (const FSceneViewFamily &ViewFamily, TArray< FVector, TInlineAllocator< LUMEN_MAX_VIEWS > > &OutOrigins)
 
 DECLARE_GPU_STAT (LumenSceneUpdate)
 
 DECLARE_GPU_STAT (UpdateLumenSceneBuffers)
 
 IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT (FLumenCardPassUniformParameters, "LumenCardPass", SceneTextures)
 
bool UpdateStaticMeshes (const FLumenPrimitiveGroup &PrimitiveGroup, FLumenCardRenderer &LumenCardRenderer)
 
void ProcessSceneRemoveOpsReadbackData (FLumenSceneData &LumenSceneData, const FLumenSceneReadback::FRemoveOp *RemoveOpsData)
 
void ProcessSceneAddOpsReadbackData (FLumenSceneData &LumenSceneData, const FLumenSceneReadback::FAddOp *AddOpsData)
 
void UpdateSurfaceCachePrimitives (FLumenSceneData &LumenSceneData, const TArray< FVector, TInlineAllocator< 2 > > &LumenSceneCameraOrigins, bool bOrthographicCamera, float LumenSceneDetail, float MaxCardUpdateDistanceFromCamera, FLumenCardRenderer &LumenCardRenderer, bool bAddTranslucentToCache)
 
void UpdateSurfaceCacheMeshCards (FLumenSceneData &LumenSceneData, FLumenSceneData::FFeedbackData LumenFeedbackData, const TArray< FVector, TInlineAllocator< 2 > > &LumenSceneCameraOrigins, bool bOrthographicCamera, float LumenSceneDetail, float MaxCardUpdateDistanceFromCamera, TArray< FSurfaceCacheRequest, SceneRenderingAllocator > &SurfaceCacheRequests, const FViewFamilyInfo &ViewFamily)
 
void UpdateLumenScenePrimitives (FRHIGPUMask GPUMask, FScene *Scene)
 
void AllocateResampledCardCaptureAtlas (FRDGBuilder &GraphBuilder, FIntPoint CardCaptureAtlasSize, FResampledCardCaptureAtlas &CardCaptureAtlas)
 
 IMPLEMENT_GLOBAL_SHADER (FResampleLightingHistoryToCardCaptureAtlasCS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "ResampleLightingHistoryToCardCaptureAtlasCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FLumenCardResamplePS, "/Engine/Private/Lumen/SurfaceCache/LumenSurfaceCache.usf", "LumenCardResamplePS", SF_Pixel)
 
void ResampleLumenCards (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FScene *Scene, const FLumenSceneData &LumenSceneData, const FLumenSceneFrameTemporaries &FrameTemporaries, TConstArrayView< FCardPageRenderData > CardPagesToRender, bool bHasAnyCardCopy, FCardCaptureAtlas &OutCardCaptureAtlas, FResampledCardCaptureAtlas &OutCardCaptureLightingAtlas, FRDGBufferSRVRef &OutCardCaptureRectBufferSRV, int32 &OutNumPagesNeedDilation)
 
 IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT (FLumenCardScene, "LumenCardScene")
 
void UpdateLumenCardSceneUniformBuffer (FRDGBuilder &GraphBuilder, FScene *Scene, const FLumenSceneData &LumenSceneData, FLumenSceneFrameTemporaries &FrameTemporaries)
 
 DECLARE_GPU_STAT (UpdateCardSceneBuffer)
 
 IMPLEMENT_GLOBAL_SHADER (FClearLumenCardCapturePS, "/Engine/Private/Lumen/LumenSceneLighting.usf", "ClearLumenCardCapturePS", SF_Pixel)
 
void ClearLumenCardCapture (FRDGBuilder &GraphBuilder, const FGlobalShaderMap *GlobalShaderMap, const FCardCaptureAtlas &Atlas, FRDGBufferSRVRef RectCoordBufferSRV, uint32 NumRects)
 
bool UpdateGlobalLightingState (const FScene *Scene, const FViewInfo &View, FLumenSceneData &LumenSceneData)
 

Variables

int32 GLumenFastCameraMode = 0
 
int32 GLumenSceneParallelUpdate = 1
 
int32 GLumenScenePrimitivesPerTask = 128
 
int32 GLumenSceneMeshCardsPerTask = 128
 
int32 GLumenSurfaceCacheFreeze = 0
 
int32 GLumenSurfaceCacheFreezeUpdateFrame = 0
 
int32 GLumenSceneSurfaceCacheReset = 0
 
int32 GLumenSceneSurfaceCacheResetEveryNthFrame = 0
 
int32 GLumenSceneCardCapturesPerFrame = 300
 
int32 GLumenSceneCardCaptureFactor = 64
 
TAutoConsoleVariable< int32CVarLumenSceneSurfaceCacheRemovesPerFrame (TEXT("r.LumenScene.SurfaceCache.RemovesPerFrame"), 512, TEXT("How many mesh cards removes can be done per frame."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
TAutoConsoleVariable< floatCVarLumenSceneCardCaptureRefreshFraction (TEXT("r.LumenScene.SurfaceCache.CardCaptureRefreshFraction"), 0.125f, TEXT("0 disables card refresh."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
TAutoConsoleVariable< int32CVarLumenSceneCardCaptureEnableInvalidation (TEXT("r.LumenScene.SurfaceCache.CardCaptureEnableInvalidation"), 1, TEXT("Whether to enable manual card recapture through InvalidateSurfaceCacheForPrimitive().\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
float GLumenSceneCardFixedDebugResolution = -1
 
float GLumenSceneCardMaxTexelDensity = .2f
 
int32 GLumenSceneCardMaxResolution = 512
 
int32 GSurfaceCacheNumFramesToKeepUnusedPages = 256
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheNumFramesToKeepUnusedPages (TEXT("r.LumenScene.SurfaceCache.NumFramesToKeepUnusedPages"), GSurfaceCacheNumFramesToKeepUnusedPages, TEXT("Num frames to keep unused pages in surface cache."), ECVF_RenderThreadSafe)
 
int32 GLumenSceneForceEvictHiResPages = 0
 
FAutoConsoleVariableRef CVarLumenSceneForceEvictHiResPages (TEXT("r.LumenScene.SurfaceCache.ForceEvictHiResPages"), GLumenSceneForceEvictHiResPages, TEXT("Evict all optional hi-res surface cache pages."), ECVF_RenderThreadSafe)
 
int32 GLumenSceneRecaptureLumenSceneEveryFrame = 0
 
FAutoConsoleVariableRef CVarLumenGIRecaptureLumenSceneEveryFrame (TEXT("r.LumenScene.SurfaceCache.RecaptureEveryFrame"), GLumenSceneRecaptureLumenSceneEveryFrame, TEXT(""), ECVF_RenderThreadSafe)
 
int32 GLumenSceneSurfaceCacheLogUpdates = 0
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheLogUpdates (TEXT("r.LumenScene.SurfaceCache.LogUpdates"), GLumenSceneSurfaceCacheLogUpdates, TEXT("2 - will log mesh names."), ECVF_RenderThreadSafe)
 
int32 GLumenSceneSurfaceCacheResampleLighting = 1
 
FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheResampleLighting (TEXT("r.LumenScene.SurfaceCache.ResampleLighting"), GLumenSceneSurfaceCacheResampleLighting, TEXT("Whether to resample card lighting when cards are reallocated. This is needed for Radiosity temporal accumulation but can be disabled for debugging."), ECVF_RenderThreadSafe)
 
int32 GAllowLumenDiffuseIndirect
 
int32 GAllowLumenReflections
 

Function Documentation

◆ AddLumenStreamingViewOrigins()

void AddLumenStreamingViewOrigins ( const FSceneViewFamily ViewFamily,
TArray< FVector, TInlineAllocator< LUMEN_MAX_VIEWS > > &  OutOrigins 
)

◆ AllocateResampledCardCaptureAtlas()

void AllocateResampledCardCaptureAtlas ( FRDGBuilder GraphBuilder,
FIntPoint  CardCaptureAtlasSize,
FResampledCardCaptureAtlas CardCaptureAtlas 
)

◆ ClearLumenCardCapture()

void ClearLumenCardCapture ( FRDGBuilder GraphBuilder,
const FGlobalShaderMap GlobalShaderMap,
const FCardCaptureAtlas Atlas,
FRDGBufferSRVRef  RectCoordBufferSRV,
uint32  NumRects 
)

◆ CVarLumenFastCameraMode()

FAutoConsoleVariableRef CVarLumenFastCameraMode ( TEXT("r.LumenScene.FastCameraMode")  ,
GLumenFastCameraMode  ,
TEXT("Whether to update the Lumen Scene for fast camera movement - lower quality, faster updates so lighting can keep up with the camera." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardCaptureFactor()

FAutoConsoleVariableRef CVarLumenSceneCardCaptureFactor ( TEXT("r.LumenScene.SurfaceCache.CardCaptureFactor")  ,
GLumenSceneCardCaptureFactor  ,
TEXT("Controls how many texels can be captured per frame. Texels = SurfaceCacheTexels / Factor." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardCapturesPerFrame()

FAutoConsoleVariableRef CVarLumenSceneCardCapturesPerFrame ( TEXT("r.LumenScene.SurfaceCache.CardCapturesPerFrame")  ,
GLumenSceneCardCapturesPerFrame  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardFixedDebugResolution()

FAutoConsoleVariableRef CVarLumenSceneCardFixedDebugResolution ( TEXT("r.LumenScene.SurfaceCache.CardFixedDebugResolution")  ,
GLumenSceneCardFixedDebugResolution  ,
TEXT("Lumen card resolution" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardMaxResolution()

FAutoConsoleVariableRef CVarLumenSceneCardMaxResolution ( TEXT("r.LumenScene.SurfaceCache.CardMaxResolution")  ,
GLumenSceneCardMaxResolution  ,
TEXT("Maximum card resolution in Lumen Scene" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardMaxTexelDensity()

FAutoConsoleVariableRef CVarLumenSceneCardMaxTexelDensity ( TEXT("r.LumenScene.SurfaceCache.CardMaxTexelDensity")  ,
GLumenSceneCardMaxTexelDensity  ,
TEXT("Lumen card texels per world space distance" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneMeshCardsPerTask()

FAutoConsoleVariableRef CVarLumenSceneMeshCardsPerTask ( TEXT("r.LumenScene.MeshCardsPerTask")  ,
GLumenSceneMeshCardsPerTask  ,
TEXT("How many mesh cards to process per single surface cache update task." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneParallelUpdate()

FAutoConsoleVariableRef CVarLumenSceneParallelUpdate ( TEXT("r.LumenScene.ParallelUpdate")  ,
GLumenSceneParallelUpdate  ,
TEXT("Whether to run the Lumen Scene update in parallel." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenScenePrimitivePerTask()

FAutoConsoleVariableRef CVarLumenScenePrimitivePerTask ( TEXT("r.LumenScene.PrimitivesPerTask")  ,
GLumenScenePrimitivesPerTask  ,
TEXT("How many primitives to process per single surface cache update task." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneSurfaceCacheFreeze()

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheFreeze ( TEXT("r.LumenScene.SurfaceCache.Freeze")  ,
GLumenSurfaceCacheFreeze  ,
TEXT("Freeze surface cache updates for debugging.\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneSurfaceCacheFreezeUpdateFrame()

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheFreezeUpdateFrame ( TEXT("r.LumenScene.SurfaceCache.FreezeUpdateFrame")  ,
GLumenSurfaceCacheFreezeUpdateFrame  ,
TEXT("Keep updating the same subset of surface cache for debugging and profiling.\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneSurfaceCacheReset()

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheReset ( TEXT("r.LumenScene.SurfaceCache.Reset")  ,
GLumenSceneSurfaceCacheReset  ,
TEXT("Reset all atlases and captured cards.\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneSurfaceCacheResetEveryNthFrame()

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheResetEveryNthFrame ( TEXT("r.LumenScene.SurfaceCache.ResetEveryNthFrame")  ,
GLumenSceneSurfaceCacheResetEveryNthFrame  ,
TEXT("Continuously reset all atlases and captured cards every N-th frame.\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_GPU_STAT() [1/3]

DECLARE_GPU_STAT ( LumenSceneUpdate  )

◆ DECLARE_GPU_STAT() [2/3]

DECLARE_GPU_STAT ( UpdateCardSceneBuffer  )

◆ DECLARE_GPU_STAT() [3/3]

DECLARE_GPU_STAT ( UpdateLumenSceneBuffers  )

◆ GetCardMaxResolution()

int32 GetCardMaxResolution ( )

◆ GetMaxLumenSceneCardCapturesPerFrame()

int32 GetMaxLumenSceneCardCapturesPerFrame ( )

◆ GetMaxTileCapturesPerFrame()

int32 GetMaxTileCapturesPerFrame ( )

◆ IMPLEMENT_GLOBAL_SHADER() [1/3]

IMPLEMENT_GLOBAL_SHADER ( FClearLumenCardCapturePS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"ClearLumenCardCapturePS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/3]

IMPLEMENT_GLOBAL_SHADER ( FLumenCardResamplePS  ,
"/Engine/Private/Lumen/SurfaceCache/LumenSurfaceCache.usf"  ,
"LumenCardResamplePS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/3]

IMPLEMENT_GLOBAL_SHADER ( FResampleLightingHistoryToCardCaptureAtlasCS  ,
"/Engine/Private/Lumen/LumenSceneLighting.usf"  ,
"ResampleLightingHistoryToCardCaptureAtlasCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT()

IMPLEMENT_GLOBAL_SHADER_PARAMETER_STRUCT ( FLumenCardScene  ,
"LumenCardScene"   
)

◆ IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT()

IMPLEMENT_STATIC_UNIFORM_BUFFER_STRUCT ( FLumenCardPassUniformParameters  ,
"LumenCardPass"  ,
SceneTextures   
)

◆ ProcessSceneAddOpsReadbackData()

void ProcessSceneAddOpsReadbackData ( FLumenSceneData LumenSceneData,
const FLumenSceneReadback::FAddOp AddOpsData 
)

◆ ProcessSceneRemoveOpsReadbackData()

void ProcessSceneRemoveOpsReadbackData ( FLumenSceneData LumenSceneData,
const FLumenSceneReadback::FRemoveOp RemoveOpsData 
)

◆ ResampleLumenCards()

void ResampleLumenCards ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FScene Scene,
const FLumenSceneData LumenSceneData,
const FLumenSceneFrameTemporaries FrameTemporaries,
TConstArrayView< FCardPageRenderData CardPagesToRender,
bool  bHasAnyCardCopy,
FCardCaptureAtlas OutCardCaptureAtlas,
FResampledCardCaptureAtlas OutCardCaptureLightingAtlas,
FRDGBufferSRVRef OutCardCaptureRectBufferSRV,
int32 OutNumPagesNeedDilation 
)

◆ UpdateGlobalLightingState()

bool UpdateGlobalLightingState ( const FScene Scene,
const FViewInfo View,
FLumenSceneData LumenSceneData 
)

◆ UpdateLumenCardSceneUniformBuffer()

void UpdateLumenCardSceneUniformBuffer ( FRDGBuilder GraphBuilder,
FScene Scene,
const FLumenSceneData LumenSceneData,
FLumenSceneFrameTemporaries FrameTemporaries 
)

◆ UpdateLumenScenePrimitives()

void UpdateLumenScenePrimitives ( FRHIGPUMask  GPUMask,
FScene Scene 
)
extern

◆ UpdateStaticMeshes()

bool UpdateStaticMeshes ( const FLumenPrimitiveGroup PrimitiveGroup,
FLumenCardRenderer LumenCardRenderer 
)

Make sure that all mesh rendering data is prepared before we render this primitive group

Returns
Will return true it primitive group is ready to render or we need to wait until next frame

◆ UpdateSurfaceCacheMeshCards()

void UpdateSurfaceCacheMeshCards ( FLumenSceneData LumenSceneData,
FLumenSceneData::FFeedbackData  LumenFeedbackData,
const TArray< FVector, TInlineAllocator< 2 > > &  LumenSceneCameraOrigins,
bool  bOrthographicCamera,
float  LumenSceneDetail,
float  MaxCardUpdateDistanceFromCamera,
TArray< FSurfaceCacheRequest, SceneRenderingAllocator > &  SurfaceCacheRequests,
const FViewFamilyInfo ViewFamily 
)

◆ UpdateSurfaceCachePrimitives()

void UpdateSurfaceCachePrimitives ( FLumenSceneData LumenSceneData,
const TArray< FVector, TInlineAllocator< 2 > > &  LumenSceneCameraOrigins,
bool  bOrthographicCamera,
float  LumenSceneDetail,
float  MaxCardUpdateDistanceFromCamera,
FLumenCardRenderer LumenCardRenderer,
bool  bAddTranslucentToCache 
)

Variable Documentation

◆ CVarLumenGIRecaptureLumenSceneEveryFrame

FAutoConsoleVariableRef CVarLumenGIRecaptureLumenSceneEveryFrame(TEXT("r.LumenScene.SurfaceCache.RecaptureEveryFrame"), GLumenSceneRecaptureLumenSceneEveryFrame, TEXT(""), ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.RecaptureEveryFrame")  ,
GLumenSceneRecaptureLumenSceneEveryFrame  ,
TEXT("")  ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenSceneCardCaptureEnableInvalidation

TAutoConsoleVariable< int32 > CVarLumenSceneCardCaptureEnableInvalidation(TEXT("r.LumenScene.SurfaceCache.CardCaptureEnableInvalidation"), 1, TEXT("Whether to enable manual card recapture through InvalidateSurfaceCacheForPrimitive().\n"), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.CardCaptureEnableInvalidation")  ,
,
TEXT("Whether to enable manual card recapture through InvalidateSurfaceCacheForPrimitive().\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneCardCaptureRefreshFraction

TAutoConsoleVariable< float > CVarLumenSceneCardCaptureRefreshFraction(TEXT("r.LumenScene.SurfaceCache.CardCaptureRefreshFraction"), 0.125f, TEXT("0 disables card refresh."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.CardCaptureRefreshFraction")  ,
0.  125f,
TEXT("0 disables card refresh." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneForceEvictHiResPages

FAutoConsoleVariableRef CVarLumenSceneForceEvictHiResPages(TEXT("r.LumenScene.SurfaceCache.ForceEvictHiResPages"), GLumenSceneForceEvictHiResPages, TEXT("Evict all optional hi-res surface cache pages."), ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.ForceEvictHiResPages")  ,
GLumenSceneForceEvictHiResPages  ,
TEXT("Evict all optional hi-res surface cache pages." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenSceneSurfaceCacheLogUpdates

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheLogUpdates(TEXT("r.LumenScene.SurfaceCache.LogUpdates"), GLumenSceneSurfaceCacheLogUpdates, TEXT("2 - will log mesh names."), ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.LogUpdates")  ,
GLumenSceneSurfaceCacheLogUpdates  ,
TEXT("2 - will log mesh names." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenSceneSurfaceCacheNumFramesToKeepUnusedPages

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheNumFramesToKeepUnusedPages(TEXT("r.LumenScene.SurfaceCache.NumFramesToKeepUnusedPages"), GSurfaceCacheNumFramesToKeepUnusedPages, TEXT("Num frames to keep unused pages in surface cache."), ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.NumFramesToKeepUnusedPages")  ,
GSurfaceCacheNumFramesToKeepUnusedPages  ,
TEXT("Num frames to keep unused pages in surface cache." ,
ECVF_RenderThreadSafe   
)

◆ CVarLumenSceneSurfaceCacheRemovesPerFrame

TAutoConsoleVariable< int32 > CVarLumenSceneSurfaceCacheRemovesPerFrame(TEXT("r.LumenScene.SurfaceCache.RemovesPerFrame"), 512, TEXT("How many mesh cards removes can be done per frame."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.RemovesPerFrame")  ,
512  ,
TEXT("How many mesh cards removes can be done per frame." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneSurfaceCacheResampleLighting

FAutoConsoleVariableRef CVarLumenSceneSurfaceCacheResampleLighting(TEXT("r.LumenScene.SurfaceCache.ResampleLighting"), GLumenSceneSurfaceCacheResampleLighting, TEXT("Whether to resample card lighting when cards are reallocated. This is needed for Radiosity temporal accumulation but can be disabled for debugging."), ECVF_RenderThreadSafe) ( TEXT("r.LumenScene.SurfaceCache.ResampleLighting")  ,
GLumenSceneSurfaceCacheResampleLighting  ,
TEXT("Whether to resample card lighting when cards are reallocated. This is needed for Radiosity temporal accumulation but can be disabled for debugging." ,
ECVF_RenderThreadSafe   
)

◆ GAllowLumenDiffuseIndirect

int32 GAllowLumenDiffuseIndirect
extern

◆ GAllowLumenReflections

int32 GAllowLumenReflections
extern

◆ GLumenFastCameraMode

int32 GLumenFastCameraMode = 0

◆ GLumenSceneCardCaptureFactor

int32 GLumenSceneCardCaptureFactor = 64

◆ GLumenSceneCardCapturesPerFrame

int32 GLumenSceneCardCapturesPerFrame = 300

◆ GLumenSceneCardFixedDebugResolution

float GLumenSceneCardFixedDebugResolution = -1

◆ GLumenSceneCardMaxResolution

int32 GLumenSceneCardMaxResolution = 512

◆ GLumenSceneCardMaxTexelDensity

float GLumenSceneCardMaxTexelDensity = .2f

◆ GLumenSceneForceEvictHiResPages

int32 GLumenSceneForceEvictHiResPages = 0

◆ GLumenSceneMeshCardsPerTask

int32 GLumenSceneMeshCardsPerTask = 128

◆ GLumenSceneParallelUpdate

int32 GLumenSceneParallelUpdate = 1

◆ GLumenScenePrimitivesPerTask

int32 GLumenScenePrimitivesPerTask = 128

◆ GLumenSceneRecaptureLumenSceneEveryFrame

int32 GLumenSceneRecaptureLumenSceneEveryFrame = 0

◆ GLumenSceneSurfaceCacheLogUpdates

int32 GLumenSceneSurfaceCacheLogUpdates = 0

◆ GLumenSceneSurfaceCacheResampleLighting

int32 GLumenSceneSurfaceCacheResampleLighting = 1

◆ GLumenSceneSurfaceCacheReset

int32 GLumenSceneSurfaceCacheReset = 0

◆ GLumenSceneSurfaceCacheResetEveryNthFrame

int32 GLumenSceneSurfaceCacheResetEveryNthFrame = 0

◆ GLumenSurfaceCacheFreeze

int32 GLumenSurfaceCacheFreeze = 0

◆ GLumenSurfaceCacheFreezeUpdateFrame

int32 GLumenSurfaceCacheFreezeUpdateFrame = 0

◆ GSurfaceCacheNumFramesToKeepUnusedPages

int32 GSurfaceCacheNumFramesToKeepUnusedPages = 256