9#include "Containers/Array.h"
17#include "SparseVolumeTexture.generated.h"
23#define SPARSE_VOLUME_TILE_RES 16
24#define SPARSE_VOLUME_TILE_BORDER 1
25#define SPARSE_VOLUME_TILE_RES_PADDED (SPARSE_VOLUME_TILE_RES + 2 * SPARSE_VOLUME_TILE_BORDER)
209#if WITH_EDITORONLY_DATA
210 FString ResourceName;
220#if WITH_EDITORONLY_DATA
236#if WITH_EDITORONLY_DATA
247 return State == EDDCRebuildState::Initial || State == EDDCRebuildState::InitialAfterFailed;
285 int32 NumLogicalMipLevels = 0;
317 UFUNCTION(BlueprintCallable, Category =
"Texture")
320 UFUNCTION(BlueprintCallable, Category =
"Texture")
323 UFUNCTION(BlueprintCallable, Category =
"Texture")
326 UFUNCTION(BlueprintCallable, Category =
"Texture")
329 UFUNCTION(BlueprintCallable, Category =
"Texture")
332 UFUNCTION(BlueprintCallable, Category =
"Texture")
343 float GetOptimalStreamingMipLevel(
const FBoxSphereBounds& Bounds,
float MipBias)
const;
389 int32 GetFrameIndex()
const {
return FrameIndex; }
392 ENGINE_API bool CreateTextureRenderResources();
394#if WITH_EDITORONLY_DATA
401 ENGINE_API virtual void FinishDestroy()
override;
402 ENGINE_API virtual void BeginDestroy()
override;
438#if WITH_EDITORONLY_DATA
457 UPROPERTY(VisibleAnywhere, Category =
"Texture", AssetRegistrySearchable)
479 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Texture", meta = (DisplayName = "
X-
axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
483 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Texture", meta = (DisplayName = "
Y-
axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
487 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Texture", meta = (DisplayName = "
Z-
axis Tiling Method"), AssetRegistrySearchable, AdvancedDisplay)
491 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "
Texture", AdvancedDisplay)
496 float StreamingPoolSizeFactor = 3.0f;
505 float PrefetchPercentageStepSize = 20.0f;
510 float PrefetchPercentageBias = 20.0f;
512#if WITH_EDITORONLY_DATA
518 UPROPERTY(EditAnywhere, AdvancedDisplay, Instanced, Category =
"Texture")
537 ENGINE_API virtual void PostInitProperties()
override;
539 ENGINE_API virtual void FinishDestroy()
override;
540 ENGINE_API virtual void BeginDestroy()
override;
547 UE_DEPRECATED(5.4,
"Implement the version that takes FAssetRegistryTagsContext instead.")
572 UE_DEPRECATED(5.5,
"OnAssetsAddExtraObjectsToDelete signature has been deprecated please use OnAddExtraObjectsToDelete instead")
582#if WITH_EDITORONLY_DATA
653 int32 PreviewFrameIndex;
664 UPROPERTY(BlueprintReadWrite, Category =
"Animation")
680 bool bBlockingStreamingRequests =
false;
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ BeginCacheForCookedPlatformData
@ IsCachedCookedPlatformDataLoaded
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInitToZero
Definition CoreMiscDefines.h:156
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
UE::Math::TVector4< double > FVector4
Definition MathFwd.h:49
UE::Math::TIntVector3< int32 > FIntVector3
Definition MathFwd.h:92
FInt32Vector3 FIntVector
Definition MathFwd.h:115
UE::Math::TVector4< float > FVector4f
Definition MathFwd.h:75
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UFUNCTION(...)
Definition ObjectMacros.h:745
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
@ Stop
Definition PrecomputedVolumetricLightmapStreaming.cpp:26
FArchive & operator<<(FArchive &Ar, UE::SVT::FHeader &Header)
Definition SparseVolumeTexture.cpp:95
ESparseVolumeTextureShaderUniform
Definition SparseVolumeTexture.h:298
@ ESparseVolumeTexture_TileSize
Definition SparseVolumeTexture.h:299
@ ESparseVolumeTexture_PageTableSize
Definition SparseVolumeTexture.h:300
@ ESparseVolumeTexture_UVScale
Definition SparseVolumeTexture.h:301
@ ESparseVolumeTexture_UVBias
Definition SparseVolumeTexture.h:302
@ ESparseVolumeTexture_Count
Definition SparseVolumeTexture.h:303
TextureAddress
Definition TextureDefines.h:496
CORE_API bool IsInParallelRenderingThread()
Definition ThreadingBase.cpp:301
bool Failed
Definition binka_ue_decode_test.cpp:18
Definition Archive.h:1208
Definition AssetRegistryTagsContext.h:98
Definition RHICommandList.h:455
Definition RHITextureReference.h:8
Definition RenderResource.h:37
Definition Interface_AssetUserData.h:20
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Reset(SizeType NewSize=0)
Definition Array.h:2246
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition EnumAsByte.h:22
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition StaticArray.h:26
Definition SubclassOf.h:30
Definition SparseVolumeTexture.h:659
Definition SparseVolumeTexture.h:640
virtual ~UAnimatedSparseVolumeTexture()=default
virtual const UE::SVT::FTextureRenderResources * GetTextureRenderResources() const override
Definition SparseVolumeTexture.h:649
Definition AssetUserData.h:18
Definition SparseVolumeTextureStreamingManager.h:96
Definition SparseVolumeTexture.h:261
ENGINE_API void GetPackedUniforms(FUintVector4 &OutPacked0, FUintVector4 &OutPacked1) const
Definition SparseVolumeTexture.cpp:870
const FHeader & GetHeader() const
Definition SparseVolumeTexture.h:264
FRHITextureReference * GetPhysicalTileDataATexture() const
Definition SparseVolumeTexture.h:269
FIntVector3 GetTileDataTextureResolution() const
Definition SparseVolumeTexture.h:265
int32 GetNumLogicalMipLevels() const
Definition SparseVolumeTexture.h:267
int32 GetFrameIndex() const
Definition SparseVolumeTexture.h:266
ENGINE_API void SetGlobalVolumeResolution_GameThread(const FIntVector3 &GlobalVolumeResolution)
Definition SparseVolumeTexture.cpp:893
virtual ENGINE_API void ReleaseRHI() override
Definition SparseVolumeTexture.cpp:909
FRHITextureReference * GetPhysicalTileDataBTexture() const
Definition SparseVolumeTexture.h:270
FRHITextureReference * GetPageTableTexture() const
Definition SparseVolumeTexture.h:268
virtual ENGINE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SparseVolumeTexture.cpp:902
Definition EditorBulkData.h:132
Definition SparseVolumeTexture.h:366
UE::SVT::FResources * GetResources()
Definition SparseVolumeTexture.h:390
virtual FVector4f GetFallbackValue(int32 AttributesIndex) const override
Definition SparseVolumeTexture.h:420
virtual int32 GetNumMipLevels() const override
Definition SparseVolumeTexture.h:416
virtual int32 GetNumFrames() const override
Definition SparseVolumeTexture.h:415
virtual FIntVector GetVolumeResolution() const override
Definition SparseVolumeTexture.h:418
virtual const UE::SVT::FTextureRenderResources * GetTextureRenderResources() const override
Definition SparseVolumeTexture.h:424
virtual TextureAddress GetTextureAddressX() const override
Definition SparseVolumeTexture.h:421
virtual TextureAddress GetTextureAddressZ() const override
Definition SparseVolumeTexture.h:423
virtual EPixelFormat GetFormat(int32 AttributesIndex) const override
Definition SparseVolumeTexture.h:419
virtual FTransform GetFrameTransform() const override
Definition SparseVolumeTexture.h:417
virtual TextureAddress GetTextureAddressY() const override
Definition SparseVolumeTexture.h:422
Definition SparseVolumeTexture.h:309
virtual EPixelFormat GetFormat(int32 AttributesIndex) const
Definition SparseVolumeTexture.h:336
virtual const UE::SVT::FTextureRenderResources * GetTextureRenderResources() const
Definition SparseVolumeTexture.h:341
FVector4 GetUniformParameter(int32 Index) const
Definition SparseVolumeTexture.h:346
virtual FVector4f GetFallbackValue(int32 AttributesIndex) const
Definition SparseVolumeTexture.h:337
virtual TextureAddress GetTextureAddressX() const
Definition SparseVolumeTexture.h:338
virtual FIntVector GetVolumeResolution() const
Definition SparseVolumeTexture.h:335
virtual ~USparseVolumeTexture()=default
virtual TextureAddress GetTextureAddressY() const
Definition SparseVolumeTexture.h:339
virtual TextureAddress GetTextureAddressZ() const
Definition SparseVolumeTexture.h:340
Definition SparseVolumeTexture.h:617
virtual ~UStaticSparseVolumeTexture()=default
int32 GetNumFrames() const override
Definition SparseVolumeTexture.h:631
Definition SparseVolumeTexture.h:452
virtual int32 GetNumMipLevels() const override
Definition SparseVolumeTexture.h:560
virtual TextureAddress GetTextureAddressZ() const override
Definition SparseVolumeTexture.h:567
virtual EPixelFormat GetFormat(int32 AttributesIndex) const override
Definition SparseVolumeTexture.h:563
virtual FTransform GetFrameTransform() const override
Definition SparseVolumeTexture.h:561
virtual TextureAddress GetTextureAddressY() const override
Definition SparseVolumeTexture.h:566
virtual FVector4f GetFallbackValue(int32 AttributesIndex) const override
Definition SparseVolumeTexture.h:564
virtual FIntVector GetVolumeResolution() const override
Definition SparseVolumeTexture.h:562
virtual const UE::SVT::FTextureRenderResources * GetTextureRenderResources() const override
Definition SparseVolumeTexture.h:568
virtual TextureAddress GetTextureAddressX() const override
Definition SparseVolumeTexture.h:565
EResourceFlag
Definition SparseVolumeTexture.h:188
@ EResourceFlag_StreamingDataInDDC
Definition SparseVolumeTexture.h:189
EValueType
Definition ShaderTypes.h:94
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition UnrealType.h:6865
Definition ResourceSize.h:31
Definition ObjectPtr.h:488
Definition BoxSphereBounds.h:25
IntType Y
Definition IntVector.h:34
IntType X
Definition IntVector.h:31
static const TIntVector3 ZeroValue
Definition IntVector.h:45
IntType Z
Definition IntVector.h:37
Definition SparseVolumeTexture.h:97
TStaticArray< int32, 2 > TileDataSize
Definition SparseVolumeTexture.h:107
int32 NumPhysicalTiles
Definition SparseVolumeTexture.h:108
int32 PageTableSize
Definition SparseVolumeTexture.h:101
TStaticArray< int32, 2 > OccupancyBitsSize
Definition SparseVolumeTexture.h:103
TStaticArray< int32, 2 > TileDataOffsetsOffset
Definition SparseVolumeTexture.h:104
TStaticArray< int32, 2 > TileDataOffset
Definition SparseVolumeTexture.h:106
TStaticArray< int32, 2 > OccupancyBitsOffset
Definition SparseVolumeTexture.h:102
int32 BulkOffset
Definition SparseVolumeTexture.h:98
int32 PageTableOffset
Definition SparseVolumeTexture.h:100
TStaticArray< int32, 2 > TileDataOffsetsSize
Definition SparseVolumeTexture.h:105
int32 BulkSize
Definition SparseVolumeTexture.h:99
Definition SparseVolumeTexture.h:61
uint32 PageCount
Definition SparseVolumeTexture.h:63
uint32 PageOffset
Definition SparseVolumeTexture.h:62
Definition SparseVolumeTexture.h:59
void GetTileRange(uint32 PageOffset, uint32 PageCount, uint32 &OutTileOffset, uint32 &OutTileCount) const
Definition SparseVolumeTexture.cpp:238
bool IsValidPageIndex(uint32 PageIndex) const
Definition SparseVolumeTexture.h:74
void Reset()
Definition SparseVolumeTexture.cpp:222
TArray< uint32 > TileIndices
Definition SparseVolumeTexture.h:68
TArray< FMip > MipInfo
Definition SparseVolumeTexture.h:66
TArray< uint32 > PackedPageTableCoords
Definition SparseVolumeTexture.h:67
uint32 NumPages() const
Definition SparseVolumeTexture.h:73
TArray< uint32 > ParentIndices
Definition SparseVolumeTexture.h:69
Definition SparseVolumeTexture.h:194
uint32 ResourceFlags
Definition SparseVolumeTexture.h:197
bool HasStreamingData() const
Definition SparseVolumeTexture.cpp:319
FByteBulkData StreamableMipLevels
Definition SparseVolumeTexture.h:204
TArray< uint8 > RootData
Definition SparseVolumeTexture.h:202
FHeader Header
Definition SparseVolumeTexture.h:196
int32 NumMipLevels
Definition SparseVolumeTexture.h:198
FTileStreamingMetaData StreamingMetaData
Definition SparseVolumeTexture.h:200
FPageTopology Topology
Definition SparseVolumeTexture.h:206
Definition SparseVolumeTextureData.h:41
Definition SparseVolumeTexture.h:121
TStaticArray< uint32, 2 > NumVoxels
Definition SparseVolumeTexture.h:128
TStaticArray< uint32, 2 > VoxelDataSizes
Definition SparseVolumeTexture.h:127
TStaticArray< uint32, 2 > OccupancyBitsSizes
Definition SparseVolumeTexture.h:125
uint32 Offset
Definition SparseVolumeTexture.h:122
uint32 Size
Definition SparseVolumeTexture.h:123
TStaticArray< uint32, 2 > OccupancyBitsOffsets
Definition SparseVolumeTexture.h:124
TStaticArray< uint32, 2 > VoxelDataOffsets
Definition SparseVolumeTexture.h:126