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

Classes

class  FAmbientOcclusionSetupPS
 
class  FAmbientOcclusionSmoothCS
 
class  FAmbientOcclusionPS
 
class  FAmbientOcclusionCS
 
class  FGTAOHorizonSearchAndIntegrateCS
 
class  FGTAOInnerIntegratePS
 
class  FGTAOHorizonSearchCS
 
class  FGTAOTemporalFilterCS
 
class  FGTAOSpatialFilterCS
 
class  FGTAOUpsamplePS
 

Functions

 DECLARE_GPU_STAT_NAMED (SSAOSetup, TEXT("ScreenSpace AO Setup"))
 
 DECLARE_GPU_STAT_NAMED (SSAO, TEXT("ScreenSpace AO"))
 
 DECLARE_GPU_STAT_NAMED (BasePassAO, TEXT("BasePass AO"))
 
 DECLARE_GPU_STAT_NAMED (SSAOSmooth, TEXT("SSAO smooth"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_HorizonSearch, TEXT("GTAO HorizonSearch"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_HorizonSearchIntegrate, TEXT("GTAO HorizonSearch And Integrate"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_InnerIntegrate, TEXT("GTAO InnerIntegrate"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_TemporalFilter, TEXT("GTAO Temportal Filter"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_SpatialFilter, TEXT("GTAO Spatial Filter"))
 
 DECLARE_GPU_STAT_NAMED (GTAO_Upsample, TEXT("GTAO Upsample"))
 
FRDGTextureDesc GetScreenSpaceAOTextureDesc (ERHIFeatureLevel::Type FeatureLevel, FIntPoint Extent)
 
FRDGTextureRef CreateScreenSpaceAOTexture (FRDGBuilder &GraphBuilder, ERHIFeatureLevel::Type FeatureLevel, FIntPoint Extent)
 
FRDGTextureRef GetScreenSpaceAOFallback (const FRDGSystemTextures &SystemTextures)
 
 END_SHADER_PARAMETER_STRUCT ()
 
FHZBParameters GetHZBParametersForAO (FRDGBuilder &GraphBuilder, const FViewInfo &View, FIntPoint InputTextureSize, EAOTechnique AOTechnique)
 
 IMPLEMENT_GLOBAL_SHADER (FAmbientOcclusionSetupPS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "MainSetupPS", SF_Pixel)
 
FScreenPassTexture AddAmbientOcclusionSetupPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSSAOCommonParameters &CommonParameters, FScreenPassTexture Input)
 
 IMPLEMENT_GLOBAL_SHADER (FAmbientOcclusionSmoothCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "MainSSAOSmoothCS", SF_Compute)
 
void AddAmbientOcclusionSmoothPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, ESSAOType SSAOType, FScreenPassTexture Input, FScreenPassRenderTarget Output)
 
 IMPLEMENT_GLOBAL_SHADER (FAmbientOcclusionPS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "MainPS", SF_Pixel)
 
 IMPLEMENT_GLOBAL_SHADER (FAmbientOcclusionCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "MainCS", SF_Compute)
 
FScreenPassRenderTarget CreateAmbientOcclusionOutputTarget (FRDGBuilder &GraphBuilder, FRDGTextureDesc OutputDesc, FIntRect ViewRect, ESSAOType AOType, EPixelFormat IntermediateFormatOverride)
 
void AddAmbientOcclusionPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSSAOCommonParameters &CommonParameters, const FScreenPassTexture &SetupTexture, const FScreenPassTexture &NormalsTexture, const FScreenPassTexture &DownsampledAO, FScreenPassRenderTarget Output, ESSAOType AOType, bool bAOSetupAsInput)
 
FScreenPassTexture AddAmbientOcclusionStepPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSSAOCommonParameters &CommonParameters, const FScreenPassTexture &SetupTexture, const FScreenPassTexture &NormalsTexture, const FScreenPassTexture &DownsampledAO)
 
FScreenPassTexture AddAmbientOcclusionFinalPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FSSAOCommonParameters &CommonParameters, const FScreenPassTexture &SetupTexture, const FScreenPassTexture &NormalsTexture, const FScreenPassTexture &DownsampledAO, FScreenPassRenderTarget FinalOutput)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOHorizonSearchAndIntegrateCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "GTAOCombinedCS", SF_Compute)
 
FGTAOHorizonSearchOutputs AddGTAOHorizonSearchIntegratePass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FGTAOCommonParameters &CommonParameters, FScreenPassTexture SceneDepth)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOInnerIntegratePS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "GTAOInnerIntegratePS", SF_Pixel)
 
FScreenPassTexture AddGTAOInnerIntegratePass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FGTAOCommonParameters &CommonParameters, FScreenPassTexture SceneDepth, FScreenPassTexture HorizonsTexture)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOHorizonSearchCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "HorizonSearchCS", SF_Compute)
 
