UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LumenViewState.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 LumenViewState.h:
5=============================================================================*/
6
7#pragma once
8
10#include "SceneTexturesConfig.h"
11#include "Math/LFSR.h"
12
13const static int32 NumLumenDiffuseIndirectTextures = 2;
14// Must match shader
15const static int32 MaxVoxelClipmapLevels = 8;
16
18{
19public:
20
22
28
29 inline bool operator==(const FLumenGatherCvarState& Rhs) const
30 {
31 return TraceMeshSDFs == Rhs.TraceMeshSDFs &&
32 MeshSDFTraceDistance == Rhs.MeshSDFTraceDistance &&
33 SurfaceBias == Rhs.SurfaceBias &&
34 VoxelTracingMode == Rhs.VoxelTracingMode &&
35 DirectLighting == Rhs.DirectLighting;
36 }
37};
38
40{
41public:
60
70
84
85#if WITH_MGPU
87 {
88 #define TRANSFER_LUMEN_RESOURCE(NAME) \
89 if (NAME) OutTransfers.Add(FTransferResourceParams(NAME->GetRHI(), SourceGPUIndex, DestGPUIndex, false, false))
90
100
101 #undef TRANSFER_LUMEN_RESOURCE
102 }
103#endif // WITH_MGPU
104
105 uint64 GetGPUSizeBytes(bool bLogSizes) const;
106};
107
143
170
184
186{
187public:
190
191 // Only valid for Front Layer Transparency
194
198 FVector4f HistoryUVMinMax = FVector4f(0.0f, 0.0f, 0.0f, 0.0f);
199 FVector4f HistoryGatherUVMinMax = FVector4f(0.0f, 0.0f, 0.0f, 0.0f);
201
210
211#if WITH_MGPU
213 {
214 #define TRANSFER_LUMEN_RESOURCE(NAME) \
215 if (NAME) OutTransfers.Add(FTransferResourceParams(NAME->GetRHI(), SourceGPUIndex, DestGPUIndex, false, false))
216
219
222
223 #undef TRANSFER_LUMEN_RESOURCE
224 }
225#endif // WITH_MGPU
226
227 uint64 GetGPUSizeBytes(bool bLogSizes) const;
228};
229
231{
232public:
235 float Extent;
236
239
241
244
245 /* Distance between two probes. */
246 float CellSize;
247};
248
250{
251public:
254
256
257 float ClipmapWorldExtent = 0.0f;
260
263
271
273
280
298
299#if WITH_MGPU
301 {
302 #define TRANSFER_LUMEN_RESOURCE(NAME) \
303 if (NAME) OutTransfers.Add(FTransferResourceParams(NAME->GetRHI(), SourceGPUIndex, DestGPUIndex, false, false))
304
318
319 #undef TRANSFER_LUMEN_RESOURCE
320 }
321#endif // WITH_MGPU
322
323 uint64 GetGPUSizeBytes(bool bLogSizes) const;
324};
325
327{
328public:
329
335
336 // Translucency
339
342
357
358#if WITH_MGPU
360 {
361 #define TRANSFER_LUMEN_RESOURCE(NAME) \
362 if (NAME) OutTransfers.Add(FTransferResourceParams(NAME->GetRHI(), SourceGPUIndex, DestGPUIndex, false, false))
363
366
367 #undef TRANSFER_LUMEN_RESOURCE
368
369 ScreenProbeGatherState.AddCrossGPUTransfers(SourceGPUIndex, DestGPUIndex, OutTransfers);
370 ReflectionState.AddCrossGPUTransfers(SourceGPUIndex, DestGPUIndex, OutTransfers);
371 TranslucentReflectionState.AddCrossGPUTransfers(SourceGPUIndex, DestGPUIndex, OutTransfers);
372 RadianceCacheState.AddCrossGPUTransfers(SourceGPUIndex, DestGPUIndex, OutTransfers);
373 TranslucencyVolumeRadianceCacheState.AddCrossGPUTransfers(SourceGPUIndex, DestGPUIndex, OutTransfers);
374 }
375#endif // WITH_MGPU
376
377 uint64 GetGPUSizeBytes(bool bLogSizes) const;
378};
379
383 SHADER_PARAMETER(float, CachedLightingPreExposure)
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::Math::TIntRect< int32 > FIntRect
Definition MathFwd.h:133
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
FInt32Point FIntPoint
Definition MathFwd.h:124
#define SHADER_PARAMETER_RDG_BUFFER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1800
#define END_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1669
#define BEGIN_GLOBAL_SHADER_PARAMETER_STRUCT
Definition ShaderParameterMacros.h:1663
#define SHADER_PARAMETER_STRUCT(StructType, MemberName)
Definition ShaderParameterMacros.h:1847
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition LumenViewState.h:18
float MeshSDFTraceDistance
Definition LumenViewState.h:24
int32 VoxelTracingMode
Definition LumenViewState.h:26
int32 TraceMeshSDFs
Definition LumenViewState.h:23
float SurfaceBias
Definition LumenViewState.h:25
bool operator==(const FLumenGatherCvarState &Rhs) const
Definition LumenViewState.h:29
int32 DirectLighting
Definition LumenViewState.h:27
FLumenGatherCvarState()
Definition LumenDiffuseIndirect.cpp:22
Definition LumenViewState.h:327
TRefCountPtr< IPooledRenderTarget > TranslucencyVolume1
Definition LumenViewState.h:338
void SafeRelease()
Definition LumenViewState.h:343
FRadianceCacheState RadianceCacheState
Definition LumenViewState.h:340
FScreenProbeGatherTemporalState ScreenProbeGatherState
Definition LumenViewState.h:330
FRadianceCacheState TranslucencyVolumeRadianceCacheState
Definition LumenViewState.h:341
FReflectionTemporalState ReflectionState
Definition LumenViewState.h:332
FReflectionTemporalState TranslucentReflectionState
Definition LumenViewState.h:333
FReflectionTemporalState WaterReflectionState
Definition LumenViewState.h:334
FReSTIRGatherTemporalState ReSTIRGatherState
Definition LumenViewState.h:331
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:268
TRefCountPtr< IPooledRenderTarget > TranslucencyVolume0
Definition LumenViewState.h:337
Definition LumenViewState.h:231
FVector3d CornerWorldSpace
Definition LumenViewState.h:237
float CellSize
Definition LumenViewState.h:246
FVector3f CornerTranslatedWorldSpace
Definition LumenViewState.h:238
FVector VolumeUVOffset
Definition LumenViewState.h:243
float ProbeTMin
Definition LumenViewState.h:240
FVector Center
Definition LumenViewState.h:234
float Extent
Definition LumenViewState.h:235
Definition LumenViewState.h:250
TRefCountPtr< IPooledRenderTarget > FinalRadianceAtlas
Definition LumenViewState.h:267
TRefCountPtr< FRDGPooledBuffer > ProbeFreeList
Definition LumenViewState.h:276
TRefCountPtr< FRDGPooledBuffer > ProbeAllocator
Definition LumenViewState.h:274
TRefCountPtr< IPooledRenderTarget > DepthProbeAtlasTexture
Definition LumenViewState.h:272
TRefCountPtr< FRDGPooledBuffer > ProbeLastTracedFrame
Definition LumenViewState.h:278
float ClipmapWorldExtent
Definition LumenViewState.h:257
float ClipmapDistributionBase
Definition LumenViewState.h:258
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:249
float CachedLightingPreExposure
Definition LumenViewState.h:259
TRefCountPtr< IPooledRenderTarget > RadianceProbeIndirectionTexture
Definition LumenViewState.h:262
FRadianceCacheState()
Definition LumenViewState.h:252
TRefCountPtr< IPooledRenderTarget > SkyVisibilityProbeAtlasTexture
Definition LumenViewState.h:265
TRefCountPtr< IPooledRenderTarget > FinalIrradianceAtlas
Definition LumenViewState.h:269
TRefCountPtr< IPooledRenderTarget > FinalSkyVisibilityAtlas
Definition LumenViewState.h:268
TRefCountPtr< FRDGPooledBuffer > ProbeWorldOffset
Definition LumenViewState.h:279
void ReleaseTextures()
Definition LumenViewState.h:281
TRefCountPtr< IPooledRenderTarget > RadianceProbeAtlasTexture
Definition LumenViewState.h:264
TRefCountPtr< IPooledRenderTarget > ProbeOcclusionAtlas
Definition LumenViewState.h:270
TArray< FRadianceCacheClipmap > Clipmaps
Definition LumenViewState.h:255
TRefCountPtr< FRDGPooledBuffer > ProbeFreeListAllocator
Definition LumenViewState.h:275
TRefCountPtr< FRDGPooledBuffer > ProbeLastUsedFrame
Definition LumenViewState.h:277
Definition LumenViewState.h:172
FReSTIRTemporalAccumulationState TemporalAccumulationState
Definition LumenViewState.h:176
FReSTIRTemporalResamplingState TemporalResamplingState
Definition LumenViewState.h:175
void SafeRelease()
Definition LumenViewState.h:178
Definition LumenViewState.h:145
TRefCountPtr< IPooledRenderTarget > RoughSpecularIndirectHistoryRT
Definition LumenViewState.h:150
FIntPoint HistoryEffectiveResolution
Definition LumenViewState.h:154
FIntPoint HistorySceneTexturesExtent
Definition LumenViewState.h:153
FVector4f DiffuseIndirectHistoryScreenPositionScaleBias
Definition LumenViewState.h:148
FIntRect DiffuseIndirectHistoryViewRect
Definition LumenViewState.h:147
FReSTIRTemporalAccumulationState()
Definition LumenViewState.h:156
TRefCountPtr< IPooledRenderTarget > ResolveVarianceHistoryRT
Definition LumenViewState.h:151
TRefCountPtr< IPooledRenderTarget > NumFramesAccumulatedRT
Definition LumenViewState.h:152
void SafeRelease()
Definition LumenViewState.h:162
TRefCountPtr< IPooledRenderTarget > DiffuseIndirectHistoryRT
Definition LumenViewState.h:149
Definition LumenViewState.h:109
TRefCountPtr< IPooledRenderTarget > DownsampledDepthHistoryRT
Definition LumenViewState.h:121
FIntPoint HistoryReservoirBufferSize
Definition LumenViewState.h:115
FVector4f HistoryScreenPositionScaleBias
Definition LumenViewState.h:113
TRefCountPtr< IPooledRenderTarget > TemporalReservoirWeightsRT
Definition LumenViewState.h:120
void SafeRelease()
Definition LumenViewState.h:132
FReSTIRTemporalResamplingState()
Definition LumenViewState.h:124
FIntRect HistoryViewRect
Definition LumenViewState.h:112
FIntPoint HistoryReservoirViewSize
Definition LumenViewState.h:114
TRefCountPtr< IPooledRenderTarget > TemporalReservoirTraceHitDistanceRT
Definition LumenViewState.h:118
TRefCountPtr< IPooledRenderTarget > TemporalReservoirTraceRadianceRT
Definition LumenViewState.h:117
TRefCountPtr< IPooledRenderTarget > DownsampledNormalHistoryRT
Definition LumenViewState.h:122
TRefCountPtr< IPooledRenderTarget > TemporalReservoirRayDirectionRT
Definition LumenViewState.h:116
TRefCountPtr< IPooledRenderTarget > TemporalReservoirTraceHitNormalRT
Definition LumenViewState.h:119
Definition LumenViewState.h:186
TRefCountPtr< IPooledRenderTarget > LayerSceneDepthHistory
Definition LumenViewState.h:192
FVector4f HistoryScreenPositionScaleBias
Definition LumenViewState.h:197
void SafeRelease()
Definition LumenViewState.h:202
FVector4f HistoryUVMinMax
Definition LumenViewState.h:198
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:240
FVector4f HistoryBufferSizeAndInvSize
Definition LumenViewState.h:200
TRefCountPtr< IPooledRenderTarget > NumFramesAccumulatedHistory
Definition LumenViewState.h:189
TRefCountPtr< IPooledRenderTarget > SpecularAndSecondMomentHistory
Definition LumenViewState.h:188
uint32 HistoryFrameIndex
Definition LumenViewState.h:195
FVector4f HistoryGatherUVMinMax
Definition LumenViewState.h:199
FIntRect HistoryViewRect
Definition LumenViewState.h:196
TRefCountPtr< IPooledRenderTarget > LayerSceneNormalHistory
Definition LumenViewState.h:193
Definition LumenViewState.h:40
FIntRect DiffuseIndirectHistoryViewRect
Definition LumenViewState.h:42
TRefCountPtr< IPooledRenderTarget > FastUpdateMode_NumFramesAccumulatedHistoryRT
Definition LumenViewState.h:48
FScreenProbeGatherTemporalState()
Definition LumenViewState.h:61
TRefCountPtr< IPooledRenderTarget > ShortRangeAOHistoryRT
Definition LumenViewState.h:49
void SafeRelease()
Definition LumenViewState.h:71
TRefCountPtr< IPooledRenderTarget > DiffuseIndirectHistoryRT
Definition LumenViewState.h:45
FVector4f HistoryBufferSizeAndInvSize
Definition LumenViewState.h:44
FVector4f ProbeHistoryScreenPositionScaleBias
Definition LumenViewState.h:52
TRefCountPtr< IPooledRenderTarget > HistoryScreenProbeSceneDepth
Definition LumenViewState.h:53
uint32 HistorySubstrateMaxClosureCount
Definition LumenViewState.h:59
uint64 GetGPUSizeBytes(bool bLogSizes) const
Definition SceneViewState.cpp:228
TRefCountPtr< IPooledRenderTarget > RoughSpecularIndirectHistoryRT
Definition LumenViewState.h:47
FIntRect ProbeHistoryViewRect
Definition LumenViewState.h:51
TRefCountPtr< IPooledRenderTarget > ShortRangeGIHistoryRT
Definition LumenViewState.h:50
FLumenGatherCvarState LumenGatherCvars
Definition LumenViewState.h:57
TRefCountPtr< IPooledRenderTarget > BackfaceDiffuseIndirectHistoryRT
Definition LumenViewState.h:46
FIntPoint HistoryEffectiveResolution
Definition LumenViewState.h:58
FVector4f DiffuseIndirectHistoryScreenPositionScaleBias
Definition LumenViewState.h:43
TRefCountPtr< IPooledRenderTarget > ProbeHistoryScreenProbeRadiance
Definition LumenViewState.h:55
TRefCountPtr< IPooledRenderTarget > ImportanceSamplingHistoryScreenProbeRadiance
Definition LumenViewState.h:56
TRefCountPtr< IPooledRenderTarget > HistoryScreenProbeTranslatedWorldPosition
Definition LumenViewState.h:54
Definition Array.h:670
Definition RefCounting.h:454
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition IntPoint.h:25