UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FinalPostProcessSettings.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Engine/Scene.h"
7#include "BlendableManager.h"
8
9struct FImagePixelPipe;
10
13class UTexture;
14
17{
18public:
37
50
52 {
53 // 0..1
54 float Weight;
55 // can be 0
57 };
58
59 // Updated existing one or creates a new one
60 // this allows to combined volumes for fading between them but also to darken/disable volumes in some areas
61 void UpdateEntry(const FCubemapEntry &Entry, float Weight)
62 {
63 bool Existing = false;
64 // Always verify the index is valid since elements can be removed!
65 for(int32 i = 0; ContributingCubemaps.IsValidIndex(i); ++i)
66 {
68
69 if(Local.AmbientCubemap == Entry.AmbientCubemap)
70 {
72 Existing = true;
73 }
74 else
75 {
76 Local.AmbientCubemapTintMulScaleValue *= 1.0f - Weight;
77 }
78
79 if(Local.AmbientCubemapTintMulScaleValue.IsAlmostBlack())
80 {
82 i--; // Maintain same index in the loop after loop increment since we removed an element.
83 continue; // Not strictly necessary but protect against future code using i incorrectly.
84 }
85 }
86
87 if( !Existing )
88 {
89 // We didn't find the entry previously, so we need to Lerp up from zero.
92 if(!WeightedEntry.AmbientCubemapTintMulScaleValue.IsAlmostBlack()) // Only bother to add it if the lerped value isn't near-black.
93 {
95 }
96 }
97 }
98
99 // @param InTexture - must not be 0
100 // @param Weight - 0..1
102 {
104 check(Weight >= 0.0f && Weight <= 1.0f);
105
106 if(Weight > 254.0f/255.0f || !ContributingLUTs.Num())
107 {
109 return;
110 }
111
112 for(uint32 i = 0; i < (uint32)ContributingLUTs.Num(); ++i)
113 {
114 ContributingLUTs[i].Weight *= 1.0f - Weight;
115 }
116
118 if(ExistingIndex == 0xffffffff)
119 {
121 }
122 else
123 {
125 }
126 }
127
134 {
135 check(Weight >= 0.0f && Weight <= 1.0f);
136
137 FLUTBlenderEntry Entry;
138
139 Entry.LUTTexture = Texture;
140 Entry.Weight = Weight;
141
142 ContributingLUTs.Add(Entry);
143 }
144
147 {
148 for(uint32 i = 0; i < (uint32)ContributingLUTs.Num(); ++i)
149 {
150 if(ContributingLUTs[i].LUTTexture == Tex)
151 {
152 return i;
153 }
154 }
155
156 return 0xffffffff;
157 }
158
160 {
161 // intentionally no deallocations
162 ContributingLUTs.Reset();
163
164 PushLUT(Texture, 1.0f);
165 }
166
167 // was not merged during blending unlike e.g. BloomThreshold
170
171 // List of materials to use in the buffer visualization overview
173
174 // Material to use for calibration color visualization
176
177 // Material to use for debug grayscale visualization
179
180 // Material to use for debug custom post-processing visualization
182
183 // Material to use for rendering high res screenshot with mask. Post process expects this material to be set all the time.
185
186 // Material to use for rendering just the high res screenshot mask. Post process expects this material to be set all the time.
188
189 // Material to use for rendering the high resolution screenshot capture region. Post processing only draws the region if this material is set.
191
192 // Current buffer visualization dumping settings
195
196#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
197 // Optional selected buffer in the buffer visualization overview
200#endif
201
207
208 // Maintains a container with IBlendableInterface objects and their data
210};
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
#define UE_BUILD_TEST
Definition Build.h:17
#define UE_BUILD_SHIPPING
Definition Build.h:20
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
if(Failed) console_printf("Failed.\n")
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition BlendableManager.h:31
Definition FinalPostProcessSettings.h:17
FString BufferVisualizationDumpBaseFilename
Definition FinalPostProcessSettings.h:194
FFinalPostProcessSettings()
Definition FinalPostProcessSettings.h:19
UMaterialInterface * VisualizeCalibrationGrayscaleMaterial
Definition FinalPostProcessSettings.h:178
UMaterialInterface * VisualizeCalibrationColorMaterial
Definition FinalPostProcessSettings.h:175
FString BufferVisualizationOverviewSelectedTargetMaterialName
Definition FinalPostProcessSettings.h:199
uint32 FindIndex(UTexture *Tex) const
Definition FinalPostProcessSettings.h:146
void SetLUT(UTexture *Texture)
Definition FinalPostProcessSettings.h:159
bool bBufferVisualizationOverviewTargetIsSelected
Definition FinalPostProcessSettings.h:198
void UpdateEntry(const FCubemapEntry &Entry, float Weight)
Definition FinalPostProcessSettings.h:61
UMaterialInterface * HighResScreenshotMaskMaterial
Definition FinalPostProcessSettings.h:187
TArray< FLUTBlenderEntry > ContributingLUTs
Definition FinalPostProcessSettings.h:169
FBlendableManager BlendableManager
Definition FinalPostProcessSettings.h:209
UMaterialInstanceDynamic * HighResScreenshotCaptureRegionMaterial
Definition FinalPostProcessSettings.h:190
void PushLUT(UTexture *Texture, float Weight)
Definition FinalPostProcessSettings.h:133
UMaterialInterface * VisualizeCalibrationCustomMaterial
Definition FinalPostProcessSettings.h:181
TMap< FName, TSharedPtr< FImagePixelPipe, ESPMode::ThreadSafe > > BufferVisualizationPipes
Definition FinalPostProcessSettings.h:206
TArray< UMaterialInterface * > BufferVisualizationOverviewMaterials
Definition FinalPostProcessSettings.h:172
UMaterialInterface * HighResScreenshotMaterial
Definition FinalPostProcessSettings.h:184
bool bBufferVisualizationDumpRequired
Definition FinalPostProcessSettings.h:193
void LerpTo(UTexture *InTexture, float Weight)
Definition FinalPostProcessSettings.h:101
TArray< FCubemapEntry > ContributingCubemaps
Definition FinalPostProcessSettings.h:168
Definition Array.h:670
Definition UnrealString.h.inl:34
Definition MaterialInstanceDynamic.h:15
Definition MaterialInterface.h:296
Definition Texture.h:1219
@ false
Definition radaudio_common.h:23
Definition FinalPostProcessSettings.h:39
FLinearColor AmbientCubemapTintMulScaleValue
Definition FinalPostProcessSettings.h:41
class UTexture * AmbientCubemap
Definition FinalPostProcessSettings.h:43
FCubemapEntry()
Definition FinalPostProcessSettings.h:45
Definition FinalPostProcessSettings.h:52
float Weight
Definition FinalPostProcessSettings.h:54
class UTexture * LUTTexture
Definition FinalPostProcessSettings.h:56
Definition ImageWriteStream.h:21
Definition Color.h:48
static constexpr UE_FORCEINLINE_HINT T Lerp(const T &A, const T &B, const U &Alpha)
Definition UnrealMathUtility.h:1116
Definition Scene.h:693