UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TemporalAA.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "ScreenPass.h"
8#include "TemporalUpscaler.h"
9
12
13
16{
17 // TAA is disabled.
19
20 // Uses old UE4's Temporal AA maintained for Gen4 consoles
21 TAA,
22
23 // Uses Temporal Super Resolution
24 TSR,
25
26 // Uses third party View.Family->GetTemporalUpscalerInterface()
28};
29
30
33{
34 // Permutations for main scene color TAA.
35 Main,
38
39 // Permutation for SSR noise accumulation.
41
42 // Permutation for light shaft noise accumulation.
44
45 // Permutation for DOF that handle Coc.
48
49 // Permutation for hair.
50 Hair,
51
52 MAX
53};
54
55static FORCEINLINE bool IsTAAUpsamplingConfig(ETAAPassConfig Pass)
56{
58}
59
60static FORCEINLINE bool IsMainTAAConfig(ETAAPassConfig Pass)
61{
63}
64
65static FORCEINLINE bool IsDOFTAAConfig(ETAAPassConfig Pass)
66{
68}
69
72{
73 // Anti aliased scene color.
74 // Can have alpha channel, or CoC for DOF.
76
77 // Optional information that get anti aliased, such as separate CoC for DOF.
79
80 // Optional scene color output at half the resolution.
82};
83
85enum class ETAAQuality : uint8
86{
87 Low,
88 Medium,
89 High,
91 MAX
92};
93
96{
97 // TAA pass to run.
99
100 // Whether to use the faster shader permutation.
102
103 // Whether output texture should be render targetable.
105
106 // Whether downsampled (box filtered, half resolution) frame should be written out.
107 bool bDownsample = false;
109
110 // Viewport rectangle of the input and output of TAA at ResolutionDivisor == 1.
113
114 // Resolution divisor.
116
117 // Full resolution depth and velocity textures to reproject the history.
120
121 // Anti aliased scene color.
122 // Can have alpha channel, or CoC for DOF.
124
125 // Optional information that get anti aliased, such as separate CoC for DOF.
127
128 // If 1, a bilateral filter based on the circle-of-confusion for depth-of-field is used to reject history.
129 // If 0, this is disabled.
131
132
134 : InputViewRect(View.ViewRect)
135 , OutputViewRect(View.ViewRect)
136 { }
137
138
139 // Customizes the view rectangles for input and output.
141 {
143
144 InputViewRect = View.ViewRect;
145
146 // When upsampling, always upsampling to top left corner to reuse same RT as before upsampling.
147 if (IsTAAUpsamplingConfig(Pass))
148 {
151 }
152 else
153 {
155 }
156 }
157
160
162 bool Validate() const;
163};
164
167 FRDGBuilder& GraphBuilder,
168 const FViewInfo& View,
169 const FTAAPassParameters& Inputs,
170 const FTemporalAAHistory& InputHistory,
172
175
178
180bool NeedTSRAntiFlickeringPass(const FViewInfo& View);
181
183
185bool IsVisualizeTSREnabled(const FViewInfo& View);
186
189
191
193
195
225
227 FRDGBuilder& GraphBuilder,
228 const FViewInfo& View,
230
233{
234 // Permutations for main scene color TSR.
235 Main, // Temporal accumulation without upscaling
236 MainUpsampling, // Temporal accumulation with upsampling
237
238 MAX
239};
240
278
280
282 FRDGBuilder& GraphBuilder,
283 const FViewInfo& View,
286 const FTSRHistory& InputHistory,
288
290 FRDGBuilder& GraphBuilder,
291 const FViewInfo& View,
293
296{
297 // [Optional] Render to the specified output. If invalid, a new texture is created and returned.
299
300 // Scene color.
302
303 // Temporal upscaler used and its inputs and outputs.
308};
309
#define FORCEINLINE
Definition AndroidPlatform.h:140
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
FInt32Point FIntPoint
Definition MathFwd.h:124
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
EShaderPlatform
Definition RHIShaderPlatform.h:11
bool IsTSRLensDistortionEnabled(EShaderPlatform ShaderPlatform)
Definition TemporalSuperResolution.cpp:1641
RENDERER_API FTAAOutputs AddTemporalAAPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FTAAPassParameters &Inputs, const FTemporalAAHistory &InputHistory, FTemporalAAHistory *OutputHistory)
Definition TemporalAA.cpp:571
FDefaultTemporalUpscaler::FOutputs AddGen4MainTemporalAAPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FDefaultTemporalUpscaler::FInputs &PassInputs)
Definition TemporalAA.cpp:999
bool IsTSRLensDistortionSupported(EShaderPlatform ShaderPlatform)
Definition TemporalSuperResolution.cpp:1626
FTSRPassConfig GetTSRMainPassConfig(const FViewInfo &View)
Definition TemporalSuperResolution.cpp:1803
EMainTAAPassConfig GetMainTAAPassConfig(const FViewInfo &View)
Definition TemporalAA.cpp:1090
FDefaultTemporalUpscaler::FOutputs AddTemporalSuperResolutionPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FDefaultTemporalUpscaler::FInputs &PassInputs, const FTSRPassConfig &PassConfig, const FTSRHistory &InputHistory, FTSRHistory &OutputHistory)
Definition TemporalSuperResolution.cpp:1846
FScreenPassTexture AddTSRMainAntiFlickeringPass(FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap, FScreenPassTexture SceneColor, const FSceneTextures &SceneTextures)
Definition TemporalSuperResolution.cpp:1775
FDefaultTemporalUpscaler::FOutputs AddMainTemporalSuperResolutionPasses(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FDefaultTemporalUpscaler::FInputs &PassInputs)
Definition TemporalSuperResolution.cpp:1784
bool NeedTSRThinGeometryDetectionPass(const FViewInfo &View)
Definition TemporalSuperResolution.cpp:1658
EMainTAAPassConfig
Definition TemporalAA.h:16
void AddTSRMeasureThinGeometryCoverage(FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap, const FSceneTextures &SceneTextures, const FScreenPassTexture &ThinGeometryCoverage)
Definition TemporalSuperResolution.cpp:1732
FScreenPassTexture AddVisualizeTemporalUpscalerPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, const FVisualizeTemporalUpscalerInputs &Inputs)
Definition VisualizeTemporalUpscaler.cpp:15
FScreenPassTexture AddTSRMeasureFlickeringLuma(FRDGBuilder &GraphBuilder, FGlobalShaderMap *ShaderMap, FScreenPassTexture SceneColor)
Definition TemporalSuperResolution.cpp:1692
ETSRPassConfig
Definition TemporalAA.h:233
ETAAPassConfig
Definition TemporalAA.h:33
ETAAQuality
Definition TemporalAA.h:86
bool NeedTSRAntiFlickeringPass(const FViewInfo &View)
Definition TemporalSuperResolution.cpp:1652
bool IsVisualizeTSREnabled(const FViewInfo &View)
Definition TemporalSuperResolution.cpp:1680
uint8_t uint8
Definition binka_ue_file_header.h:8
Definition GlobalShader.h:173
Definition RenderGraphBuilder.h:49
Definition RenderGraphResources.h:571
Definition SceneRendering.h:1132
RENDERER_API FIntPoint GetSecondaryViewRectSize() const
Definition SceneRendering.cpp:1263
FIntRect ViewRect
Definition SceneRendering.h:1137
Definition TemporalUpscaler.h:12
Definition TemporalAA.h:200
FScreenPassTexture SceneColor
Definition TemporalAA.h:208
FLensDistortionLUT LensDistortionLUT
Definition TemporalAA.h:213
FTranslucencyPassResources PostDOFTranslucencyResources
Definition TemporalAA.h:211
bool bGenerateSceneColorHalfRes
Definition TemporalAA.h:202
bool bGenerateOutputMip1
Definition TemporalAA.h:205
FScreenPassTexture FlickeringInputTexture
Definition TemporalAA.h:212
bool bGenerateSceneColorQuarterRes
Definition TemporalAA.h:203
FScreenPassTexture SceneVelocity
Definition TemporalAA.h:210
bool bAllowFullResSlice
Definition TemporalAA.h:201
FScreenPassTexture SceneDepth
Definition TemporalAA.h:209
bool bGenerateVelocityFlattenTextures
Definition TemporalAA.h:206
bool bGenerateSceneColorEighthRes
Definition TemporalAA.h:204
EPixelFormat DownsampleOverrideFormat
Definition TemporalAA.h:207
Definition TemporalAA.h:217
FScreenPassTextureSlice FullRes
Definition TemporalAA.h:218
FScreenPassTextureSlice EighthRes
Definition TemporalAA.h:221
FScreenPassTextureSlice QuarterRes
Definition TemporalAA.h:220
FScreenPassTextureSlice HalfRes
Definition TemporalAA.h:219
FVelocityFlattenTextures VelocityFlattenTextures
Definition TemporalAA.h:222
Definition TemporalAA.h:198
Definition LensDistortion.h:8
Definition SceneTextures.h:110
Definition ScreenPass.h:83
Definition ScreenPass.h:65
Definition ScreenPass.h:41
Definition TemporalAA.h:72
FRDGTexture * DownsampledSceneColor
Definition TemporalAA.h:81
FRDGTexture * SceneColor
Definition TemporalAA.h:75
FRDGTexture * SceneMetadata
Definition TemporalAA.h:78
Definition TemporalAA.h:96
bool bDownsample
Definition TemporalAA.h:107
bool Validate() const
Definition TemporalAA.cpp:558
int32 ResolutionDivisor
Definition TemporalAA.h:115
FRDGTexture * SceneMetadataInput
Definition TemporalAA.h:126
ETAAPassConfig Pass
Definition TemporalAA.h:98
FORCEINLINE void SetupViewRect(const FViewInfo &View, int32 InResolutionDivisor=1)
Definition TemporalAA.h:140
FIntRect OutputViewRect
Definition TemporalAA.h:112
FRDGTexture * SceneDepthTexture
Definition TemporalAA.h:118
FTAAPassParameters(const FViewInfo &View)
Definition TemporalAA.h:133
float CoCBilateralFilterStrength
Definition TemporalAA.h:130
bool bOutputRenderTargetable
Definition TemporalAA.h:104
ETAAQuality Quality
Definition TemporalAA.h:101
FIntRect InputViewRect
Definition TemporalAA.h:111
FRDGTexture * SceneVelocityTexture
Definition TemporalAA.h:119
FIntPoint GetOutputExtent() const
Definition TemporalAA.cpp:538
EPixelFormat DownsampleOverrideFormat
Definition TemporalAA.h:108
FRDGTexture * SceneColorInput
Definition TemporalAA.h:123
Definition SceneRendering.h:873
Definition TemporalAA.h:242
float ThinGeometryErrorMultiplier
Definition TemporalAA.h:257
float HistorySampleCount
Definition TemporalAA.h:264
int32 HistoryUpdateQuality
Definition TemporalAA.h:265
ETSRPassConfig Pass
Definition TemporalAA.h:276
float HistoryRejectionSampleCount
Definition TemporalAA.h:262
float ShadingRejectionFlickeringMaxParallaxVelocity
Definition TemporalAA.h:253
float VelocityWeightClampingPixelSpeed
Definition TemporalAA.h:272
bool ShadingRejectionFlickering
Definition TemporalAA.h:249
float ReprojectionFieldAntiAliasPixelSpeed
Definition TemporalAA.h:269
float VelocityWeightClampingSampleCount
Definition TemporalAA.h:271
bool ResurrectionEnable
Definition TemporalAA.h:243
int32 HistoryR11G11B10
Definition TemporalAA.h:266
int32 AlphaChannel
Definition TemporalAA.h:247
int32 Visualize
Definition TemporalAA.h:274
float ShadingRejectionFlickeringFrameRateCap
Definition TemporalAA.h:251
int32 ResurrectionPersistentFrameCount
Definition TemporalAA.h:244
int32 ResurrectionPersistentFrameInterval
Definition TemporalAA.h:245
int32 RejectionAntiAliasingQuality
Definition TemporalAA.h:260
bool ThinGeometryDetectionEnable
Definition TemporalAA.h:256
int32 ShadingRejectionFlickeringAdjustToFrameRate
Definition TemporalAA.h:250
float ShadingRejectionExposureOffsetFactor
Definition TemporalAA.h:254
float ShadingRejectionFlickeringPeriod
Definition TemporalAA.h:252
float HistoryScreenPercentage
Definition TemporalAA.h:263
int32 ReprojectionField
Definition TemporalAA.h:268
Definition SceneRendering.h:840
Definition TranslucentPassResource.h:28
Definition PostProcessMotionBlur.h:58
Definition TemporalAA.h:296
FDefaultTemporalUpscaler::FInputs Inputs
Definition TemporalAA.h:306
const UE::Renderer::Private::ITemporalUpscaler * UpscalerUsed
Definition TemporalAA.h:305
FDefaultTemporalUpscaler::FOutputs Outputs
Definition TemporalAA.h:307
EMainTAAPassConfig TAAConfig
Definition TemporalAA.h:304
FScreenPassTexture SceneColor
Definition TemporalAA.h:301
FScreenPassRenderTarget OverrideOutput
Definition TemporalAA.h:298
Definition IntPoint.h:25
IntPointType Max
Definition IntRect.h:37
IntPointType Min
Definition IntRect.h:34