FGTAOHorizonSearchOutputs AddGTAOHorizonSearchPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FGTAOCommonParameters &CommonParameters, FScreenPassTexture SceneDepth, FScreenPassRenderTarget HorizonOutput)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOTemporalFilterCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "GTAOTemporalFilterCS", SF_Compute)
 
FGTAOTemporalOutputs AddGTAOTemporalPass (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FGTAOCommonParameters &CommonParameters, FScreenPassTexture Input, FScreenPassTexture SceneDepth, FScreenPassTexture SceneVelocity, FScreenPassTexture HistoryColor, FScreenPassTextureViewport HistoryViewport)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOSpatialFilterCS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "GTAOSpatialFilterCS", SF_Compute)
 
FScreenPassTexture AddGTAOSpatialFilter (FRDGBuilder &GraphBuilder, const FViewInfo &View, const FGTAOCommonParameters &CommonParameters, FScreenPassTexture Input, FScreenPassTexture InputDepth, FScreenPassRenderTarget SuggestedOutput)
 
 IMPLEMENT_GLOBAL_SHADER (FGTAOUpsamplePS, "/Engine/Private/PostProcessAmbientOcclusion.usf", "GTAOUpsamplePS", SF_Pixel)
 
FScreenPassTexture AddGTAOUpsamplePass (FRDGBuilder &GraphBuilder, const FViewInfo &View, FScreenPassTexture Input, FScreenPassTexture SceneDepth, FScreenPassRenderTarget Output)
 

Function Documentation

◆ AddAmbientOcclusionFinalPass()

FScreenPassTexture AddAmbientOcclusionFinalPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FSSAOCommonParameters CommonParameters,
const FScreenPassTexture SetupTexture,
const FScreenPassTexture NormalsTexture,
const FScreenPassTexture DownsampledAO,
FScreenPassRenderTarget  FinalOutput 
)

◆ AddAmbientOcclusionPass()

void AddAmbientOcclusionPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FSSAOCommonParameters CommonParameters,
const FScreenPassTexture SetupTexture,
const FScreenPassTexture NormalsTexture,
const FScreenPassTexture DownsampledAO,
FScreenPassRenderTarget  Output,
ESSAOType  AOType,
bool  bAOSetupAsInput 
)

◆ AddAmbientOcclusionSetupPass()

FScreenPassTexture AddAmbientOcclusionSetupPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FSSAOCommonParameters CommonParameters,
FScreenPassTexture  Input 
)

◆ AddAmbientOcclusionSmoothPass()

void AddAmbientOcclusionSmoothPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
ESSAOType  SSAOType,
FScreenPassTexture  Input,
FScreenPassRenderTarget  Output 
)

◆ AddAmbientOcclusionStepPass()

FScreenPassTexture AddAmbientOcclusionStepPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FSSAOCommonParameters CommonParameters,
const FScreenPassTexture SetupTexture,
const FScreenPassTexture NormalsTexture,
const FScreenPassTexture DownsampledAO 
)

◆ AddGTAOHorizonSearchIntegratePass()

FGTAOHorizonSearchOutputs AddGTAOHorizonSearchIntegratePass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FGTAOCommonParameters CommonParameters,
FScreenPassTexture  SceneDepth 
)

◆ AddGTAOHorizonSearchPass()

FGTAOHorizonSearchOutputs AddGTAOHorizonSearchPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FGTAOCommonParameters CommonParameters,
FScreenPassTexture  SceneDepth,
FScreenPassRenderTarget  HorizonOutput 
)

◆ AddGTAOInnerIntegratePass()

FScreenPassTexture AddGTAOInnerIntegratePass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FGTAOCommonParameters CommonParameters,
FScreenPassTexture  SceneDepth,
FScreenPassTexture  HorizonsTexture 
)

◆ AddGTAOSpatialFilter()

FScreenPassTexture AddGTAOSpatialFilter ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FGTAOCommonParameters CommonParameters,
FScreenPassTexture  Input,
FScreenPassTexture  InputDepth,
FScreenPassRenderTarget  SuggestedOutput 
)

◆ AddGTAOTemporalPass()

FGTAOTemporalOutputs AddGTAOTemporalPass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
const FGTAOCommonParameters CommonParameters,
FScreenPassTexture  Input,
FScreenPassTexture  SceneDepth,
FScreenPassTexture  SceneVelocity,
FScreenPassTexture  HistoryColor,
FScreenPassTextureViewport  HistoryViewport 
)

◆ AddGTAOUpsamplePass()

FScreenPassTexture AddGTAOUpsamplePass ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FScreenPassTexture  Input,
FScreenPassTexture  SceneDepth,
FScreenPassRenderTarget  Output 
)

◆ CreateAmbientOcclusionOutputTarget()

FScreenPassRenderTarget CreateAmbientOcclusionOutputTarget ( FRDGBuilder GraphBuilder,
FRDGTextureDesc  OutputDesc,
FIntRect  ViewRect,
ESSAOType  AOType,
EPixelFormat  IntermediateFormatOverride 
)

