UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DistanceFieldAmbientOcclusion.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 DistanceFieldAmbientOcclusion.h
5=============================================================================*/
6
7#pragma once
8
9#include "CoreTypes.h"
11
13class FRDGBuffer;
14class FRDGBuilder;
15class FRDGTexture;
16class FScene;
19class FViewInfo;
20struct FSceneTextures;
24template <typename TUniformStruct> using TRDGUniformBufferRef = TRDGUniformBuffer<TUniformStruct>*;
25
28
30
31extern FIntPoint GetBufferSizeForAO(const FViewInfo& View);
32
42
46
51
54
58
61
62static const int32 CulledTileDataStride = 2;
63static const int32 ConeTraceObjectsThreadGroupSize = 64;
64
66
72
74
76{
77 extern float GAOMaxViewDistance;
78 // Scene depth stored in fp16 alpha, must fade out before it runs out of range
79 // The fade extends past GAOMaxViewDistance a bit
80 return FMath::Min(GAOMaxViewDistance, 65000.0f);
81}
82
90
98
99namespace DistanceField
100{
102 FDFAOUpsampleParameters SetupAOUpsampleParameters(const FViewInfo& View, FRDGTextureRef DistanceFieldAOBentNormal);
103};
104
106
107extern bool ShouldRenderDeferredDynamicSkyLight(const FScene* Scene, const FSceneViewFamily& ViewFamily);
108extern bool ShouldDoReflectionEnvironment(const FScene* Scene, const FSceneViewFamily& ViewFamily);
109
111extern void BuildTileObjectLists(FRDGBuilder& GraphBuilder,
112 const FScene& Scene,
113 const FViewInfo& View,
114 const FSceneTextures& SceneTextures,
115 FRDGBufferRef ObjectIndirectArguments,
118 FRDGTextureRef DistanceFieldNormal,
119 const FDistanceFieldAOParameters& Parameters);
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
float GAOMaxViewDistance
Definition DistanceFieldAmbientOcclusion.cpp:85
float GetMaxAOViewDistance()
Definition DistanceFieldAmbientOcclusion.h:75
void TrackGPUProgress(FRHICommandListImmediate &RHICmdList, uint32 DebugId)
void GetSpacedVectors(uint32 FrameNumber, TArray< FVector, TInlineAllocator< 9 > > &OutVectors)
Definition DistanceFieldAmbientOcclusion.cpp:230
void BuildTileObjectLists(FRDGBuilder &GraphBuilder, const FScene &Scene, const FViewInfo &View, const FSceneTextures &SceneTextures, FRDGBufferRef ObjectIndirectArguments, const FDistanceFieldCulledObjectBufferParameters &CulledObjectBufferParameters, FTileIntersectionParameters TileIntersectionParameters, FRDGTextureRef DistanceFieldNormal, const FDistanceFieldAOParameters &Parameters)
Definition DistanceFieldObjectCulling.cpp:346
FIntPoint GetTileListGroupSizeForView(const FViewInfo &View)
Definition DistanceFieldObjectCulling.cpp:338
void TileIntersectionModifyCompilationEnvironment(EShaderPlatform Platform, FShaderCompilerEnvironment &OutEnvironment)
Definition DistanceFieldAmbientOcclusion.cpp:173
bool ShouldDoReflectionEnvironment(const FScene *Scene, const FSceneViewFamily &ViewFamily)
Definition DistanceFieldAmbientOcclusion.cpp:708
const int32 GAODownsampleFactor
Definition DistanceFieldAmbientOcclusion.h:27
const uint32 UpdateObjectsGroupSize
Definition DistanceFieldObjectManagement.cpp:177
void CullObjectsToView(FRDGBuilder &GraphBuilder, const FScene &Scene, const FViewInfo &View, const FDistanceFieldAOParameters &Parameters, FDistanceFieldCulledObjectBufferParameters &CulledObjectBuffers)
Definition DistanceFieldObjectCulling.cpp:72
bool ShouldRenderDeferredDynamicSkyLight(const FScene *Scene, const FSceneViewFamily &ViewFamily)
Definition DistanceFieldAmbientOcclusion.cpp:696
FIntPoint GetBufferSizeForAO(const FViewInfo &View)
Definition DistanceFieldAmbientOcclusion.cpp:182
EShaderPlatform
Definition RHIShaderPlatform.h:11
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define SHADER_PARAMETER_RDG_BUFFER_UAV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1812
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition DistanceFieldAmbientOcclusion.h:34
float ObjectMaxOcclusionDistance
Definition DistanceFieldAmbientOcclusion.h:37
float GlobalMaxOcclusionDistance
Definition DistanceFieldAmbientOcclusion.h:36
float Contrast
Definition DistanceFieldAmbientOcclusion.h:38
Definition RenderGraphResources.h:1321
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition RHICommandList.h:4626
Definition SceneView.h:2212
Definition ScenePrivate.h:2875
Definition SceneRendering.h:1132
Definition Array.h:670
Definition RenderGraphResources.h:251
Definition ContainerAllocationPolicies.h:894
Definition DistanceFieldAtlas.h:36
FAOParameters SetupAOShaderParameters(const FDistanceFieldAOParameters &AOParameters)
Definition DistanceFieldAmbientOcclusion.cpp:275
FDFAOUpsampleParameters SetupAOUpsampleParameters(const FViewInfo &View, FRDGTextureRef DistanceFieldAOBentNormal)
Definition DistanceFieldAmbientOcclusion.cpp:289
Definition SceneTextures.h:110
Definition ShaderCore.h:544
Definition IntPoint.h:25