65 UE_DEPRECATED(5.7,
"CreateTexture now requires a command list.")
96 AmbientVector.Texture.SafeRelease();
100 SHCoefficients[i].Texture.SafeRelease();
103 SkyBentNormal.Texture.SafeRelease();
104 DirectionalLightShadowing.Texture.SafeRelease();
106 AmbientVector.UAV.SafeRelease();
110 SHCoefficients[i].UAV.SafeRelease();
113 SkyBentNormal.UAV.SafeRelease();
114 DirectionalLightShadowing.UAV.SafeRelease();
119 SIZE_T NumBytes = AmbientVector.DataSize + SkyBentNormal.DataSize + DirectionalLightShadowing.DataSize;
123 NumBytes += SHCoefficients[i].DataSize;
131 AmbientVector.bNeedsCPUAccess =
InAccess;
135 SHCoefficients[i].bNeedsCPUAccess =
InAccess;
138 SkyBentNormal.bNeedsCPUAccess =
InAccess;
139 DirectionalLightShadowing.bNeedsCPUAccess =
InAccess;
161 ENGINE_API virtual void ReleaseRHI()
override;
164 UE_DEPRECATED(5.7,
"InitRHIForSubLevelResources now requires a command list.")
165 ENGINE_API void InitRHIForSubLevelResources();
166 ENGINE_API void ReleaseRHIForSubLevelResources();
172 SIZE_T GetAllocatedBytes()
const;
238 return bAddedToScene;
318inline static const float GPointFilteringThreshold = .001f;
320template<
typename VoxelDataType>
365template<
typename VoxelDataType>
375 return Data[LinearIndex];
384template<
typename VoxelDataType>
389 return Data[LinearIndex];
440 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters);
505 template<
class VolumetricLightmapBrickDataType>
512 AmbientVector.Format = BrickData.AmbientVector.Format;
513 SkyBentNormal.Format = BrickData.SkyBentNormal.Format;
514 DirectionalLightShadowing.Format = BrickData.DirectionalLightShadowing.Format;
518 SHCoefficients[i].Format = BrickData.SHCoefficients[i].Format;
521 AmbientVector.CreateTargetTexture(RHICmdList, BrickDataDimensions);
522 AmbientVector.CreateUAV(RHICmdList);
526 SHCoefficients[i].CreateTargetTexture(RHICmdList, BrickDataDimensions);
527 SHCoefficients[i].CreateUAV(RHICmdList);
530 if (BrickData.SkyBentNormal.Texture.IsValid())
532 SkyBentNormal.CreateTargetTexture(RHICmdList, BrickDataDimensions);
533 SkyBentNormal.CreateUAV(RHICmdList);
536 DirectionalLightShadowing.CreateTargetTexture(RHICmdList, BrickDataDimensions);
537 DirectionalLightShadowing.CreateUAV(RHICmdList);
542 AmbientVector.Texture.SafeRelease();
545 SHCoefficients[i].Texture.SafeRelease();
547 SkyBentNormal.Texture.SafeRelease();
548 DirectionalLightShadowing.Texture.SafeRelease();
550 AmbientVector.UAV.SafeRelease();
553 SHCoefficients[i].UAV.SafeRelease();
555 SkyBentNormal.UAV.SafeRelease();
556 DirectionalLightShadowing.UAV.SafeRelease();
567 ENGINE_API virtual void ReleaseRHI()
override;
585 int32 PaddedBrickSize;
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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 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
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
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
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
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
FLinearColor ReinterpretAsLinear() const
Definition Color.h:683
Definition GlobalShader.h:73
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