◆ CreateScreenSpaceAOTexture()

FRDGTextureRef CreateScreenSpaceAOTexture ( FRDGBuilder GraphBuilder,
ERHIFeatureLevel::Type  FeatureLevel,
FIntPoint  Extent 
)

◆ DECLARE_GPU_STAT_NAMED() [1/10]

DECLARE_GPU_STAT_NAMED ( BasePassAO  ,
TEXT("BasePass AO"  
)

◆ DECLARE_GPU_STAT_NAMED() [2/10]

DECLARE_GPU_STAT_NAMED ( GTAO_HorizonSearch  ,
TEXT("GTAO HorizonSearch"  
)

◆ DECLARE_GPU_STAT_NAMED() [3/10]

DECLARE_GPU_STAT_NAMED ( GTAO_HorizonSearchIntegrate  ,
TEXT("GTAO HorizonSearch And Integrate"  
)

◆ DECLARE_GPU_STAT_NAMED() [4/10]

DECLARE_GPU_STAT_NAMED ( GTAO_InnerIntegrate  ,
TEXT("GTAO InnerIntegrate"  
)

◆ DECLARE_GPU_STAT_NAMED() [5/10]

DECLARE_GPU_STAT_NAMED ( GTAO_SpatialFilter  ,
TEXT("GTAO Spatial Filter"  
)

◆ DECLARE_GPU_STAT_NAMED() [6/10]

DECLARE_GPU_STAT_NAMED ( GTAO_TemporalFilter  ,
TEXT("GTAO Temportal Filter"  
)

◆ DECLARE_GPU_STAT_NAMED() [7/10]

DECLARE_GPU_STAT_NAMED ( GTAO_Upsample  ,
TEXT("GTAO Upsample"  
)

◆ DECLARE_GPU_STAT_NAMED() [8/10]

DECLARE_GPU_STAT_NAMED ( SSAO  ,
TEXT("ScreenSpace AO"  
)

◆ DECLARE_GPU_STAT_NAMED() [9/10]

DECLARE_GPU_STAT_NAMED ( SSAOSetup  ,
TEXT("ScreenSpace AO Setup"  
)

◆ DECLARE_GPU_STAT_NAMED() [10/10]

DECLARE_GPU_STAT_NAMED ( SSAOSmooth  ,
TEXT("SSAO smooth"  
)

◆ END_SHADER_PARAMETER_STRUCT()

END_SHADER_PARAMETER_STRUCT ( )

Encapsulates the post processing ambient occlusion pixel shader.

Parameters
bAOSetupAsInputtrue:use AO setup instead of full resolution depth and normal
bDoUpsampletrue:we have lower resolution pass data we need to upsample, false otherwise
ShaderQuality0..4, 0:low 4:high

◆ GetHZBParametersForAO()

FHZBParameters GetHZBParametersForAO ( FRDGBuilder GraphBuilder,
const FViewInfo View,
FIntPoint  InputTextureSize,
EAOTechnique  AOTechnique 
)

◆ GetScreenSpaceAOFallback()

FRDGTextureRef GetScreenSpaceAOFallback ( const FRDGSystemTextures SystemTextures)

◆ GetScreenSpaceAOTextureDesc()

FRDGTextureDesc GetScreenSpaceAOTextureDesc ( ERHIFeatureLevel::Type  FeatureLevel,
FIntPoint  Extent 
)

◆ IMPLEMENT_GLOBAL_SHADER() [1/10]

IMPLEMENT_GLOBAL_SHADER ( FAmbientOcclusionCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"MainCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [2/10]

IMPLEMENT_GLOBAL_SHADER ( FAmbientOcclusionPS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"MainPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [3/10]

IMPLEMENT_GLOBAL_SHADER ( FAmbientOcclusionSetupPS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"MainSetupPS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [4/10]

IMPLEMENT_GLOBAL_SHADER ( FAmbientOcclusionSmoothCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"MainSSAOSmoothCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [5/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOHorizonSearchAndIntegrateCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"GTAOCombinedCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [6/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOHorizonSearchCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"HorizonSearchCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [7/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOInnerIntegratePS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"GTAOInnerIntegratePS"  ,
SF_Pixel   
)

◆ IMPLEMENT_GLOBAL_SHADER() [8/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOSpatialFilterCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"GTAOSpatialFilterCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [9/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOTemporalFilterCS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"GTAOTemporalFilterCS"  ,
SF_Compute   
)

◆ IMPLEMENT_GLOBAL_SHADER() [10/10]

IMPLEMENT_GLOBAL_SHADER ( FGTAOUpsamplePS  ,
"/Engine/Private/PostProcessAmbientOcclusion.usf"  ,
"GTAOUpsamplePS"  ,
SF_Pixel   
)