15#include "NaniteDefinitions.h"
24#define NANITE_ENABLE_DEBUG_RENDERING (!(UE_BUILD_SHIPPING || UE_BUILD_TEST) || WITH_EDITOR)
26#define NANITE_ENABLE_DEBUG_RENDERING 0
303#define MAX_MESH_DATA_TEXCOORDS 8
339 int16 CorrespondClothAssetIndex;
383#if WITH_EDITORONLY_DATA
445 FString ResourceName;
461 return State == EDDCRebuildState::Initial || State == EDDCRebuildState::InitialAfterFailed;
466 std::atomic<EDDCRebuildState> State = EDDCRebuildState::Initial;
482 UE_DEPRECATED(5.1,
"Use RebuildBulkDataFromCacheAsync instead.")
507 template<
typename TFunc>
509 template<
typename TFunc>
517template<
typename TFunc>
546 for (
uint32 i = 0; i < NumPages; ++i)
549 if (!Func(PageIndex))
559template<
typename TFunc>
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define DECLARE_STATS_GROUP(GroupDesc, GroupId, GroupCat)
Definition Stats.h:689
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
@ Skinning
Definition HairStrandsInterface.h:201
#define LLM_DECLARE_TAG_API(...)
Definition LowLevelMemTracker.h:1117
UE::Math::TBoxSphereBounds< float, float > FBoxSphereBounds3f
Definition MathFwd.h:137
ENGINE_API void InitNaniteResources(TPimplPtr< Nanite::FResources > &InResources, bool bRecreate=false)
Definition NaniteResources.cpp:3559
#define MAX_MESH_DATA_TEXCOORDS
Definition NaniteResources.h:303
ENGINE_API void ClearNaniteResources(TPimplPtr< Nanite::FResources > &InResources)
Definition NaniteResources.cpp:3553
ENGINE_API void GetNaniteResourcesSizeEx(const TPimplPtr< Nanite::FResources > &InResources, FResourceSizeEx &CumulativeResourceSize)
Definition NaniteResources.cpp:3589
ENGINE_API uint64 GetNaniteResourcesSize(const TPimplPtr< Nanite::FResources > &InResources)
Definition NaniteResources.cpp:3567
#define MAX_uint32
Definition NumericLimits.h:21
#define DECLARE_GPU_STAT_NAMED_EXTERN(StatName, NameString)
Definition RealtimeGPUProfiler.h:260
ESkinVertexColorChannel
Definition SkeletalMeshTypes.h:38
uint32 Offset
Definition VulkanMemory.cpp:4033
bool Failed
Definition binka_ue_decode_test.cpp:18
Definition Archive.h:1208
Definition NaniteVertexFactory.h:15
Definition RHICommandList.h:455
Definition RenderResource.h:37
Definition StaticMeshResources.h:404
Definition NaniteResources.h:393
Definition NaniteResources.h:566
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition NaniteResources.cpp:3242
FNaniteVertexFactory * GetVertexFactory()
Definition NaniteResources.h:571
virtual void ReleaseRHI() override
Definition NaniteResources.cpp:3252
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
Definition UnrealString.h.inl:34
Definition SkinnedMeshComponent.h:50
EMeshDataSectionFlags
Definition NaniteResources.h:270
@ AffectDistanceFieldLighting
void SetBits(uint32 &Value, uint32 Bits, uint32 NumBits, uint32 Offset)
Definition NaniteResources.h:82
FMeshDataSectionArray BuildMeshSections(const FStaticMeshSectionArray &InSections)
Definition NaniteResources.cpp:3264
FStaticMeshSectionArray BuildStaticMeshSections(const FMeshDataSectionArray &InSections)
Definition NaniteResources.cpp:3319
uint32 GetBits(uint32 Value, uint32 NumBits, uint32 Offset)
Definition NaniteResources.h:76
Definition DerivedData.cpp:40
Definition SkeletalMeshTypes.h:141
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition EngineTypes.h:3040
Definition ResourceSize.h:31
Definition StaticMeshResources.h:202
Definition NaniteResources.h:264
uint32 ViewId
Definition NaniteResources.h:266
uint32 InstanceId
Definition NaniteResources.h:265
Definition NaniteResources.h:367
EMeshDataSectionFlags Flags
Definition NaniteResources.h:377
uint32 NumTriangles
Definition NaniteResources.h:373
uint32 MinVertexIndex
Definition NaniteResources.h:374
uint32 FirstIndex
Definition NaniteResources.h:372
uint32 MaxVertexIndex
Definition NaniteResources.h:375
int32 MaterialIndex
Definition NaniteResources.h:369
Definition NaniteResources.h:93
uint32 LODErrorAndEdgeLength
Definition NaniteResources.h:109
uint32 GetPositionOffset() const
Definition NaniteResources.h:129
void SetBitsPerAttribute(uint32 Bits)
Definition NaniteResources.h:167
FVector3f BoxBoundsExtent
Definition NaniteResources.h:111
void SetNumVerts(uint32 NumVerts)
Definition NaniteResources.h:149
void SetPosPrecision(int32 Precision)
Definition NaniteResources.h:156
void SetDecodeInfoOffset(uint32 Offset)
Definition NaniteResources.h:169
uint32 Dummy0
Definition NaniteResources.h:123
void SetColorBitsR(uint32 NumBits)
Definition NaniteResources.h:175
uint32 GetFlags() const
Definition NaniteResources.h:142
void SetBrickDataOffset(uint32 Offset)
Definition NaniteResources.h:185
void SetGroupIndex(uint32 GroupIndex)
Definition NaniteResources.h:180
uint32 GetPosBitsY() const
Definition NaniteResources.h:137
uint32 Flags_NumClusterBoneInfluences
Definition NaniteResources.h:112
void SetExtendedDataOffset(uint32 Offset)
Definition NaniteResources.h:182
int32 GetPosPrecision() const
Definition NaniteResources.h:135
uint32 GetIndexOffset() const
Definition NaniteResources.h:132
void SetNormalPrecision(uint32 NumBits)
Definition NaniteResources.h:160
void SetPosBitsY(uint32 NumBits)
Definition NaniteResources.h:158
uint32 BitsPerIndex_PosPrecision_PosBits_NormalPrecision_TangentPrecision
Definition NaniteResources.h:103
void SetBrickDataNum(uint32 Num)
Definition NaniteResources.h:186
uint32 GetNumVerts() const
Definition NaniteResources.h:128
void SetPosBitsX(uint32 NumBits)
Definition NaniteResources.h:157
FSphere3f LODBounds
Definition NaniteResources.h:106
void SetVertResourceBatchInfo(TArray< uint32 > &BatchInfo, uint32 GpuPageOffset, uint32 NumMaterialRanges)
Definition NaniteResources.h:188
uint32 GetNumClusterBoneInfluences() const
Definition NaniteResources.h:143
FVector3f BoxBoundsCenter
Definition NaniteResources.h:108
uint32 GetTangentPrecision() const
Definition NaniteResources.h:140
uint32 VertReuseBatchInfo[4]
Definition NaniteResources.h:126
uint32 GetPosBitsZ() const
Definition NaniteResources.h:138
void SetNumTris(uint32 NumTris)
Definition NaniteResources.h:152
void SetTangentPrecision(uint32 NumBits)
Definition NaniteResources.h:161
void SetExtendedDataNum(uint32 Num)
Definition NaniteResources.h:183
uint32 PackedMaterialInfo
Definition NaniteResources.h:119
void SetAttributeOffset(uint32 Offset)
Definition NaniteResources.h:166
uint32 NumVerts_PositionOffset
Definition NaniteResources.h:97
FIntVector PosStart
Definition NaniteResources.h:102
void SetPositionOffset(uint32 Offset)
Definition NaniteResources.h:150
uint32 ExtendedDataOffset_Num
Definition NaniteResources.h:121
void SetBitsPerIndex(uint32 BitsPerIndex)
Definition NaniteResources.h:155
uint32 GetAttributeOffset() const
Definition NaniteResources.h:146
uint32 NumTris_IndexOffset
Definition NaniteResources.h:98
uint32 DecodeInfoOffset_HasTangents_Skinning_NumUVs_ColorMode
Definition NaniteResources.h:116
void SetHasTangents(bool bHasTangents)
Definition NaniteResources.h:170
uint32 GetPosBitsX() const
Definition NaniteResources.h:136
void SetColorMode(uint32 Mode)
Definition NaniteResources.h:173
void SetFlags(uint32 Flags)
Definition NaniteResources.h:163
void SetIndexOffset(uint32 Offset)
Definition NaniteResources.h:153
void SetHasSkinning(bool bSkinning)
Definition NaniteResources.h:171
uint32 UVBitOffsets
Definition NaniteResources.h:117
uint32 GetBitsPerAttribute() const
Definition NaniteResources.h:147
uint32 ColorMin
Definition NaniteResources.h:99
void SetNumUVs(uint32 Num)
Definition NaniteResources.h:172
uint32 GetNumTris() const
Definition NaniteResources.h:131
void SetPosBitsZ(uint32 NumBits)
Definition NaniteResources.h:159
void SetColorBitsG(uint32 NumBits)
Definition NaniteResources.h:176
uint32 Dummy1
Definition NaniteResources.h:124
void SetColorBitsB(uint32 NumBits)
Definition NaniteResources.h:177
uint32 BrickDataOffset_Num
Definition NaniteResources.h:122
uint32 AttributeOffset_BitsPerAttribute
Definition NaniteResources.h:115
void SetColorBitsA(uint32 NumBits)
Definition NaniteResources.h:178
uint32 ColorBits_GroupIndex
Definition NaniteResources.h:100
void SetNumClusterBoneInfluences(uint32 N)
Definition NaniteResources.h:164
uint32 GetNormalPrecision() const
Definition NaniteResources.h:139
uint32 GetBitsPerIndex() const
Definition NaniteResources.h:134
Definition NaniteResources.h:51
FVector3f BoxBoundsExtent
Definition NaniteResources.h:62
uint32 MinLODError_MaxParentLODError
Definition NaniteResources.h:57
uint32 ChildStartReference
Definition NaniteResources.h:63
FVector4f LODBounds[NANITE_MAX_BVH_NODE_FANOUT]
Definition NaniteResources.h:52
struct Nanite::FPackedHierarchyNode::@1232 Misc2[NANITE_MAX_BVH_NODE_FANOUT]
FVector3f BoxBoundsCenter
Definition NaniteResources.h:56
uint32 ResourcePageRangeKey
Definition NaniteResources.h:68
uint32 GroupPartSize_AssemblyPartIndex
Definition NaniteResources.h:69
struct Nanite::FPackedHierarchyNode::@1231 Misc1[NANITE_MAX_BVH_NODE_FANOUT]
struct Nanite::FPackedHierarchyNode::@1230 Misc0[NANITE_MAX_BVH_NODE_FANOUT]
Definition NaniteResources.h:206
uint32 DependenciesStart
Definition NaniteResources.h:210
uint16 DependenciesNum
Definition NaniteResources.h:211
uint32 PageSize
Definition NaniteResources.h:209
uint8 Flags
Definition NaniteResources.h:213
uint32 BulkOffset
Definition NaniteResources.h:207
uint8 MaxHierarchyDepth
Definition NaniteResources.h:212
uint32 BulkSize
Definition NaniteResources.h:208
Definition NaniteResources.h:410
TArray< uint8 > RootData
Definition NaniteResources.h:412
uint64 VoxelMaterialsMask
Definition NaniteResources.h:431
uint32 NumInputVertices
Definition NaniteResources.h:428
TArray< FPageRangeKey > PageRangeLookup
Definition NaniteResources.h:421
ENGINE_API bool ReleaseResources()
Definition NaniteResources.cpp:298
TArray< FPackedHierarchyNode > HierarchyNodes
Definition NaniteResources.h:415
uint32 NumClusters
Definition NaniteResources.h:429
uint32 RuntimeResourceID
Definition NaniteResources.h:434
int32 NormalPrecision
Definition NaniteResources.h:425
void ForEachPage(FPageRangeKey PageRangeKey, const TFunc &Func, bool bStreamingPagesOnly=false) const
Definition NaniteResources.h:560
uint32 NumHierarchyDwords
Definition NaniteResources.h:440
uint32 NumRootPages
Definition NaniteResources.h:423
ENGINE_API bool HasStreamingData() const
Definition NaniteResources.cpp:391
TArray< uint32 > AssemblyBoneAttachmentData
Definition NaniteResources.h:420
uint32 ResourceFlags
Definition NaniteResources.h:430
bool IsRootPage(uint32 PageIndex) const
Definition NaniteResources.h:503
FByteBulkData StreamablePages
Definition NaniteResources.h:413
uint32 HierarchyOffset
Definition NaniteResources.h:435
TArray< FPageStreamingState > PageStreamingStates
Definition NaniteResources.h:417
TArray< uint32 > HierarchyRootOffsets
Definition NaniteResources.h:416
TArray< FMatrix3x4 > AssemblyTransforms
Definition NaniteResources.h:419
bool TrueForAllPages(FPageRangeKey PageRangeKey, const TFunc &Func, bool bStreamingPagesOnly=false) const
Definition NaniteResources.h:518
uint32 NumHierarchyNodes
Definition NaniteResources.h:439
TArray< uint16 > PageDependencies
Definition NaniteResources.h:418
uint32 NumInputTriangles
Definition NaniteResources.h:427
ENGINE_API void InitResources(const UObject *Owner)
Definition NaniteResources.cpp:269
uint32 PersistentHash
Definition NaniteResources.h:442
FBoxSphereBounds3f MeshBounds
Definition NaniteResources.h:422
int32 TangentPrecision
Definition NaniteResources.h:426
uint32 NumResidentClusters
Definition NaniteResources.h:441
int32 PositionPrecision
Definition NaniteResources.h:424
int32 RootPageIndex
Definition NaniteResources.h:437
void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize) const
Definition NaniteResources.cpp:532
TArray< uint16 > ImposterAtlas
Definition NaniteResources.h:414
ENGINE_API bool IsValidPageRangeKey(FPageRangeKey PageRangeKey) const
Definition NaniteResources.cpp:547
uint32 AssemblyTransformOffset
Definition NaniteResources.h:436
int32 ImposterIndex
Definition NaniteResources.h:438
Definition IsContiguousContainer.h:16
Definition UnrealTypeTraits.h:172