UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IndirectLightingCache.cpp File Reference
#include "CoreMinimal.h"
#include "Stats/Stats.h"
#include "HAL/IConsoleManager.h"
#include "Async/TaskGraphInterfaces.h"
#include "RHI.h"
#include "RenderResource.h"
#include "SceneTypes.h"
#include "RendererInterface.h"
#include "Math/GenericOctree.h"
#include "PrimitiveSceneInfo.h"
#include "DynamicPrimitiveDrawing.h"
#include "ScenePrivate.h"
#include "PrecomputedLightVolume.h"
#include "RenderCore.h"
#include "UnrealEngine.h"

Classes

class  FUpdateCachePrimitivesTask
 

Functions

bool IsIndirectLightingCacheAllowed (ERHIFeatureLevel::Type InFeatureLevel)
 
bool CanIndirectLightingCacheUseVolumeTexture (ERHIFeatureLevel::Type InFeatureLevel)
 

Variables

const float BoundSizeRoundUpBase = FMath::Sqrt(2.f)
 
const float LogEBoundSizeRoundUpBase = FMath::Loge(BoundSizeRoundUpBase)
 
int32 GCacheDrawLightingSamples = 0
 
int32 GCacheDrawDirectionalShadowing = 0
 
int32 GCacheDrawInterpolationPoints = 0
 
int32 GCacheUpdateEveryFrame = 0
 
float GSingleSampleTransitionSpeed = 800
 
int32 GCacheReduceSHRinging = 1
 
int32 GIndirectLightingCache = 1
 
int32 GCacheQueryNodeLevel = 3
 
int32 GCacheLimitQuerySize = 1
 
int32 GLightingCacheMovableObjectAllocationSize = 5
 
int32 GLightingCacheDimension = 64
 
FAutoConsoleTaskPriority CPrio_FUpdateCachePrimitivesTask (TEXT("TaskGraph.TaskPriorities.UpdateCachePrimitivesTask"), TEXT("Task and thread priority for FUpdateCachePrimitivesTask."), ENamedThreads::HighThreadPriority, ENamedThreads::NormalTaskPriority, ENamedThreads::HighTaskPriority)
 

Function Documentation

◆ CanIndirectLightingCacheUseVolumeTexture()

bool CanIndirectLightingCacheUseVolumeTexture ( ERHIFeatureLevel::Type  InFeatureLevel)

Returns true if the indirect lighting cache can use the volume texture atlas on this feature level.

◆ IsIndirectLightingCacheAllowed()

bool IsIndirectLightingCacheAllowed ( ERHIFeatureLevel::Type  InFeatureLevel)

Returns true if the indirect lighting cache can be used at all.

Variable Documentation

◆ BoundSizeRoundUpBase

const float BoundSizeRoundUpBase = FMath::Sqrt(2.f)

Primitive bounds size will be rounded up to the next value of Pow(BoundSizeRoundUpBase, N) and N is an integer. This provides some stability as bounds get larger and smaller, although by adding some waste.

◆ CPrio_FUpdateCachePrimitivesTask

FAutoConsoleTaskPriority CPrio_FUpdateCachePrimitivesTask(TEXT("TaskGraph.TaskPriorities.UpdateCachePrimitivesTask"), TEXT("Task and thread priority for FUpdateCachePrimitivesTask."), ENamedThreads::HighThreadPriority, ENamedThreads::NormalTaskPriority, ENamedThreads::HighTaskPriority) ( TEXT("TaskGraph.TaskPriorities.UpdateCachePrimitivesTask")  ,
TEXT("Task and thread priority for FUpdateCachePrimitivesTask." ,
ENamedThreads::HighThreadPriority  ,
ENamedThreads::NormalTaskPriority  ,
ENamedThreads::HighTaskPriority   
)

◆ GCacheDrawDirectionalShadowing

int32 GCacheDrawDirectionalShadowing = 0

◆ GCacheDrawInterpolationPoints

int32 GCacheDrawInterpolationPoints = 0

◆ GCacheDrawLightingSamples

int32 GCacheDrawLightingSamples = 0

◆ GCacheLimitQuerySize

int32 GCacheLimitQuerySize = 1

◆ GCacheQueryNodeLevel

int32 GCacheQueryNodeLevel = 3

◆ GCacheReduceSHRinging

int32 GCacheReduceSHRinging = 1

◆ GCacheUpdateEveryFrame

int32 GCacheUpdateEveryFrame = 0

◆ GIndirectLightingCache

int32 GIndirectLightingCache = 1

Whether to allow the indirect lighting cache to be applied to dynamic objects.

◆ GLightingCacheDimension

int32 GLightingCacheDimension = 64

◆ GLightingCacheMovableObjectAllocationSize

int32 GLightingCacheMovableObjectAllocationSize = 5

◆ GSingleSampleTransitionSpeed

float GSingleSampleTransitionSpeed = 800

◆ LogEBoundSizeRoundUpBase

const float LogEBoundSizeRoundUpBase = FMath::Loge(BoundSizeRoundUpBase)