UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneVisibility.cpp File Reference
#include "SceneVisibility.h"
#include "SceneVisibilityPrivate.h"
#include "CoreMinimal.h"
#include "ComputeWorkerInterface.h"
#include "HAL/ThreadSafeCounter.h"
#include "Stats/Stats.h"
#include "Misc/MemStack.h"
#include "HAL/IConsoleManager.h"
#include "Misc/App.h"
#include "EngineDefines.h"
#include "EngineGlobals.h"
#include "EngineStats.h"
#include "RHIDefinitions.h"
#include "SceneTypes.h"
#include "SceneInterface.h"
#include "RendererInterface.h"
#include "PrimitiveViewRelevance.h"
#include "Materials/Material.h"
#include "MaterialShared.h"
#include "PrimitiveDrawingUtils.h"
#include "ScenePrivateBase.h"
#include "PostProcess/SceneRenderTargets.h"
#include "SceneCore.h"
#include "SceneOcclusion.h"
#include "LightSceneInfo.h"
#include "SceneRendering.h"
#include "DeferredShadingRenderer.h"
#include "DynamicPrimitiveDrawing.h"
#include "FXSystem.h"
#include "PostProcess/PostProcessing.h"
#include "SceneView.h"
#include "SkyAtmosphereRendering.h"
#include "Engine/LODActor.h"
#include "GPUScene.h"
#include "TranslucentRendering.h"
#include "TranslucentLighting.h"
#include "Async/ParallelFor.h"
#include "HairStrands/HairStrandsRendering.h"
#include "HairStrands/HairStrandsData.h"
#include "RectLightSceneProxy.h"
#include "Math/Halton.h"
#include "ProfilingDebugging/CountersTrace.h"
#include "Algo/Unique.h"
#include "InstanceCulling/InstanceCullingManager.h"
#include "InstanceCulling/InstanceCullingOcclusionQuery.h"
#include "PostProcess/TemporalAA.h"
#include "RayTracing/RayTracingInstanceCulling.h"
#include "RayTracing/RayTracing.h"
#include "HeterogeneousVolumes/HeterogeneousVolumes.h"
#include "RendererModule.h"
#include "SceneViewExtension.h"
#include "RenderCore.h"
#include "UnrealEngine.h"
#include "VT/VirtualTextureSystem.h"
#include "NaniteSceneProxy.h"
#include "ViewDebug.h"
#include "DecalRenderingCommon.h"
#include "CompositionLighting/PostProcessDeferredDecals.h"
#include "DecalRenderingShared.h"

Classes

struct  FFrustumCullingFlags
 

Functions

RENDERER_API TAutoConsoleVariable< floatCVarStaticMeshLODDistanceScale (TEXT("r.StaticMeshLODDistanceScale"), 1.0f, TEXT("(higher values make LODs transition earlier, e.g., 2 is twice as fast / half the distance)"), ECVF_Scalability|ECVF_RenderThreadSafe)
 
uint32 GetNumDynamicMeshElementTasks ()
 
