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

Classes

class  FOcclusionQueryIndexBuffer
 
class  FHZBTestPS
 
class  FOcclusionFeedbackVS
 
class  FOcclusionFeedbackPS
 

Enumerations

enum  EShadowOcclusionQueryIntersectionMode { SOQ_None , SOQ_LightInfluenceSphere , SOQ_NearPlaneVsShadowFrustum }
 

Functions

FAutoConsoleVariableRef CVarOcclusionCullCascadedShadowMaps (TEXT("r.Shadow.OcclusionCullCascadedShadowMaps"), GOcclusionCullCascadedShadowMaps, TEXT("Whether to use occlusion culling on cascaded shadow maps. Disabled by default because rapid view changes reveal new regions too quickly for latent occlusion queries to work with."), ECVF_Scalability|ECVF_RenderThreadSafe)
 
bool UseDownsampledOcclusionQueries ()
 
 DEFINE_GPU_STAT (HZB)
 
 DECLARE_GPU_DRAWCALL_STAT (BeginOcclusionTests)
 
 IMPLEMENT_SHADER_TYPE (, FOcclusionQueryVS, TEXT("/Engine/Private/OcclusionQueryVertexShader.usf"), TEXT("Main"), SF_Vertex)
 
 IMPLEMENT_SHADER_TYPE (, FOcclusionQueryPS, TEXT("/Engine/Private/OcclusionQueryPixelShader.usf"), TEXT("Main"), SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FHZBTestPS, "/Engine/Private/HZBOcclusion.usf", "HZBTestPS", SF_Pixel)
 
void AllocateOcclusionTests (const FScene *Scene, FViewOcclusionQueriesPerView &QueriesPerView, TArrayView< FViewInfo > Views, TArrayView< const FVisibleLightInfo > VisibleLightInfos)
 
 DECLARE_CYCLE_STAT (TEXT("OcclusionSubmittedFence Dispatch"), STAT_OcclusionSubmittedFence_Dispatch, STATGROUP_SceneRendering)
 
 DECLARE_CYCLE_STAT (TEXT("OcclusionSubmittedFence Wait"), STAT_OcclusionSubmittedFence_Wait, STATGROUP_SceneRendering)
 
 IMPLEMENT_GLOBAL_SHADER (FOcclusionFeedbackVS,"/Engine/Private/OcclusionFeedbackShaders.usf","MainVS", SF_Vertex)
 
 IMPLEMENT_GLOBAL_SHADER (FOcclusionFeedbackPS,"/Engine/Private/OcclusionFeedbackShaders.usf","MainPS", SF_Pixel)
 

Variables

int32 GAllowPrecomputedVisibility = 1
 
int32 GOcclusionCullCascadedShadowMaps = 0
 
int32 GEnableComputeBuildHZB = 1
 
int32 GDownsampledOcclusionQueries = 0
 
FOcclusionRandomStream GOcclusionRandomStream
 
TGlobalResource< FOcclusionQueryIndexBufferGOcclusionQueryIndexBuffer
 
int32 GOcclusionFeeback_Blending = 1
 

Enumeration Type Documentation

◆ EShadowOcclusionQueryIntersectionMode

Enumerator
SOQ_None 
SOQ_LightInfluenceSphere 
SOQ_NearPlaneVsShadowFrustum 

Function Documentation

◆ AllocateOcclusionTests()

void AllocateOcclusionTests ( const FScene Scene,
FViewOcclusionQueriesPerView QueriesPerView,
TArrayView< FViewInfo Views,
TArrayView< const FVisibleLightInfo VisibleLightInfos 
)

◆ CVarOcclusionCullCascadedShadowMaps()

FAutoConsoleVariableRef CVarOcclusionCullCascadedShadowMaps ( TEXT("r.Shadow.OcclusionCullCascadedShadowMaps")  ,
GOcclusionCullCascadedShadowMaps  ,
TEXT("Whether to use occlusion culling on cascaded shadow maps. Disabled by default because rapid view changes reveal new regions too quickly for latent occlusion queries to work with." ,
ECVF_Scalability ECVF_RenderThreadSafe 
)

◆ DECLARE_CYCLE_STAT() [1/2]

DECLARE_CYCLE_STAT ( TEXT("OcclusionSubmittedFence Dispatch" ,
STAT_OcclusionSubmittedFence_Dispatch  ,
STATGROUP_SceneRendering   
)

◆ DECLARE_CYCLE_STAT() [2/2]

DECLARE_CYCLE_STAT ( TEXT("OcclusionSubmittedFence Wait" ,
STAT_OcclusionSubmittedFence_Wait  ,
STATGROUP_SceneRendering   
)

◆ DECLARE_GPU_DRAWCALL_STAT()

DECLARE_GPU_DRAWCALL_STAT ( BeginOcclusionTests  )

◆ DEFINE_GPU_STAT()

DEFINE_GPU_STAT ( HZB  )

◆ IMPLEMENT_GLOBAL_SHADER() [1/3]

IMPLEMENT_GLOBAL_SHADER ( FHZBTestPS  ,
"/Engine/Private/HZBOcclusion.usf"  ,
"HZBTestPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/3]

IMPLEMENT_GLOBAL_SHADER ( FOcclusionFeedbackPS  ,
"/Engine/Private/OcclusionFeedbackShaders.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/3]

IMPLEMENT_GLOBAL_SHADER ( FOcclusionFeedbackVS  ,
"/Engine/Private/OcclusionFeedbackShaders.usf"  ,
"MainVS"  ,
SF_Vertex   
)

◆ IMPLEMENT_SHADER_TYPE() [1/2]

IMPLEMENT_SHADER_TYPE ( FOcclusionQueryPS  ,
TEXT("/Engine/Private/OcclusionQueryPixelShader.usf" ,
TEXT("Main")  ,
SF_Pixel   
)

◆ IMPLEMENT_SHADER_TYPE() [2/2]

IMPLEMENT_SHADER_TYPE ( FOcclusionQueryVS  ,
TEXT("/Engine/Private/OcclusionQueryVertexShader.usf" ,
TEXT("Main")  ,
SF_Vertex   
)

◆ UseDownsampledOcclusionQueries()

bool UseDownsampledOcclusionQueries ( )

Variable Documentation

◆ GAllowPrecomputedVisibility

int32 GAllowPrecomputedVisibility = 1

◆ GDownsampledOcclusionQueries

int32 GDownsampledOcclusionQueries = 0

◆ GEnableComputeBuildHZB

int32 GEnableComputeBuildHZB = 1

◆ GOcclusionCullCascadedShadowMaps

int32 GOcclusionCullCascadedShadowMaps = 0

◆ GOcclusionFeeback_Blending

int32 GOcclusionFeeback_Blending = 1

◆ GOcclusionQueryIndexBuffer

TGlobalResource<FOcclusionQueryIndexBuffer> GOcclusionQueryIndexBuffer

◆ GOcclusionRandomStream

FOcclusionRandomStream GOcclusionRandomStream

Random table for occlusion