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

Classes

class  FCullObjectsToClipmapCS
 
class  FClearIndirectArgBufferCS
 
class  FBuildGridTilesCS
 
class  FCullObjectsToGridCS
 
class  FCompositeObjectsIntoObjectGridPagesCS
 
class  FCompositeObjectsIntoPagesCS
 
class  FInitPageFreeListCS
 
class  FAllocatePagesCS
 
class  FPageFreeListReturnIndirectArgBufferCS
 
class  FPageFreeListReturnCS
 
class  FPropagateMipDistanceCS
 
class  FGlobalDistanceFieldAccumulateUpdatedPagesCS
 
class  FGlobalDistanceFieldPageStatsCS
 
class  FGlobalDistanceFieldDebugCS
 
struct  FGlobalDistanceFieldInfoRDG
 
struct  FGlobalDistanceFieldPackedClipmap
 

Namespaces

namespace  GlobalDistanceField
 

Functions

 DECLARE_GPU_STAT (GlobalDistanceFieldUpdate)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceField (TEXT("r.AOGlobalDistanceField"), GAOGlobalDistanceField, TEXT("The global distance field is created by compositing object distance fields into clipmaps as the viewer moves through the level."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldOccupancyRatio (TEXT("r.AOGlobalDistanceField.OccupancyRatio"), GGlobalDistanceFieldOccupancyRatio, TEXT("Expected sparse global distacne field occupancy for the page atlas allocation. 0.25 means 25% - filled and 75% - empty."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldNumClipmaps (TEXT("r.AOGlobalDistanceField.NumClipmaps"), GAOGlobalDistanceFieldNumClipmaps, TEXT("Num clipmaps in the global distance field. Setting this to anything other than 4 is currently only supported by Lumen."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldHeightfield (TEXT("r.AOGlobalDistanceField.Heightfield"), GAOGlobalDistanceFieldHeightfield, TEXT("Whether to voxelize Heightfield into the global distance field.\n"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOUpdateGlobalDistanceField (TEXT("r.AOUpdateGlobalDistanceField"), GAOUpdateGlobalDistanceField, TEXT("Whether to update the global distance field, useful for debugging."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldCacheMostlyStaticSeparately (TEXT("r.AOGlobalDistanceFieldCacheMostlyStaticSeparately"), GAOGlobalDistanceFieldCacheMostlyStaticSeparately, TEXT("Whether to cache mostly static primitives separately from movable primitives, which reduces global DF update cost when a movable primitive is modified. Adds another 12Mb of volume textures."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldPartialUpdates (TEXT("r.AOGlobalDistanceFieldPartialUpdates"), GAOGlobalDistanceFieldPartialUpdates, TEXT("Whether to allow partial updates of the global distance field. When profiling it's useful to disable this and get the worst case composition time that happens on camera cuts."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldStaggeredUpdatess (TEXT("r.AOGlobalDistanceFieldStaggeredUpdates"), GAOGlobalDistanceFieldStaggeredUpdates, TEXT("Whether to allow the larger clipmaps to be updated less frequently."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldClipmapUpdatesPerFrame (TEXT("r.AOGlobalDistanceFieldClipmapUpdatesPerFrame"), GAOGlobalDistanceFieldClipmapUpdatesPerFrame, TEXT("How many clipmaps to update each frame. With values less than 2, the first clipmap is only updated every other frame, which can cause incorrect self occlusion during movement."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceFullUpdate (TEXT("r.AOGlobalDistanceFieldForceFullUpdate"), GAOGlobalDistanceFieldForceFullUpdate, TEXT("Whether to force full global distance field update every frame."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceUpdateOnce (TEXT("r.AOGlobalDistanceFieldForceUpdateOnce"), GAOGlobalDistanceFieldForceUpdateOnce, TEXT("Whether to force full global distance field once."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDFClipmapDistanceExponent (TEXT("r.AOGlobalDFClipmapDistanceExponent"), GAOGlobalDFClipmapDistanceExponent, TEXT("Exponent used to derive each clipmap's size, together with r.AOInnerGlobalDFClipmapDistance."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDFResolution (TEXT("r.AOGlobalDFResolution"), GAOGlobalDFResolution, TEXT("Resolution of the global distance field. Higher values increase fidelity but also increase memory and composition cost."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDFStartDistance (TEXT("r.AOGlobalDFStartDistance"), GAOGlobalDFStartDistance, TEXT("This has to be large enough to hide the low res nature of the global distance field, but smaller values result in faster cone tracing."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldRepresentHeightfields (TEXT("r.AOGlobalDistanceFieldRepresentHeightfields"), GAOGlobalDistanceFieldRepresentHeightfields, TEXT("Whether to put landscape in the global distance field. Changing this won't propagate until the global distance field gets recached (fly away and back)."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarGlobalDistanceFieldHeightFieldThicknessScale (TEXT("r.GlobalDistanceFieldHeightFieldThicknessScale"), GGlobalDistanceFieldHeightFieldThicknessScale, TEXT("Thickness of the height field when it's entered into the global distance field, measured in distance field voxels. Defaults to 4 which means 4x the voxel size as thickness."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels (TEXT("r.AOGlobalDistanceField.MinMeshSDFRadiusInVoxels"), GAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels, TEXT("Meshes with a smaller radius than this number of voxels are culled from the global SDF."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay (TEXT("r.AOGlobalDistanceField.CameraPositionVelocityOffsetDecay"), GAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay, TEXT(""), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMipFactor (TEXT("r.AOGlobalDistanceField.MipFactor"), GAOGlobalDistanceFieldMipFactor, TEXT("Resolution divider for the mip map of a distance field clipmap."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming (TEXT("r.AOGlobalDistanceField.RecacheClipmapsWithPendingStreaming"), GAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming, TEXT("Whether to readback clipmaps cached with incomplete Mesh SDFs due to streaming and recache them on subsequent frames. Fixes innaccurate Global SDF around the camera after teleporting or loading a new level."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceRecacheForStreaming (TEXT("r.AOGlobalDistanceField.ForceRecacheForStreaming"), GAOGlobalDistanceFieldForceRecacheForStreaming, TEXT("Useful for debugging or profiling full clipmap updates that happen when a clipmap is detected to have pending streaming."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneGlobalSDFCoveredExpandSurfaceScale (TEXT("r.LumenScene.GlobalSDF.CoveredExpandSurfaceScale"), GLumenSceneGlobalSDFCoveredExpandSurfaceScale, TEXT("Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, erring on the side of over-occlusion."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenScenGlobalSDFNotCoveredExpandSurfaceScale (TEXT("r.LumenScene.GlobalSDF.NotCoveredExpandSurfaceScale"), GLumenSceneGlobalSDFNotCoveredExpandSurfaceScale, TEXT("Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, for regions of space that only contain Two Sided Mesh SDFs."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneGlobalSDFSimpleCoverageBasedExpand (TEXT("r.LumenScene.GlobalSDF.SimpleCoverageBasedExpand"), GLumenSceneGlobalSDFSimpleCoverageBasedExpand, TEXT("Whether to use simple coverage based surface expansion. Less accurate but does not sample the coverage texture."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenScenGlobalSDFNotCoveredMinStepScale (TEXT("r.LumenScene.GlobalSDF.NotCoveredMinStepScale"), GLumenSceneGlobalSDFNotCoveredMinStepScale, TEXT("Scales the min step size to improve performance, for regions of space that only contain Two Sided Mesh SDFs."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneGlobalSDFDitheredTransparencyStepThreshold (TEXT("r.LumenScene.GlobalSDF.DitheredTransparencyStepThreshold"), GLumenSceneGlobalSDFDitheredTransparencyStepThreshold, TEXT("Per-step stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarLumenSceneGlobalSDFDitheredTransparencyTraceThreshold (TEXT("r.LumenScene.GlobalSDF.DitheredTransparencyTraceThreshold"), GLumenSceneGlobalSDFDitheredTransparencyTraceThreshold, TEXT("Per-trace stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs. Anything less than 1 causes leaking."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugForceMovementUpdate (TEXT("r.GlobalDistanceField.Debug.ForceMovementUpdate"), GGlobalDistanceFieldDebugForceMovementUpdate, TEXT("Whether to force N texel border on X, Y and Z update each frame."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugLogModifiedPrimitives (TEXT("r.GlobalDistanceField.Debug.LogModifiedPrimitives"), GGlobalDistanceFieldDebugLogModifiedPrimitives, TEXT("Pass 2 to log only non movable object updates."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugDrawModifiedPrimitives (TEXT("r.GlobalDistanceField.Debug.DrawModifiedPrimitives"), GGlobalDistanceFieldDebugDrawModifiedPrimitives, TEXT("This can be useful for tracking down why updating the global distance field is always costing a lot, since it should be mostly cached."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
bool UseGlobalDistanceField ()
 
bool UseGlobalDistanceField (const FDistanceFieldAOParameters &Parameters)
 
FGlobalDistanceFieldParameters2 SetupGlobalDistanceFieldParameters (const FGlobalDistanceFieldParameterData &ParameterData)
 
const TCHARGetRecaptureReasonString (EGlobalSDFFullRecaptureReason Reason)
 
float GetMinMeshSDFRadius (float VoxelWorldSize)
 
int32 GetNumClipmapUpdatesPerFrame ()
 
void RequestGlobalDistanceFieldReadback (FGlobalDistanceFieldReadback *Readback)
 
void RequestGlobalDistanceFieldReadback_GameThread (FGlobalDistanceFieldReadback *Readback)
 
FVector ClampCameraVelocityOffset (FVector CameraVelocityOffset, int32 ClipmapIndex, const FScene *Scene, bool bLumenEnabled)
 
FVector GetGlobalDistanceFieldViewOrigin (const FViewInfo &View, int32 ClipmapIndex, bool bLumenEnabled)
 
void ReadbackDistanceFieldClipmap (FRHICommandListImmediate &RHICmdList, FGlobalDistanceFieldInfo &GlobalDistanceFieldInfo)
 
 IMPLEMENT_GLOBAL_SHADER (FCullObjectsToClipmapCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "CullObjectsToClipmapCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FClearIndirectArgBufferCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "ClearIndirectArgBufferCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FBuildGridTilesCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "BuildGridTilesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCullObjectsToGridCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "CullObjectsToGridCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCompositeObjectsIntoObjectGridPagesCS, "/Engine/Private/DistanceField/GlobalDistanceFieldCompositeObjects.usf", "CompositeObjectsIntoObjectGridPagesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FCompositeObjectsIntoPagesCS, "/Engine/Private/DistanceField/GlobalDistanceFieldCompositeObjects.usf", "CompositeObjectsIntoPagesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FInitPageFreeListCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "InitPageFreeListCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FAllocatePagesCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "AllocatePagesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FPageFreeListReturnIndirectArgBufferCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "PageFreeListReturnIndirectArgBufferCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FPageFreeListReturnCS, "/Engine/Private/DistanceField/GlobalDistanceField.usf", "PageFreeListReturnCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FPropagateMipDistanceCS, "/Engine/Private/DistanceField/GlobalDistanceFieldMip.usf", "PropagateMipDistanceCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FGlobalDistanceFieldAccumulateUpdatedPagesCS, "/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf", "GlobalDistanceFieldAccumulateUpdatedPagesCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FGlobalDistanceFieldPageStatsCS, "/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf", "GlobalDistanceFieldPageStatsCS", SF_Compute)
 
 IMPLEMENT_GLOBAL_SHADER (FGlobalDistanceFieldDebugCS, "/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf", "GlobalDistanceFieldDebugCS", SF_Compute)
 
void UpdateGlobalDistanceFieldCache (FRDGBuilder &GraphBuilder, FViewInfo &View, FScene *Scene, int32 CacheType, TArray< FGlobalDistanceFieldClipmap > &Clipmaps, FRDGBufferRef PageStatsBuffer, FRDGBufferRef PageObjectGridBuffer, FRDGTextureRef PageTableLayerTexture, FRDGTextureRef ParentPageTableLayerTexture, FRDGTextureRef PageTableCombinedTexture, FRDGTextureRef PageAtlasTexture, FRDGTextureRef CoverageAtlasTexture, FRDGTextureRef MipTexture, FRDGBufferRef PageFreeListAllocatorBuffer, FRDGBufferRef PageFreeListBuffer, bool bLumenEnabled)
 
void UpdateGlobalDistanceFieldVolume (FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccessQueue, FViewInfo &View, FScene *Scene, float MaxOcclusionDistance, bool bLumenEnabled, FGlobalDistanceFieldInfo &GlobalDistanceFieldInfo)
 

Variables

int32 GDistanceFieldOffsetDataStructure
 
int32 GAOGlobalDistanceField = 1
 
float GGlobalDistanceFieldOccupancyRatio = 0.3f
 
int32 GAOGlobalDistanceFieldNumClipmaps = 4
 
int32 GAOGlobalDistanceFieldHeightfield = 1
 
int32 GAOUpdateGlobalDistanceField = 1
 
int32 GAOGlobalDistanceFieldCacheMostlyStaticSeparately = 1
 
int32 GAOGlobalDistanceFieldPartialUpdates = 1
 
int32 GAOGlobalDistanceFieldStaggeredUpdates = 1
 
int32 GAOGlobalDistanceFieldClipmapUpdatesPerFrame = 2
 
int32 GAOGlobalDistanceFieldForceFullUpdate = 0
 
int32 GAOGlobalDistanceFieldForceUpdateOnce = 0
 
float GAOGlobalDFClipmapDistanceExponent = 2
 
int32 GAOGlobalDFResolution = 128
 
float GAOGlobalDFStartDistance = 100
 
int32 GAOGlobalDistanceFieldRepresentHeightfields = 1
 
float GGlobalDistanceFieldHeightFieldThicknessScale = 4.0f
 
float GAOGlobalDistanceFieldMinMeshSDFRadius = 20
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMinMeshSDFRadius (TEXT("r.AOGlobalDistanceField.MinMeshSDFRadius"), GAOGlobalDistanceFieldMinMeshSDFRadius, TEXT("Meshes with a smaller world space radius than this are culled from the global SDF."), ECVF_RenderThreadSafe)
 
float GAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels = .5f
 
float GAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay = .7f
 
int32 GAOGlobalDistanceFieldFastCameraMode = 0
 
FAutoConsoleVariableRef CVarAOGlobalDistanceFieldFastCameraMode (TEXT("r.AOGlobalDistanceField.FastCameraMode"), GAOGlobalDistanceFieldFastCameraMode, TEXT("Whether to update the Global SDF for fast camera movement - lower quality, faster updates so lighting can keep up with the camera."), ECVF_RenderThreadSafe)
 
int32 GAOGlobalDistanceFieldMipFactor = 4
 
int32 GAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming = 1
 
int32 GAOGlobalDistanceFieldForceRecacheForStreaming = 0
 
float GLumenSceneGlobalSDFCoveredExpandSurfaceScale = 1.0f
 
float GLumenSceneGlobalSDFNotCoveredExpandSurfaceScale = .6f
 
int32 GLumenSceneGlobalSDFSimpleCoverageBasedExpand = 0
 
float GLumenSceneGlobalSDFNotCoveredMinStepScale = 4.0f
 
float GLumenSceneGlobalSDFDitheredTransparencyStepThreshold = .5f
 
float GLumenSceneGlobalSDFDitheredTransparencyTraceThreshold = .9f
 
TAutoConsoleVariable< boolCVarGlobalDistanceFieldDebugShowStats (TEXT("r.GlobalDistanceField.Debug.ShowStats"), 0, TEXT("Debug drawing for the Global Distance Field."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
int32 GGlobalDistanceFieldDebugForceMovementUpdate = 0
 
int32 GGlobalDistanceFieldDebugLogModifiedPrimitives = 0
 
int32 GGlobalDistanceFieldDebugDrawModifiedPrimitives = 0
 
const int32 GlobalDistanceField::CullGridFactor = 4
 
const int32 GlobalDistanceField::PageAtlasSizeInPagesX = 128
 
const int32 GlobalDistanceField::PageAtlasSizeInPagesY = 128
 
const int32 GlobalDistanceField::ObjectGridPageBufferStride = 4 * sizeof(uint32)
 
const int32 GlobalDistanceField::ObjectGridPageBufferNumElementsPerPage = 4 * 4 * 4
 
const int32 GGlobalDistanceFieldPageResolutionInAtlas = 8
 
const int32 GGlobalDistanceFieldCoveragePageResolutionInAtlas = 4
 
const int32 GGlobalDistanceFieldPageResolution = GGlobalDistanceFieldPageResolutionInAtlas - 1
 
const int32 GGlobalDistanceFieldInfluenceRangeInVoxels = 4
 

Function Documentation

◆ ClampCameraVelocityOffset()

FVector ClampCameraVelocityOffset ( FVector  CameraVelocityOffset,
int32  ClipmapIndex,
const FScene Scene,
bool  bLumenEnabled 
)

◆ CVarAOGlobalDFClipmapDistanceExponent()

FAutoConsoleVariableRef CVarAOGlobalDFClipmapDistanceExponent ( TEXT("r.AOGlobalDFClipmapDistanceExponent")  ,
GAOGlobalDFClipmapDistanceExponent  ,
TEXT("Exponent used to derive each clipmap's size, together with r.AOInnerGlobalDFClipmapDistance." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDFResolution()

FAutoConsoleVariableRef CVarAOGlobalDFResolution ( TEXT("r.AOGlobalDFResolution")  ,
GAOGlobalDFResolution  ,
TEXT("Resolution of the global distance field. Higher values increase fidelity but also increase memory and composition cost." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDFStartDistance()

FAutoConsoleVariableRef CVarAOGlobalDFStartDistance ( TEXT("r.AOGlobalDFStartDistance")  ,
GAOGlobalDFStartDistance  ,
TEXT("This has to be large enough to hide the low res nature of the global distance field, but smaller values result in faster cone tracing." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceField()

FAutoConsoleVariableRef CVarAOGlobalDistanceField ( TEXT("r.AOGlobalDistanceField")  ,
GAOGlobalDistanceField  ,
TEXT("The global distance field is created by compositing object distance fields into clipmaps as the viewer moves through the level." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldCacheMostlyStaticSeparately()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldCacheMostlyStaticSeparately ( TEXT("r.AOGlobalDistanceFieldCacheMostlyStaticSeparately")  ,
GAOGlobalDistanceFieldCacheMostlyStaticSeparately  ,
TEXT("Whether to cache mostly static primitives separately from movable primitives, which reduces global DF update cost when a movable primitive is modified. Adds another 12Mb of volume textures." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay ( TEXT("r.AOGlobalDistanceField.CameraPositionVelocityOffsetDecay")  ,
GAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay  ,
TEXT("")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldClipmapUpdatesPerFrame()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldClipmapUpdatesPerFrame ( TEXT("r.AOGlobalDistanceFieldClipmapUpdatesPerFrame")  ,
GAOGlobalDistanceFieldClipmapUpdatesPerFrame  ,
TEXT("How many clipmaps to update each frame. With values less than 2, the first clipmap is only updated every other frame, which can cause incorrect self occlusion during movement." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldForceFullUpdate()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceFullUpdate ( TEXT("r.AOGlobalDistanceFieldForceFullUpdate")  ,
GAOGlobalDistanceFieldForceFullUpdate  ,
TEXT("Whether to force full global distance field update every frame." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldForceRecacheForStreaming()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceRecacheForStreaming ( TEXT("r.AOGlobalDistanceField.ForceRecacheForStreaming")  ,
GAOGlobalDistanceFieldForceRecacheForStreaming  ,
TEXT("Useful for debugging or profiling full clipmap updates that happen when a clipmap is detected to have pending streaming." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldForceUpdateOnce()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldForceUpdateOnce ( TEXT("r.AOGlobalDistanceFieldForceUpdateOnce")  ,
GAOGlobalDistanceFieldForceUpdateOnce  ,
TEXT("Whether to force full global distance field once." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldHeightfield()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldHeightfield ( TEXT("r.AOGlobalDistanceField.Heightfield")  ,
GAOGlobalDistanceFieldHeightfield  ,
TEXT("Whether to voxelize Heightfield into the global distance field.\n" ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels ( TEXT("r.AOGlobalDistanceField.MinMeshSDFRadiusInVoxels")  ,
GAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels  ,
TEXT("Meshes with a smaller radius than this number of voxels are culled from the global SDF." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldMipFactor()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMipFactor ( TEXT("r.AOGlobalDistanceField.MipFactor")  ,
GAOGlobalDistanceFieldMipFactor  ,
TEXT("Resolution divider for the mip map of a distance field clipmap." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldNumClipmaps()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldNumClipmaps ( TEXT("r.AOGlobalDistanceField.NumClipmaps")  ,
GAOGlobalDistanceFieldNumClipmaps  ,
TEXT("Num clipmaps in the global distance field. Setting this to anything other than 4 is currently only supported by Lumen." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldOccupancyRatio()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldOccupancyRatio ( TEXT("r.AOGlobalDistanceField.OccupancyRatio")  ,
GGlobalDistanceFieldOccupancyRatio  ,
TEXT("Expected sparse global distacne field occupancy for the page atlas allocation. 0.25 means 25% - filled and 75% - empty." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldPartialUpdates()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldPartialUpdates ( TEXT("r.AOGlobalDistanceFieldPartialUpdates")  ,
GAOGlobalDistanceFieldPartialUpdates  ,
TEXT("Whether to allow partial updates of the global distance field. When profiling it's useful to disable this and get the worst case composition time that happens on camera cuts." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming ( TEXT("r.AOGlobalDistanceField.RecacheClipmapsWithPendingStreaming")  ,
GAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming  ,
TEXT("Whether to readback clipmaps cached with incomplete Mesh SDFs due to streaming and recache them on subsequent frames. Fixes innaccurate Global SDF around the camera after teleporting or loading a new level." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldRepresentHeightfields()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldRepresentHeightfields ( TEXT("r.AOGlobalDistanceFieldRepresentHeightfields")  ,
GAOGlobalDistanceFieldRepresentHeightfields  ,
TEXT("Whether to put landscape in the global distance field. Changing this won't propagate until the global distance field gets recached (fly away and back).")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOGlobalDistanceFieldStaggeredUpdatess()

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldStaggeredUpdatess ( TEXT("r.AOGlobalDistanceFieldStaggeredUpdates")  ,
GAOGlobalDistanceFieldStaggeredUpdates  ,
TEXT("Whether to allow the larger clipmaps to be updated less frequently." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarAOUpdateGlobalDistanceField()

FAutoConsoleVariableRef CVarAOUpdateGlobalDistanceField ( TEXT("r.AOUpdateGlobalDistanceField")  ,
GAOUpdateGlobalDistanceField  ,
TEXT("Whether to update the global distance field, useful for debugging." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarGlobalDistanceFieldDebugDrawModifiedPrimitives()

FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugDrawModifiedPrimitives ( TEXT("r.GlobalDistanceField.Debug.DrawModifiedPrimitives")  ,
GGlobalDistanceFieldDebugDrawModifiedPrimitives  ,
TEXT("This can be useful for tracking down why updating the global distance field is always costing a lot, since it should be mostly cached." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarGlobalDistanceFieldDebugForceMovementUpdate()

FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugForceMovementUpdate ( TEXT("r.GlobalDistanceField.Debug.ForceMovementUpdate")  ,
GGlobalDistanceFieldDebugForceMovementUpdate  ,
TEXT("Whether to force N texel border on X, Y and Z update each frame." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarGlobalDistanceFieldDebugLogModifiedPrimitives()

FAutoConsoleVariableRef CVarGlobalDistanceFieldDebugLogModifiedPrimitives ( TEXT("r.GlobalDistanceField.Debug.LogModifiedPrimitives")  ,
GGlobalDistanceFieldDebugLogModifiedPrimitives  ,
TEXT("Pass 2 to log only non movable object updates." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarGlobalDistanceFieldHeightFieldThicknessScale()

FAutoConsoleVariableRef CVarGlobalDistanceFieldHeightFieldThicknessScale ( TEXT("r.GlobalDistanceFieldHeightFieldThicknessScale")  ,
GGlobalDistanceFieldHeightFieldThicknessScale  ,
TEXT("Thickness of the height field when it's entered into the global distance field, measured in distance field voxels. Defaults to 4 which means 4x the voxel size as thickness." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneGlobalSDFCoveredExpandSurfaceScale()

FAutoConsoleVariableRef CVarLumenSceneGlobalSDFCoveredExpandSurfaceScale ( TEXT("r.LumenScene.GlobalSDF.CoveredExpandSurfaceScale")  ,
GLumenSceneGlobalSDFCoveredExpandSurfaceScale  ,
TEXT("Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, erring on the side of over-occlusion." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneGlobalSDFDitheredTransparencyStepThreshold()

FAutoConsoleVariableRef CVarLumenSceneGlobalSDFDitheredTransparencyStepThreshold ( TEXT("r.LumenScene.GlobalSDF.DitheredTransparencyStepThreshold")  ,
GLumenSceneGlobalSDFDitheredTransparencyStepThreshold  ,
TEXT("Per-step stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneGlobalSDFDitheredTransparencyTraceThreshold()

FAutoConsoleVariableRef CVarLumenSceneGlobalSDFDitheredTransparencyTraceThreshold ( TEXT("r.LumenScene.GlobalSDF.DitheredTransparencyTraceThreshold")  ,
GLumenSceneGlobalSDFDitheredTransparencyTraceThreshold  ,
TEXT("Per-trace stochastic semi-transparency threshold, for tracing users that have dithered transparency enabled, for regions of space that only contain Two Sided Mesh SDFs. Anything less than 1 causes leaking." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenSceneGlobalSDFSimpleCoverageBasedExpand()

FAutoConsoleVariableRef CVarLumenSceneGlobalSDFSimpleCoverageBasedExpand ( TEXT("r.LumenScene.GlobalSDF.SimpleCoverageBasedExpand")  ,
GLumenSceneGlobalSDFSimpleCoverageBasedExpand  ,
TEXT("Whether to use simple coverage based surface expansion. Less accurate but does not sample the coverage texture." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenScenGlobalSDFNotCoveredExpandSurfaceScale()

FAutoConsoleVariableRef CVarLumenScenGlobalSDFNotCoveredExpandSurfaceScale ( TEXT("r.LumenScene.GlobalSDF.NotCoveredExpandSurfaceScale")  ,
GLumenSceneGlobalSDFNotCoveredExpandSurfaceScale  ,
TEXT("Scales the half voxel SDF expand used by the Global SDF to reconstruct surfaces that are thinner than the distance between two voxels, for regions of space that only contain Two Sided Mesh SDFs." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ CVarLumenScenGlobalSDFNotCoveredMinStepScale()

FAutoConsoleVariableRef CVarLumenScenGlobalSDFNotCoveredMinStepScale ( TEXT("r.LumenScene.GlobalSDF.NotCoveredMinStepScale")  ,
GLumenSceneGlobalSDFNotCoveredMinStepScale  ,
TEXT("Scales the min step size to improve performance, for regions of space that only contain Two Sided Mesh SDFs." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_GPU_STAT()

DECLARE_GPU_STAT ( GlobalDistanceFieldUpdate  )

◆ GetGlobalDistanceFieldViewOrigin()

FVector GetGlobalDistanceFieldViewOrigin ( const FViewInfo View,
int32  ClipmapIndex,
bool  bLumenEnabled 
)

◆ GetMinMeshSDFRadius()

float GetMinMeshSDFRadius ( float  VoxelWorldSize)

◆ GetNumClipmapUpdatesPerFrame()

int32 GetNumClipmapUpdatesPerFrame ( )

◆ GetRecaptureReasonString()

const TCHAR * GetRecaptureReasonString ( EGlobalSDFFullRecaptureReason  Reason)

◆ IMPLEMENT_GLOBAL_SHADER() [1/14]

IMPLEMENT_GLOBAL_SHADER ( FAllocatePagesCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"AllocatePagesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/14]

IMPLEMENT_GLOBAL_SHADER ( FBuildGridTilesCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"BuildGridTilesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/14]

IMPLEMENT_GLOBAL_SHADER ( FClearIndirectArgBufferCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"ClearIndirectArgBufferCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/14]

IMPLEMENT_GLOBAL_SHADER ( FCompositeObjectsIntoObjectGridPagesCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldCompositeObjects.usf"  ,
"CompositeObjectsIntoObjectGridPagesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/14]

IMPLEMENT_GLOBAL_SHADER ( FCompositeObjectsIntoPagesCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldCompositeObjects.usf"  ,
"CompositeObjectsIntoPagesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/14]

IMPLEMENT_GLOBAL_SHADER ( FCullObjectsToClipmapCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"CullObjectsToClipmapCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/14]

IMPLEMENT_GLOBAL_SHADER ( FCullObjectsToGridCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"CullObjectsToGridCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/14]

IMPLEMENT_GLOBAL_SHADER ( FGlobalDistanceFieldAccumulateUpdatedPagesCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf"  ,
"GlobalDistanceFieldAccumulateUpdatedPagesCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/14]

IMPLEMENT_GLOBAL_SHADER ( FGlobalDistanceFieldDebugCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf"  ,
"GlobalDistanceFieldDebugCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [10/14]

IMPLEMENT_GLOBAL_SHADER ( FGlobalDistanceFieldPageStatsCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldDebug.usf"  ,
"GlobalDistanceFieldPageStatsCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [11/14]

IMPLEMENT_GLOBAL_SHADER ( FInitPageFreeListCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"InitPageFreeListCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [12/14]

IMPLEMENT_GLOBAL_SHADER ( FPageFreeListReturnCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"PageFreeListReturnCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [13/14]

IMPLEMENT_GLOBAL_SHADER ( FPageFreeListReturnIndirectArgBufferCS  ,
"/Engine/Private/DistanceField/GlobalDistanceField.usf"  ,
"PageFreeListReturnIndirectArgBufferCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [14/14]

IMPLEMENT_GLOBAL_SHADER ( FPropagateMipDistanceCS  ,
"/Engine/Private/DistanceField/GlobalDistanceFieldMip.usf"  ,
"PropagateMipDistanceCS"  ,
SF_Compute   
)

◆ ReadbackDistanceFieldClipmap()

void ReadbackDistanceFieldClipmap ( FRHICommandListImmediate RHICmdList,
FGlobalDistanceFieldInfo GlobalDistanceFieldInfo 
)

◆ RequestGlobalDistanceFieldReadback()

void RequestGlobalDistanceFieldReadback ( FGlobalDistanceFieldReadback Readback)

Retrieves the GPU data of a global distance field clipmap for access by the CPU

Note
: Currently only works with the highest res clipmap on the first updated view in the frame

◆ RequestGlobalDistanceFieldReadback_GameThread()

void RequestGlobalDistanceFieldReadback_GameThread ( FGlobalDistanceFieldReadback Readback)

◆ SetupGlobalDistanceFieldParameters()

FGlobalDistanceFieldParameters2 SetupGlobalDistanceFieldParameters ( const FGlobalDistanceFieldParameterData ParameterData)

◆ UpdateGlobalDistanceFieldCache()

void UpdateGlobalDistanceFieldCache ( FRDGBuilder GraphBuilder,
FViewInfo View,
FScene Scene,
int32  CacheType,
TArray< FGlobalDistanceFieldClipmap > &  Clipmaps,
FRDGBufferRef  PageStatsBuffer,
FRDGBufferRef  PageObjectGridBuffer,
FRDGTextureRef  PageTableLayerTexture,
FRDGTextureRef  ParentPageTableLayerTexture,
FRDGTextureRef  PageTableCombinedTexture,
FRDGTextureRef  PageAtlasTexture,
FRDGTextureRef  CoverageAtlasTexture,
FRDGTextureRef  MipTexture,
FRDGBufferRef  PageFreeListAllocatorBuffer,
FRDGBufferRef  PageFreeListBuffer,
bool  bLumenEnabled 
)

Shader logic for updating modified Global Distance Field regions. Dispatches are done per clipmap in order to overlap as much work as possible.

◆ UpdateGlobalDistanceFieldVolume()

void UpdateGlobalDistanceFieldVolume ( FRDGBuilder GraphBuilder,
FRDGExternalAccessQueue ExternalAccessQueue,
FViewInfo View,
FScene Scene,
float  MaxOcclusionDistance,
bool  bLumenEnabled,
FGlobalDistanceFieldInfo GlobalDistanceFieldInfo 
)

Updates the global distance field for a view.
Typically issues updates for just the newly exposed regions of the volume due to camera movement. In the worst case of a camera cut or large distance field scene changes, a full update of the global distance field will be done.

◆ UseGlobalDistanceField() [1/2]

bool UseGlobalDistanceField ( )

◆ UseGlobalDistanceField() [2/2]

bool UseGlobalDistanceField ( const FDistanceFieldAOParameters Parameters)

Variable Documentation

◆ CVarAOGlobalDistanceFieldFastCameraMode

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldFastCameraMode(TEXT("r.AOGlobalDistanceField.FastCameraMode"), GAOGlobalDistanceFieldFastCameraMode, TEXT("Whether to update the Global SDF for fast camera movement - lower quality, faster updates so lighting can keep up with the camera."), ECVF_RenderThreadSafe) ( TEXT("r.AOGlobalDistanceField.FastCameraMode")  ,
GAOGlobalDistanceFieldFastCameraMode  ,
TEXT("Whether to update the Global SDF for fast camera movement - lower quality, faster updates so lighting can keep up with the camera." ,
ECVF_RenderThreadSafe   
)

◆ CVarAOGlobalDistanceFieldMinMeshSDFRadius

FAutoConsoleVariableRef CVarAOGlobalDistanceFieldMinMeshSDFRadius(TEXT("r.AOGlobalDistanceField.MinMeshSDFRadius"), GAOGlobalDistanceFieldMinMeshSDFRadius, TEXT("Meshes with a smaller world space radius than this are culled from the global SDF."), ECVF_RenderThreadSafe) ( TEXT("r.AOGlobalDistanceField.MinMeshSDFRadius")  ,
GAOGlobalDistanceFieldMinMeshSDFRadius  ,
TEXT("Meshes with a smaller world space radius than this are culled from the global SDF." ,
ECVF_RenderThreadSafe   
)

◆ CVarGlobalDistanceFieldDebugShowStats

TAutoConsoleVariable< bool > CVarGlobalDistanceFieldDebugShowStats(TEXT("r.GlobalDistanceField.Debug.ShowStats"), 0, TEXT("Debug drawing for the Global Distance Field."), ECVF_Scalability|ECVF_RenderThreadSafe) ( TEXT("r.GlobalDistanceField.Debug.ShowStats")  ,
,
TEXT("Debug drawing for the Global Distance Field." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ GAOGlobalDFClipmapDistanceExponent

float GAOGlobalDFClipmapDistanceExponent = 2

◆ GAOGlobalDFResolution

int32 GAOGlobalDFResolution = 128

◆ GAOGlobalDFStartDistance

float GAOGlobalDFStartDistance = 100

◆ GAOGlobalDistanceField

int32 GAOGlobalDistanceField = 1

◆ GAOGlobalDistanceFieldCacheMostlyStaticSeparately

int32 GAOGlobalDistanceFieldCacheMostlyStaticSeparately = 1

◆ GAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay

float GAOGlobalDistanceFieldCameraPositionVelocityOffsetDecay = .7f

◆ GAOGlobalDistanceFieldClipmapUpdatesPerFrame

int32 GAOGlobalDistanceFieldClipmapUpdatesPerFrame = 2

◆ GAOGlobalDistanceFieldFastCameraMode

int32 GAOGlobalDistanceFieldFastCameraMode = 0

◆ GAOGlobalDistanceFieldForceFullUpdate

int32 GAOGlobalDistanceFieldForceFullUpdate = 0

◆ GAOGlobalDistanceFieldForceRecacheForStreaming

int32 GAOGlobalDistanceFieldForceRecacheForStreaming = 0

◆ GAOGlobalDistanceFieldForceUpdateOnce

int32 GAOGlobalDistanceFieldForceUpdateOnce = 0

◆ GAOGlobalDistanceFieldHeightfield

int32 GAOGlobalDistanceFieldHeightfield = 1

◆ GAOGlobalDistanceFieldMinMeshSDFRadius

float GAOGlobalDistanceFieldMinMeshSDFRadius = 20

◆ GAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels

float GAOGlobalDistanceFieldMinMeshSDFRadiusInVoxels = .5f

◆ GAOGlobalDistanceFieldMipFactor

int32 GAOGlobalDistanceFieldMipFactor = 4

◆ GAOGlobalDistanceFieldNumClipmaps

int32 GAOGlobalDistanceFieldNumClipmaps = 4

◆ GAOGlobalDistanceFieldPartialUpdates

int32 GAOGlobalDistanceFieldPartialUpdates = 1

◆ GAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming

int32 GAOGlobalDistanceFieldRecacheClipmapsWithPendingStreaming = 1

◆ GAOGlobalDistanceFieldRepresentHeightfields

int32 GAOGlobalDistanceFieldRepresentHeightfields = 1

◆ GAOGlobalDistanceFieldStaggeredUpdates

int32 GAOGlobalDistanceFieldStaggeredUpdates = 1

◆ GAOUpdateGlobalDistanceField

int32 GAOUpdateGlobalDistanceField = 1

◆ GDistanceFieldOffsetDataStructure

int32 GDistanceFieldOffsetDataStructure
extern

◆ GGlobalDistanceFieldCoveragePageResolutionInAtlas

const int32 GGlobalDistanceFieldCoveragePageResolutionInAtlas = 4

◆ GGlobalDistanceFieldDebugDrawModifiedPrimitives

int32 GGlobalDistanceFieldDebugDrawModifiedPrimitives = 0

◆ GGlobalDistanceFieldDebugForceMovementUpdate

int32 GGlobalDistanceFieldDebugForceMovementUpdate = 0

◆ GGlobalDistanceFieldDebugLogModifiedPrimitives

int32 GGlobalDistanceFieldDebugLogModifiedPrimitives = 0

◆ GGlobalDistanceFieldHeightFieldThicknessScale

float GGlobalDistanceFieldHeightFieldThicknessScale = 4.0f

◆ GGlobalDistanceFieldInfluenceRangeInVoxels

const int32 GGlobalDistanceFieldInfluenceRangeInVoxels = 4

◆ GGlobalDistanceFieldOccupancyRatio

float GGlobalDistanceFieldOccupancyRatio = 0.3f

◆ GGlobalDistanceFieldPageResolution

const int32 GGlobalDistanceFieldPageResolution = GGlobalDistanceFieldPageResolutionInAtlas - 1

◆ GGlobalDistanceFieldPageResolutionInAtlas

const int32 GGlobalDistanceFieldPageResolutionInAtlas = 8

◆ GLumenSceneGlobalSDFCoveredExpandSurfaceScale

float GLumenSceneGlobalSDFCoveredExpandSurfaceScale = 1.0f

◆ GLumenSceneGlobalSDFDitheredTransparencyStepThreshold

float GLumenSceneGlobalSDFDitheredTransparencyStepThreshold = .5f

◆ GLumenSceneGlobalSDFDitheredTransparencyTraceThreshold

float GLumenSceneGlobalSDFDitheredTransparencyTraceThreshold = .9f

◆ GLumenSceneGlobalSDFNotCoveredExpandSurfaceScale

float GLumenSceneGlobalSDFNotCoveredExpandSurfaceScale = .6f

◆ GLumenSceneGlobalSDFNotCoveredMinStepScale

float GLumenSceneGlobalSDFNotCoveredMinStepScale = 4.0f

◆ GLumenSceneGlobalSDFSimpleCoverageBasedExpand

int32 GLumenSceneGlobalSDFSimpleCoverageBasedExpand = 0