bool DoOcclusionQueries (const FSceneViewFamily &ViewFamily)
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_NumProcessedPrimitives, TEXT("Scene/Visibility/NumProcessedPrimitives"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_FrustumCull_NumCulledPrimitives, TEXT("Scene/Visibility/FrustumCull/NumCulledPrimitives"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_FrustumCull_NumPrimitivesPerTask, TEXT("Scene/Visibility/FrustumCull/NumPrimitivesPerTask"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_OcclusionCull_NumTestedQueries, TEXT("Scene/Visibility/OcclusionCull/NumTestedQueries"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_OcclusionCull_NumCulledPrimitives, TEXT("Scene/Visibility/OcclusionCull/NumCulledPrimitives"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_Relevance_NumPrimitivesPerPacket, TEXT("Scene/Visibility/Relevance/NumPrimitivesPerPacket"))
 
 TRACE_DECLARE_INT_COUNTER (Scene_Visibility_Relevance_NumPrimitivesProcessed, TEXT("Scene/Visibility/Relevance/NumPrimitivesProcessed"))
 
IVisibilityTaskDataLaunchVisibilityTasks (FRHICommandListImmediate &RHICmdList, FSceneRenderer &SceneRenderer, const UE::Tasks::FTask &BeginInitVisibilityPrerequisites)
 
bool IntersectBox8Plane (const FVector &InOrigin, const FVector &InExtent, const FPlane *PermutedPlanePtr)
 
bool IsPrimitiveVisible (FViewInfo &View, const FPlane *PermutedPlanePtr, const FConvexVolume &ViewCullingFrustum, const FPrimitiveBounds &Bounds, int32 VisibilityId, FFrustumCullingFlags Flags)
 
bool IsPrimitiveHidden (const FScene &Scene, FViewInfo &View, int32 PrimitiveIndex, FFrustumCullingFlags Flags)
 
void ComputeDistances (const FPrimitiveBounds &Bounds, const FVector &ViewOriginForDistanceCulling, float &OutClosestDistSq, float &OutFurthestDistSq)
 
uint32 GetShadowQuality ()
 
void UpdateHairResources (FRDGBuilder &GraphBuilder, const FViewInfo &View)
 

Variables

bool GDistanceCullToSphereEdge = true
 
float GMinScreenRadiusForLights = 0.03f
 
float GMinScreenRadiusForDepthPrepass = 0.03f
 
int32 GOcclusionFeedback_Enable = 0
 
int32 GEarlyInitDynamicShadows = 1
 
float GOverlayMaterialMaxDrawDistanceOverride = 0.0f
 
int32 GVisibilitySkipAlwaysVisible
 
float GLightMaxDrawDistanceScale = 1.0f
 

Function Documentation

◆ ComputeDistances()

void ComputeDistances ( const FPrimitiveBounds Bounds,
const FVector ViewOriginForDistanceCulling,
float OutClosestDistSq,
float OutFurthestDistSq 
)
inline

◆ CVarStaticMeshLODDistanceScale()

RENDERER_API TAutoConsoleVariable< float > CVarStaticMeshLODDistanceScale ( TEXT("r.StaticMeshLODDistanceScale")  ,
1.  0f,
TEXT("(higher values make LODs transition earlier, e.g., 2 is twice as fast / half the distance)")  ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DoOcclusionQueries()

bool DoOcclusionQueries ( const FSceneViewFamily ViewFamily)

◆ GetNumDynamicMeshElementTasks()

uint32 GetNumDynamicMeshElementTasks ( )
inline

◆ GetShadowQuality()

uint32 GetShadowQuality ( )

Uniform buffer for rendering deferred lights.

◆ IntersectBox8Plane()

bool IntersectBox8Plane ( const FVector InOrigin,
const FVector InExtent,
const FPlane PermutedPlanePtr 
)
inline

◆ IsPrimitiveHidden()

bool IsPrimitiveHidden ( const FScene Scene,
FViewInfo View,
int32  PrimitiveIndex,
FFrustumCullingFlags  Flags 
)
inline

◆ IsPrimitiveVisible()

bool IsPrimitiveVisible ( FViewInfo View,
const FPlane PermutedPlanePtr,
const FConvexVolume ViewCullingFrustum,
const FPrimitiveBounds Bounds,
int32  VisibilityId,
FFrustumCullingFlags  Flags 
)
inline

◆ LaunchVisibilityTasks()

IVisibilityTaskData * LaunchVisibilityTasks ( FRHICommandListImmediate RHICmdList,
FSceneRenderer SceneRenderer,
const UE::Tasks::FTask BeginInitVisibilityPrerequisites 
)

◆ TRACE_DECLARE_INT_COUNTER() [1/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_FrustumCull_NumCulledPrimitives  ,
TEXT("Scene/Visibility/FrustumCull/NumCulledPrimitives"  
)

◆ TRACE_DECLARE_INT_COUNTER() [2/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_FrustumCull_NumPrimitivesPerTask  ,
TEXT("Scene/Visibility/FrustumCull/NumPrimitivesPerTask"  
)

◆ TRACE_DECLARE_INT_COUNTER() [3/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_NumProcessedPrimitives  ,
TEXT("Scene/Visibility/NumProcessedPrimitives"  
)

◆ TRACE_DECLARE_INT_COUNTER() [4/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_OcclusionCull_NumCulledPrimitives  ,
TEXT("Scene/Visibility/OcclusionCull/NumCulledPrimitives"  
)

◆ TRACE_DECLARE_INT_COUNTER() [5/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_OcclusionCull_NumTestedQueries  ,
TEXT("Scene/Visibility/OcclusionCull/NumTestedQueries"  
)

◆ TRACE_DECLARE_INT_COUNTER() [6/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_Relevance_NumPrimitivesPerPacket  ,
TEXT("Scene/Visibility/Relevance/NumPrimitivesPerPacket"  
)

◆ TRACE_DECLARE_INT_COUNTER() [7/7]

TRACE_DECLARE_INT_COUNTER ( Scene_Visibility_Relevance_NumPrimitivesProcessed  ,
TEXT("Scene/Visibility/Relevance/NumPrimitivesProcessed"  
)

◆ UpdateHairResources()

void UpdateHairResources ( FRDGBuilder GraphBuilder,
const FViewInfo View 
)

Variable Documentation

◆ GDistanceCullToSphereEdge

bool GDistanceCullToSphereEdge = true

◆ GEarlyInitDynamicShadows

int32 GEarlyInitDynamicShadows = 1

◆ GLightMaxDrawDistanceScale

float GLightMaxDrawDistanceScale = 1.0f

◆ GMinScreenRadiusForDepthPrepass

float GMinScreenRadiusForDepthPrepass = 0.03f

◆ GMinScreenRadiusForLights

float GMinScreenRadiusForLights = 0.03f

◆ GOcclusionFeedback_Enable

int32 GOcclusionFeedback_Enable = 0

◆ GOverlayMaterialMaxDrawDistanceOverride

float GOverlayMaterialMaxDrawDistanceOverride = 0.0f

◆ GVisibilitySkipAlwaysVisible

int32 GVisibilitySkipAlwaysVisible
extern