UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PrecomputedVolumetricLightmap.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 PrecomputedVolumetricLightmap.h: Declarations for precomputed volumetric lightmap.
5=============================================================================*/
6
7#pragma once
8
10#include "CoreMinimal.h"
11#include "Misc/Guid.h"
12#include "Math/SHMath.h"
14#include "PixelFormat.h"
15#include "Math/PackedVector.h"
16#include "RHI.h"
17#include "RenderResource.h"
19#include "GlobalShader.h"
21
22class FSceneInterface;
23
25{
26public:
27
33
35
36 virtual const void* GetResourceBulkData() const override
37 {
38 return Data.GetData();
39 }
40
41 virtual uint32 GetResourceBulkDataSize() const override
42 {
43 return Data.Num() * Data.GetTypeSize();
44 }
45
46 virtual void Discard() override
47 {
48 if (!bNeedsCPUAccess)
49 {
50 Data.Empty();
51 }
52 }
53
54 void Resize(int32 NewSize)
55 {
56 Data.Empty(NewSize);
57 Data.AddZeroed(NewSize);
58 DataSize = NewSize;
59 }
60
61 ENGINE_API void CreateTexture(FRHICommandListBase& RHICmdList, FIntVector Dimensions);
64
65 UE_DEPRECATED(5.7, "CreateTexture now requires a command list.")
66 ENGINE_API void CreateTexture(FIntVector Dimensions);
67 UE_DEPRECATED(5.7, "CreateTargetTexture now requires a command list.")
69
71 // Stored redundantly for stats after Data has been discarded
76
78};
79
87
89{
90public:
91
92 ENGINE_API int32 GetMinimumVoxelSize() const;
93
95 {
96 AmbientVector.Texture.SafeRelease();
97
98 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
99 {
100 SHCoefficients[i].Texture.SafeRelease();
101 }
102
103 SkyBentNormal.Texture.SafeRelease();
104 DirectionalLightShadowing.Texture.SafeRelease();
105
106 AmbientVector.UAV.SafeRelease();
107
108 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
109 {
110 SHCoefficients[i].UAV.SafeRelease();
111 }
112
113 SkyBentNormal.UAV.SafeRelease();
114 DirectionalLightShadowing.UAV.SafeRelease();
115 }
116
118 {
119 SIZE_T NumBytes = AmbientVector.DataSize + SkyBentNormal.DataSize + DirectionalLightShadowing.DataSize;
120
121 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
122 {
123 NumBytes += SHCoefficients[i].DataSize;
124 }
125
126 return NumBytes;
127 }
128
130 {
131 AmbientVector.bNeedsCPUAccess = InAccess;
132
133 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
134 {
135 SHCoefficients[i].bNeedsCPUAccess = InAccess;
136 }
137
138 SkyBentNormal.bNeedsCPUAccess = InAccess;
139 DirectionalLightShadowing.bNeedsCPUAccess = InAccess;
140 }
141};
142
148{
149public:
150
153
156
157 ENGINE_API void InitializeOnImport(const FBox& NewBounds, int32 InBrickSize);
158 ENGINE_API void FinalizeImport();
159
160 ENGINE_API virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
161 ENGINE_API virtual void ReleaseRHI() override;
162
163 ENGINE_API void InitRHIForSubLevelResources(FRHICommandListBase& RHICmdList);
164 UE_DEPRECATED(5.7, "InitRHIForSubLevelResources now requires a command list.")
165 ENGINE_API void InitRHIForSubLevelResources();
166 ENGINE_API void ReleaseRHIForSubLevelResources();
167
168 ENGINE_API void HandleDataMovementInAtlas(int32 OldOffset, int32 NewOffset);
169 ENGINE_API void AddToSceneData(FPrecomputedVolumetricLightmapData* SceneData);
171
172 SIZE_T GetAllocatedBytes() const;
173
174 const FBox& GetBounds() const
175 {
176 return Bounds;
177 }
178
180
182
185
189
193 // Brick positions in the persistent level's indirection texture
196
202
205
208
209 // CPU indirection table for mobile path
212
213private:
214
216};
217
218
223{
224public:
225
228
229 ENGINE_API void AddToScene(class FSceneInterface* Scene, class UMapBuildDataRegistry* Registry, FGuid LevelBuildDataId, bool bIsPersistentLevel);
231
232 ENGINE_API void RemoveFromScene(FSceneInterface* Scene);
233
235
236 bool IsAddedToScene() const
237 {
238 return bAddedToScene;
239 }
240
241 ENGINE_API void ApplyWorldOffset(const FVector& InOffset);
242
243 // Owned by rendering thread
244 // ULevel's MapBuildData GC-visible property guarantees that the FPrecomputedVolumetricLightmapData will not be deleted during the lifetime of FPrecomputedVolumetricLightmap.
246
247private:
248
249 bool bAddedToScene;
250
252
254 FVector WorldOriginOffset;
255};
256
257template<typename T>
259{
260 return FLinearColor(InColor);
261};
262
263template<typename T>
264inline T ConvertFromLinearColor(const FLinearColor& InColor)
265{
266 return T(InColor);
267};
268
269template<>
271{
272 return InColor.ReinterpretAsLinear();
273};
274
275template<>
277{
278 return InColor.QuantizeRound();
279};
280
281template<>
283{
284 return InColor.ToLinearColor();
285};
286
287template<>
289{
290 return FFloat3Packed(InColor);
291};
292
293template<>
298
299template<>
304
305template<>
307{
308 return (uint8)FMath::Clamp<int32>(FMath::RoundToInt(InColor.R * MAX_uint8), 0, MAX_uint8);
309};
310
311template<>
313{
314 const float Scale = 1.0f / MAX_uint8;
315 return FLinearColor(InColor * Scale, 0, 0, 0);
316};
317
318inline static const float GPointFilteringThreshold = .001f;
319
320template<typename VoxelDataType>
322{
323 FVector CoordinateFraction(FMath::Frac(Coordinate.X), FMath::Frac(Coordinate.Y), FMath::Frac(Coordinate.Z));
324 FIntVector FilterNeighborSize(CoordinateFraction.X > GPointFilteringThreshold ? 2 : 1, CoordinateFraction.Y > GPointFilteringThreshold ? 2 : 1, CoordinateFraction.Z > GPointFilteringThreshold ? 2 : 1);
325 FIntVector CoordinateInt000(Coordinate);
326
327 FLinearColor FilteredValue(0, 0, 0, 0);
328 FVector FilterWeight(1.0f, 1.0f, 1.0f);
329
330 for (int32 Z = 0; Z < FilterNeighborSize.Z; Z++)
331 {
332 if (FilterNeighborSize.Z > 1)
333 {
334 FilterWeight.Z = (Z == 0 ? 1.0f - CoordinateFraction.Z : CoordinateFraction.Z);
335 }
336
337 for (int32 Y = 0; Y < FilterNeighborSize.Y; Y++)
338 {
339 if (FilterNeighborSize.Y > 1)
340 {
341 FilterWeight.Y = (Y == 0 ? 1.0f - CoordinateFraction.Y : CoordinateFraction.Y);
342 }
343
344 for (int32 X = 0; X < FilterNeighborSize.X; X++)
345 {
346 if (FilterNeighborSize.X > 1)
347 {
348 FilterWeight.X = (X == 0 ? 1.0f - CoordinateFraction.X : CoordinateFraction.X);
349 }
350
355 const int32 LinearIndex = ((CoordinateInt.Z * DataDimensions.Y) + CoordinateInt.Y) * DataDimensions.X + CoordinateInt.X;
356
358 }
359 }
360 }
361
362 return FilteredValue;
363}
364
365template<typename VoxelDataType>
367{
368 FVector CoordinateFraction(FMath::Frac(Coordinate.X), FMath::Frac(Coordinate.Y), FMath::Frac(Coordinate.Z));
369 FIntVector FilterNeighborSize(CoordinateFraction.X > GPointFilteringThreshold ? 2 : 1, CoordinateFraction.Y > GPointFilteringThreshold ? 2 : 1, CoordinateFraction.Z > GPointFilteringThreshold ? 2 : 1);
370
371 if (FilterNeighborSize.X == 1 && FilterNeighborSize.Y == 1 && FilterNeighborSize.Z == 1)
372 {
373 FIntVector CoordinateInt000(Coordinate);
375 return Data[LinearIndex];
376 }
377 else
378 {
381 }
382}
383
384template<typename VoxelDataType>
386{
387 FIntVector NearestCoordinateInt(FMath::RoundToInt(Coordinate.X), FMath::RoundToInt(Coordinate.Y), FMath::RoundToInt(Coordinate.Z));
389 return Data[LinearIndex];
390}
391
392extern ENGINE_API FVector ComputeIndirectionCoordinate(FVector LookupPosition, const FBox& VolumeBounds, FIntVector IndirectionTextureDimensions);
393
396 FIntVector IndirectionTextureDimensions,
400
403 FIntVector IndirectionTextureDimensions,
405 const TArray<uint8>& CPUSubLevelIndirectionTable,
409
414 int32 BrickSize);
415
431
433{
436
437 class FHasSkyBentNormal : SHADER_PERMUTATION_BOOL("HAS_SKY_BENT_NORMAL");
438 using FPermutationDomain = TShaderPermutationDomain<FHasSkyBentNormal>;
439
440 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters);
441
442 BEGIN_SHADER_PARAMETER_STRUCT(FParameters, )
443 SHADER_PARAMETER(uint32, StartPosInOldVolume)
444 SHADER_PARAMETER(uint32, StartPosInNewVolume)
445 SHADER_PARAMETER_TEXTURE(Texture3D, AmbientVector)
446 SHADER_PARAMETER_TEXTURE(Texture3D, SkyBentNormal)
447 SHADER_PARAMETER_TEXTURE(Texture3D, DirectionalLightShadowing)
448
449 SHADER_PARAMETER_UAV(RWTexture3D<float3>, OutAmbientVector)
450 SHADER_PARAMETER_UAV(RWTexture3D<float4>, OutSkyBentNormal)
451 SHADER_PARAMETER_UAV(RWTexture3D<float>, OutDirectionalLightShadowing)
453};
454
469
484
500
502{
504
505 template<class VolumetricLightmapBrickDataType> // Can be either FVolumetricLightmapBrickData or FVolumetricLightmapBrickTextureSet
507 {
509
510 BrickDataDimensions = InBrickDataDimensions;
511
512 AmbientVector.Format = BrickData.AmbientVector.Format;
513 SkyBentNormal.Format = BrickData.SkyBentNormal.Format;
514 DirectionalLightShadowing.Format = BrickData.DirectionalLightShadowing.Format;
515
516 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
517 {
518 SHCoefficients[i].Format = BrickData.SHCoefficients[i].Format;
519 }
520
521 AmbientVector.CreateTargetTexture(RHICmdList, BrickDataDimensions);
522 AmbientVector.CreateUAV(RHICmdList);
523
524 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
525 {
526 SHCoefficients[i].CreateTargetTexture(RHICmdList, BrickDataDimensions);
527 SHCoefficients[i].CreateUAV(RHICmdList);
528 }
529
530 if (BrickData.SkyBentNormal.Texture.IsValid())
531 {
532 SkyBentNormal.CreateTargetTexture(RHICmdList, BrickDataDimensions);
533 SkyBentNormal.CreateUAV(RHICmdList);
534 }
535
536 DirectionalLightShadowing.CreateTargetTexture(RHICmdList, BrickDataDimensions);
537 DirectionalLightShadowing.CreateUAV(RHICmdList);
538 }
539
540 void Release()
541 {
542 AmbientVector.Texture.SafeRelease();
543 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
544 {
545 SHCoefficients[i].Texture.SafeRelease();
546 }
547 SkyBentNormal.Texture.SafeRelease();
548 DirectionalLightShadowing.Texture.SafeRelease();
549
550 AmbientVector.UAV.SafeRelease();
551 for (int32 i = 0; i < UE_ARRAY_COUNT(SHCoefficients); i++)
552 {
553 SHCoefficients[i].UAV.SafeRelease();
554 }
555 SkyBentNormal.UAV.SafeRelease();
556 DirectionalLightShadowing.UAV.SafeRelease();
557 }
558};
559
561{
562public:
564
566
567 ENGINE_API virtual void ReleaseRHI() override;
568
570 {
571 // The data being allocated, as an identifier for the entry
573
575 int32 StartOffset = 0;
576 };
577
579
582
583private:
584 bool bInitialized;
585 int32 PaddedBrickSize;
586};
587
int Volume
Definition AndroidPlatformMisc.cpp:380
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
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
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define DECLARE_GLOBAL_SHADER(ShaderClass)
Definition GlobalShader.h:408
FInt32Vector3 FIntVector
Definition MathFwd.h:115
const bool
Definition NetworkReplayStreaming.h:178
#define MAX_uint8
Definition NumericLimits.h:19
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
TGlobalResource< FVolumetricLightmapBrickAtlas > GVolumetricLightmapBrickAtlas
Definition PrecomputedVolumetricLightmap.cpp:63
ENGINE_API FVector ComputeIndirectionCoordinate(FVector LookupPosition, const FBox &VolumeBounds, FIntVector IndirectionTextureDimensions)
Definition PrecomputedVolumetricLightmap.cpp:803
FLinearColor FilteredVolumeLookup(FVector Coordinate, FIntVector DataDimensions, const VoxelDataType *Data)
Definition PrecomputedVolumetricLightmap.h:321
FLinearColor ConvertToLinearColor< FFloat3Packed >(FFloat3Packed InColor)
Definition PrecomputedVolumetricLightmap.h:282
FFixedRGBASigned8 ConvertFromLinearColor< FFixedRGBASigned8 >(const FLinearColor &InColor)
Definition PrecomputedVolumetricLightmap.h:300
T ConvertFromLinearColor(const FLinearColor &InColor)
Definition PrecomputedVolumetricLightmap.h:264
ENGINE_API void SampleIndirectionTexture(FVector IndirectionDataSourceCoordinate, FIntVector IndirectionTextureDimensions, const uint8 *IndirectionTextureData, FIntVector &OutIndirectionBrickOffset, int32 &OutIndirectionBrickSize)
Definition PrecomputedVolumetricLightmap.cpp:817
VoxelDataType NearestVolumeLookup(FVector Coordinate, FIntVector DataDimensions, const VoxelDataType *Data)
Definition PrecomputedVolumetricLightmap.h:385
FLinearColor ConvertToLinearColor< FFixedRGBASigned8 >(FFixedRGBASigned8 InColor)
Definition PrecomputedVolumetricLightmap.h:294
VoxelDataType FilteredVolumeLookupReconverted(FVector Coordinate, FIntVector DataDimensions, const VoxelDataType *Data)
Definition PrecomputedVolumetricLightmap.h:366
FFloat3Packed ConvertFromLinearColor< FFloat3Packed >(const FLinearColor &InColor)
Definition PrecomputedVolumetricLightmap.h:288
ENGINE_API FVector ComputeBrickTextureCoordinate(FVector IndirectionDataSourceCoordinate, FIntVector IndirectionBrickOffset, int32 IndirectionBrickSize, int32 BrickSize)
Definition PrecomputedVolumetricLightmap.cpp:858
FLinearColor ConvertToLinearColor(T InColor)
Definition PrecomputedVolumetricLightmap.h:258
FLinearColor ConvertToLinearColor< uint8 >(uint8 InColor)
Definition PrecomputedVolumetricLightmap.h:312
FColor ConvertFromLinearColor< FColor >(const FLinearColor &InColor)
Definition PrecomputedVolumetricLightmap.h:276
FLinearColor ConvertToLinearColor< FColor >(FColor InColor)
Definition PrecomputedVolumetricLightmap.h:270
uint8 ConvertFromLinearColor< uint8 >(const FLinearColor &InColor)
Definition PrecomputedVolumetricLightmap.h:306
ENGINE_API void SampleIndirectionTextureWithSubLevel(FVector IndirectionDataSourceCoordinate, FIntVector IndirectionTextureDimensions, const uint8 *IndirectionTextureData, const TArray< uint8 > &CPUSubLevelIndirectionTable, FIntVector &OutIndirectionBrickOffset, int32 &OutIndirectionBrickSize, int32 &OutSubLevelIndex)
Definition PrecomputedVolumetricLightmap.cpp:836
#define SHADER_PARAMETER_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1708
#define SHADER_PARAMETER_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1720
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER_UAV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1731
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
#define SHADER_USE_PARAMETER_STRUCT(ShaderClass, ShaderParentClass)
Definition ShaderParameterStruct.h:62
#define SHADER_PERMUTATION_BOOL(InDefineName)
Definition ShaderPermutation.h:482
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition PrecomputedVolumetricLightmap.h:456
Definition PrecomputedVolumetricLightmap.h:433
Definition PackedVector.h:44
CORE_API FLinearColor ToLinearColor() const
Definition PackedVector.cpp:243
Definition PackedVector.h:16
CORE_API FLinearColor ToLinearColor() const
Definition PackedVector.cpp:116
Definition GlobalShader.h:269
Definition PrecomputedVolumetricLightmap.h:486
Definition PrecomputedVolumetricLightmap.h:471
Definition PrecomputedVolumetricLightmap.h:148
TResourceArray< FColor > IndirectionTextureOriginalValues
Definition PrecomputedVolumetricLightmap.h:195
int32 BrickDataBaseOffsetInAtlas
Definition PrecomputedVolumetricLightmap.h:206
FBufferRHIRef SubLevelBrickPositionsBuffer
Definition PrecomputedVolumetricLightmap.h:200
FBufferRHIRef IndirectionTextureOriginalValuesBuffer
Definition PrecomputedVolumetricLightmap.h:203
FIntVector IndirectionTextureDimensions
Definition PrecomputedVolumetricLightmap.h:183
bool bTransient
Definition PrecomputedVolumetricLightmap.h:181
int32 BrickSize
Definition PrecomputedVolumetricLightmap.h:186
FBox Bounds
Definition PrecomputedVolumetricLightmap.h:179
FVolumetricLightmapBrickData BrickData
Definition PrecomputedVolumetricLightmap.h:188
FShaderResourceViewRHIRef IndirectionTextureOriginalValuesSRV
Definition PrecomputedVolumetricLightmap.h:204
TArray< uint8 > CPUSubLevelIndirectionTable
Definition PrecomputedVolumetricLightmap.h:210
TArray< FPrecomputedVolumetricLightmapData * > SceneDataAdded
Definition PrecomputedVolumetricLightmap.h:207
const FBox & GetBounds() const
Definition PrecomputedVolumetricLightmap.h:174
FVolumetricLightmapDataLayer IndirectionTexture
Definition PrecomputedVolumetricLightmap.h:184
TArray< FPrecomputedVolumetricLightmapData * > CPUSubLevelBrickDataList
Definition PrecomputedVolumetricLightmap.h:211
FShaderResourceViewRHIRef SubLevelBrickPositionsSRV
Definition PrecomputedVolumetricLightmap.h:201
TResourceArray< FIntVector > SubLevelBrickPositions
Definition PrecomputedVolumetricLightmap.h:194
FIntVector BrickDataDimensions
Definition PrecomputedVolumetricLightmap.h:187
Definition PrecomputedVolumetricLightmap.h:223
bool IsAddedToScene() const
Definition PrecomputedVolumetricLightmap.h:236
FPrecomputedVolumetricLightmapData * Data
Definition PrecomputedVolumetricLightmap.h:245
Definition RHICommandList.h:455
static FRHICommandListImmediate & Get()
Definition RHICommandList.h:5522
Definition PrecomputedVolumetricLightmap.h:417
Definition RenderResource.h:37
Definition ResourceArray.h:102
Definition SceneInterface.h:106
Definition PrecomputedVolumetricLightmap.h:561
TArray< Allocation > Allocations
Definition PrecomputedVolumetricLightmap.h:578
FVolumetricLightmapBrickTextureSet TextureSet
Definition PrecomputedVolumetricLightmap.h:565
Definition PrecomputedVolumetricLightmap.h:89
void SetNeedsCPUAccess(bool InAccess)
Definition PrecomputedVolumetricLightmap.h:129
void ReleaseRHI()
Definition PrecomputedVolumetricLightmap.h:94
SIZE_T GetAllocatedBytes() const
Definition PrecomputedVolumetricLightmap.h:117
Definition PrecomputedVolumetricLightmap.h:25
virtual const void * GetResourceBulkData() const override
Definition PrecomputedVolumetricLightmap.h:36
bool bNeedsCPUAccess
Definition PrecomputedVolumetricLightmap.h:77
FVolumetricLightmapDataLayer()
Definition PrecomputedVolumetricLightmap.h:28
ENGINE_API void CreateTargetTexture(FRHICommandListBase &RHICmdList, FIntVector Dimensions)
Definition PrecomputedVolumetricLightmap.cpp:36
TArray< uint8 > Data
Definition PrecomputedVolumetricLightmap.h:70
int32 DataSize
Definition PrecomputedVolumetricLightmap.h:72
void Resize(int32 NewSize)
Definition PrecomputedVolumetricLightmap.h:54
FTextureRHIRef Texture
Definition PrecomputedVolumetricLightmap.h:74
virtual uint32 GetResourceBulkDataSize() const override
Definition PrecomputedVolumetricLightmap.h:41
FUnorderedAccessViewRHIRef UAV
Definition PrecomputedVolumetricLightmap.h:75
friend FArchive & operator<<(FArchive &Ar, FVolumetricLightmapDataLayer &Volume)
Definition PrecomputedVolumetricLightmap.cpp:88
EPixelFormat Format
Definition PrecomputedVolumetricLightmap.h:73
virtual void Discard() override
Definition PrecomputedVolumetricLightmap.h:46
ENGINE_API void CreateTexture(FRHICommandListBase &RHICmdList, FIntVector Dimensions)
Definition PrecomputedVolumetricLightmap.cpp:25
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
UE_NODEBUG static UE_FORCEINLINE_HINT constexpr uint32 GetTypeSize()
Definition Array.h:1047
SizeType AddZeroed()
Definition Array.h:2755
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition RenderResource.h:543
Definition DynamicRHIResourceArray.h:31
Definition MapBuildDataRegistry.h:295
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition Color.h:486
FLinearColor ReinterpretAsLinear() const
Definition Color.h:683
Definition GlobalShader.h:73
Definition Guid.h:109
Definition Color.h:48
FColor QuantizeRound() const
Definition Color.h:789
float R
Definition Color.h:53
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
Definition PrecomputedVolumetricLightmap.h:81
FVolumetricLightmapDataLayer AmbientVector
Definition PrecomputedVolumetricLightmap.h:82
FVolumetricLightmapDataLayer DirectionalLightShadowing
Definition PrecomputedVolumetricLightmap.h:85
FVolumetricLightmapDataLayer SkyBentNormal
Definition PrecomputedVolumetricLightmap.h:84
Definition PrecomputedVolumetricLightmap.h:570
Definition PrecomputedVolumetricLightmap.h:502
void Release()
Definition PrecomputedVolumetricLightmap.h:540
void Initialize(FIntVector InBrickDataDimensions, VolumetricLightmapBrickDataType &BrickData)
Definition PrecomputedVolumetricLightmap.h:506
FIntVector BrickDataDimensions
Definition PrecomputedVolumetricLightmap.h:503
Definition ShaderPermutation.h:229
Definition WeakObjectPtrTemplates.h:25
T Z
Definition Vector.h:68
T Y
Definition Vector.h:65
T X
Definition Vector.h:62