UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SceneTexturesConfig.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "GBufferInfo.h"
8#include "SceneUtils.h"
9
12
15 // Scene Color / Depth / Partial Depth
16 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneColorTexture)
17 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneDepthTexture)
19
20 // GBuffer
29
30 // SSAO
32
33 // Custom Depth / Stencil
34 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, CustomDepthTexture)
36
37 // Misc
40
42 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneColorTexture)
44 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneDepthTexture)
49 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, CustomDepthTexture)
54 SHADER_PARAMETER_RDG_TEXTURE(Texture2D, SceneVelocityTexture)
56 // GBuffer
71
76
78
80
81extern ENGINE_API void GetSceneColorFormatAndCreateFlags(ERHIFeatureLevel::Type FeatureLevel, bool bRequiresAlphaChannel, ETextureCreateFlags ExtraSceneColorCreateFlags, uint32 NumSamples, bool bMemorylessMSAA, EPixelFormat& SceneColorFormat, ETextureCreateFlags& SceneColorCreateFlags);
82
84{
86 None = 0,
87
89 Depth = 1 << 0,
90
92 CustomDepth = 1 << 1,
93
96};
97
108
114{
115 // Sets the persistent global config instance.
116 static void Set(const FSceneTexturesConfig& Config)
117 {
118 GlobalInstance = Config;
119 }
120
121 // Gets the persistent global config instance. If unset, will return a default constructed instance.
122 static const FSceneTexturesConfig& Get()
123 {
124 return GlobalInstance;
125 }
126
138
139 ENGINE_API void Init(const FSceneTexturesConfigInitSettings& InitSettings);
142 ENGINE_API void SetupMobileGBufferFlags(bool bRequiresMultiPass);
143
144 // Number of MSAA samples in the Editor.Primitive<Color/Depth> textures. See also r.MSAA.CompositingSampleCount
146
147 inline bool IsValid() const
148 {
150 }
151
152 // Extractions to queue for after execution of the render graph.
154
155 // Enums describing the shading / feature / platform configurations used to construct the config.
159
160 // Extent of all full-resolution textures.
162
163 // Downsample factors to divide against the full resolution texture extent.
165
166 // Number of MSAA samples used by color and depth targets.
168
169 // Number of MSAA sampled used by the editor primitive composition targets.
171
172 // Pixel format to use when creating scene color.
174
175 // Create flags when creating scene color / depth textures
178
179 // Flags passed in from initializer
182
183 // Optimized clear values to use for color / depth textures.
186
187 // (Deferred Shading) Dynamic GBuffer configuration used to control allocation and slotting of base pass textures.
190
191 // (VR) True if scene color and depth should be multi-view allocated.
193
194 // True if platform is using GBuffers.
196
197 // (Mobile) True if the platform should write depth content back to memory.
199
200 // (Mobile) True if platform requires SceneDepthAux target
202
203 // (Mobile) True if SceneDepthAux should use a precise pixel format
205
206 // (Mobile) True if Custom MSAA resolve subpass is enabled
208
209 // (Mobile) True if CustomStencil are sampled in a shader
211
212 // (Mobile) True if MSAA targets can be memoryless
214
215 // (XR) True if we can request an XR depth swapchain
217
218 // True if we require an alpha channel for scene color
220
221 // (Mobile XR) Number of render target layers in mobile multi view.
223
224private:
225 static ENGINE_API FSceneTexturesConfig GlobalInstance;
226};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EGBufferLayout
Definition GBufferInfo.h:107
@ GBL_Num
Definition GBufferInfo.h:111
@ GBL_Default
Definition GBufferInfo.h:108
void Init()
Definition LockFreeList.h:4
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
ETextureCreateFlags
Definition RHIDefinitions.h:1091
EShaderPlatform
Definition RHIShaderPlatform.h:11
@ SP_PCD3D_SM5
Definition RHIShaderPlatform.h:12
ENGINE_API void GetSceneColorFormatAndCreateFlags(ERHIFeatureLevel::Type FeatureLevel, bool bRequiresAlphaChannel, ETextureCreateFlags ExtraSceneColorCreateFlags, uint32 NumSamples, bool bMemorylessMSAA, EPixelFormat &SceneColorFormat, ETextureCreateFlags &SceneColorCreateFlags)
Definition SceneTexturesConfig.cpp:142
ENGINE_API FSceneTextureShaderParameters GetSceneTextureShaderParameters(TRDGUniformBufferRef< FSceneTextureUniformParameters > UniformBuffer)
Definition SceneTexturesConfig.cpp:19
ESceneTextureExtracts
Definition SceneTexturesConfig.h:84
EShadingPath
Definition SceneUtils.h:24
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define SHADER_PARAMETER_RDG_UNIFORM_BUFFER(StructType, MemberName)
Definition ShaderParameterMacros.h:1823
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER_RDG_TEXTURE_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1764
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition SceneView.h:2212
Definition RenderGraphResources.h:251
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
@ SM5
Definition RHIFeatureLevel.h:42
@ Num
Definition RHIFeatureLevel.h:54
Definition RHIResources.h:246
static RHI_API const FClearValueBinding Black
Definition RHIResources.h:359
static RHI_API const FClearValueBinding DepthFar
Definition RHIResources.h:366
Definition GBufferInfo.h:273
Definition GBufferInfo.h:294
Definition RHIResources.h:4547
Definition SceneTextures.h:52
Definition SceneTexturesConfig.h:99
ETextureCreateFlags ExtraSceneDepthCreateFlags
Definition SceneTexturesConfig.h:106
ETextureCreateFlags ExtraSceneColorCreateFlags
Definition SceneTexturesConfig.h:105
bool bRequiresAlphaChannel
Definition SceneTexturesConfig.h:103
FIntPoint Extent
Definition SceneTexturesConfig.h:101
ERHIFeatureLevel::Type FeatureLevel
Definition SceneTexturesConfig.h:100
bool bSupportsXRTargetManagerDepthAlloc
Definition SceneTexturesConfig.h:104
bool bRequireMultiView
Definition SceneTexturesConfig.h:102
Definition SceneTexturesConfig.h:114
ETextureCreateFlags ExtraSceneColorCreateFlags
Definition SceneTexturesConfig.h:180
FSceneTexturesConfig()
Definition SceneTexturesConfig.h:127
FGBufferParams GBufferParams[GBL_Num]
Definition SceneTexturesConfig.h:188
ENGINE_API void SetupMobileGBufferFlags(bool bRequiresMultiPass)
Definition SceneTexturesConfig.cpp:358
uint32 MobileMultiViewRenderTargetNumLayers
Definition SceneTexturesConfig.h:222
uint32 bKeepDepthContent
Definition SceneTexturesConfig.h:198
ENGINE_API uint32 GetGBufferRenderTargetsInfo(FGraphicsPipelineRenderTargetsInfo &RenderTargetsInfo, EGBufferLayout Layout=GBL_Default) const
Definition SceneTexturesConfig.cpp:369
bool IsValid() const
Definition SceneTexturesConfig.h:147
ENGINE_API void BuildSceneColorAndDepthFlags()
Definition SceneTexturesConfig.cpp:363
FClearValueBinding DepthClearValue
Definition SceneTexturesConfig.h:185
uint32 NumSamples
Definition SceneTexturesConfig.h:167
uint32 EditorPrimitiveNumSamples
Definition SceneTexturesConfig.h:170
static const FSceneTexturesConfig & Get()
Definition SceneTexturesConfig.h:122
EShadingPath ShadingPath
Definition SceneTexturesConfig.h:156
FGBufferBindings GBufferBindings[GBL_Num]
Definition SceneTexturesConfig.h:189
uint32 SmallDepthDownsampleFactor
Definition SceneTexturesConfig.h:164
uint32 bCustomResolveSubpass
Definition SceneTexturesConfig.h:207
static ENGINE_API uint32 GetEditorPrimitiveNumSamples(ERHIFeatureLevel::Type FeatureLevel)
Definition SceneTexturesConfig.cpp:193
uint32 bIsUsingGBuffers
Definition SceneTexturesConfig.h:195
uint32 bSamplesCustomStencil
Definition SceneTexturesConfig.h:210
ETextureCreateFlags DepthCreateFlags
Definition SceneTexturesConfig.h:177
ETextureCreateFlags ExtraSceneDepthCreateFlags
Definition SceneTexturesConfig.h:181
ERHIFeatureLevel::Type FeatureLevel
Definition SceneTexturesConfig.h:157
uint32 bPreciseDepthAux
Definition SceneTexturesConfig.h:204
uint32 bSupportsXRTargetManagerDepthAlloc
Definition SceneTexturesConfig.h:216
uint32 bRequireMultiView
Definition SceneTexturesConfig.h:192
EShaderPlatform ShaderPlatform
Definition SceneTexturesConfig.h:158
uint32 bRequiresDepthAux
Definition SceneTexturesConfig.h:201
ETextureCreateFlags ColorCreateFlags
Definition SceneTexturesConfig.h:176
bool bRequiresAlphaChannel
Definition SceneTexturesConfig.h:219
FClearValueBinding ColorClearValue
Definition SceneTexturesConfig.h:184
uint32 bMemorylessMSAA
Definition SceneTexturesConfig.h:213
FIntPoint Extent
Definition SceneTexturesConfig.h:161
ESceneTextureExtracts Extracts
Definition SceneTexturesConfig.h:153
static void Set(const FSceneTexturesConfig &Config)
Definition SceneTexturesConfig.h:116
EPixelFormat ColorFormat
Definition SceneTexturesConfig.h:173
Definition IntPoint.h:25
static const TIntPoint ZeroValue
Definition IntPoint.h:45