68#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
90 enum class ETransformsToUpdate
96 void UpdateBonesRemovedByLOD(
170 return bHasValidMaterials;
178 BonesToRemoveCache.LODIndex =
LODIndex;
181 return BonesToRemoveCache.BonesToRemove;
190 struct FSkeletalMeshObjectLOD
205 , bInitialized(
false)
210 void ReleaseResources();
220 bool bHasValidMaterials =
false;
229 } BonesToRemoveCache;
268 return &LODs[LODIndex].VertexFactory;
294 struct FSkeletalMeshObjectLOD
299 bool bInitialized =
false;
300 bool bStaticRayTracingGeometryInitialized =
false;
305 void ReleaseResources();
#define check(expr)
Definition AssertionMacros.h:314
@ INDEX_NONE
Definition CoreMiscDefines.h:150
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void Init()
Definition LockFreeList.h:4
ESkinVertexFactoryMode
Definition SkeletalMeshTypes.h:51
EPreviousBoneTransformUpdateMode
Definition SkeletalRenderPublic.h:62
Definition SkeletalRenderNanite.h:31
uint32 BoneTransformFrameNumber
Definition SkeletalRenderNanite.h:73
TArray< FTransform > ComponentSpaceTransforms
Definition SkeletalRenderNanite.h:70
int32 LODIndex
Definition SkeletalRenderNanite.h:82
uint8 bNeedsBoneTransformsPrevious
Definition SkeletalRenderNanite.h:79
uint8 bNeedsBoneTransformsCurrent
Definition SkeletalRenderNanite.h:78
int32 RayTracingLODIndex
Definition SkeletalRenderNanite.h:83
void BuildBoneTransforms(FDynamicSkelMeshObjectDataNanite *PreviousDynamicData)
Definition SkeletalRenderNanite.cpp:128
uint32 RevisionNumber
Definition SkeletalRenderNanite.h:74
EPreviousBoneTransformUpdateMode PreviousBoneTransformUpdateMode
Definition SkeletalRenderNanite.h:76
TArray< FMatrix44f > ReferenceToLocalForRayTracing
Definition SkeletalRenderNanite.h:53
TConstArrayView< FMatrix44f > GetReferenceToLocal() const
Definition SkeletalRenderNanite.h:56
void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize)
Definition SkeletalRenderNanite.cpp:145
bool IsRequiredUpdate() const
Definition SkeletalRenderNanite.h:61
uint32 PreviousRevisionNumber
Definition SkeletalRenderNanite.h:75
TArray< FMatrix44f > ReferenceToLocal
Definition SkeletalRenderNanite.h:52
TArray< FMatrix44f > PreviousReferenceToLocal
Definition SkeletalRenderNanite.h:54
uint8 bRecreating
Definition SkeletalRenderNanite.h:77
Definition GPUSkinCache.h:126
Definition SkeletalRenderNanite.h:237
virtual TArray< FTransform > * GetComponentSpaceTransforms() const override
Definition SkeletalRenderNanite.h:271
virtual TConstArrayView< FMatrix44f > GetReferenceToLocalMatrices() const override
Definition SkeletalRenderNanite.h:273
virtual const FVertexFactory * GetSkinVertexFactory(const FSceneView *View, int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override
Definition SkeletalRenderNanite.h:260
virtual TConstArrayView< FMatrix44f > GetPrevReferenceToLocalMatrices() const override
Definition SkeletalRenderNanite.h:275
virtual int32 GetLOD() const override
Definition SkeletalRenderNanite.h:277
virtual FSkinningSceneExtensionProxy * CreateSceneExtensionProxy(const USkinnedAsset *InSkinnedAsset, bool bAllowScaling) override
Definition SkeletalRenderNanite.cpp:910
virtual void ReleaseResources() override
Definition SkeletalRenderNanite.cpp:888
virtual void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize) override
Definition SkeletalRenderNanite.cpp:904
virtual bool HaveValidDynamicData() const override
Definition SkeletalRenderNanite.h:279
virtual const Nanite::FMaterialAudit * GetNaniteMaterials() const override
Definition SkeletalRenderNanite.h:286
virtual void InitResources(const FSkinnedMeshSceneProxyDesc &InMeshDesc) override
Definition SkeletalRenderNanite.cpp:868
virtual bool IsNaniteMesh() const override
Definition SkeletalRenderNanite.h:285
virtual void Update(int32 LODIndex, const FSkinnedMeshSceneProxyDynamicData &InDynamicData, const FPrimitiveSceneProxy *InSceneProxy, const USkinnedAsset *InSkinnedAsset, const FMorphTargetWeightMap &InActiveMorphTargets, const TArray< float > &MorphTargetWeights, EPreviousBoneTransformUpdateMode PreviousBoneTransformUpdateMode, const FExternalMorphWeightData &InExternalMorphWeightData) override
Definition SkeletalRenderNanite.h:247
virtual const FVertexFactory * GetStaticSkinVertexFactory(int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override
Definition SkeletalRenderNanite.h:265
virtual void UpdateSkinWeightBuffer(const TArrayView< const FSkelMeshComponentLODInfo > InLODInfo) override
Definition SkeletalRenderNanite.h:283
Definition LocalVertexFactory.h:51
Definition PrimitiveDrawInterface.h:19
Definition PrimitiveSceneProxy.h:296
Definition RHICommandList.h:455
Definition RHICommandList.h:3819
Definition RayTracingGeometry.h:31
bool IsInitialized() const
Definition RenderResource.h:114
Definition SceneView.h:1425
Definition SkeletalMeshLODRenderData.h:128
Definition SkeletalRenderNanite.h:105
virtual void InitResources(const FSkinnedMeshSceneProxyDesc &InMeshDesc) override
Definition SkeletalRenderNanite.cpp:462
void UpdateDynamicData_RenderThread(FRHICommandList &RHICmdList, FGPUSkinCache *GPUSkinCache, FDynamicSkelMeshObjectDataNanite *InDynamicData)
Definition SkeletalRenderNanite.cpp:619
virtual void ReleaseResources() override
Definition SkeletalRenderNanite.cpp:484
virtual ~FSkeletalMeshObjectNanite()
Definition SkeletalRenderNanite.cpp:457
virtual bool IsNaniteMesh() const override
Definition SkeletalRenderNanite.h:141
virtual TConstArrayView< FMatrix44f > GetPrevReferenceToLocalMatrices() const override
Definition SkeletalRenderNanite.cpp:682
bool HasValidMaterials() const
Definition SkeletalRenderNanite.h:168
virtual const FVertexFactory * GetSkinVertexFactory(const FSceneView *View, int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode=ESkinVertexFactoryMode::Default) const override
Definition SkeletalRenderNanite.cpp:639
virtual TConstArrayView< FMatrix44f > GetReferenceToLocalMatrices() const override
Definition SkeletalRenderNanite.cpp:677
TConstArrayView< FBoneReference > BonesToRemove
Definition SkeletalRenderNanite.h:227
TConstArrayView< FBoneReference > GetCachedBonesToRemove(const USkinnedAsset *SkinnedAsset, int32 LODIndex)
Definition SkeletalRenderNanite.h:173
virtual const Nanite::FMaterialAudit * GetNaniteMaterials() const override
Definition SkeletalRenderNanite.h:142
virtual FSkinWeightVertexBuffer * GetSkinWeightVertexBuffer(int32 LODIndex) const
Definition SkeletalRenderNanite.cpp:832
int32 LODIndex
Definition SkeletalRenderNanite.h:226
const USkinnedAsset * SkinnedAsset
Definition SkeletalRenderNanite.h:225
virtual const FVertexFactory * GetStaticSkinVertexFactory(int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode=ESkinVertexFactoryMode::Default) const override
Definition SkeletalRenderNanite.cpp:651
void UpdateSkinWeightBuffer(USkinnedMeshComponent *InMeshComponent)
Definition SkeletalRenderNanite.cpp:723
virtual bool HaveValidDynamicData() const override
Definition SkeletalRenderNanite.cpp:701
virtual TArray< FTransform > * GetComponentSpaceTransforms() const override
Definition SkeletalRenderNanite.cpp:663
virtual int32 GetLOD() const override
Definition SkeletalRenderNanite.cpp:695
virtual void GetResourceSizeEx(FResourceSizeEx &CumulativeResourceSize) override
Definition SkeletalRenderNanite.cpp:706
Definition SkeletalRenderPublic.h:85
ERHIFeatureLevel::Type FeatureLevel
Definition SkeletalRenderPublic.h:449
TArray< FSkelMeshObjectLODInfo > LODInfo
Definition SkeletalRenderPublic.h:342
Definition SkeletalMeshRenderData.h:17
Definition SkeletalMeshUpdater.h:353
Definition SkeletalRenderNanite.cpp:239
Definition SkinWeightVertexBuffer.h:364
Definition SkinningSceneExtensionProxy.h:17
Definition VertexFactory.h:661
Definition ArrayView.h:139
UE_NODEBUG UE_FORCEINLINE_HINT bool IsValidIndex(SizeType Index) const
Definition Array.h:1122
Definition SkeletalMeshUpdater.h:128
Definition SkeletalMeshUpdater.h:209
Definition UniquePtr.h:107
Definition MorphTarget.h:230
Definition SkinnedAsset.h:47
virtual FSkeletalMeshLODInfo * GetLODInfo(int32 Index) PURE_VIRTUAL(USkinnedAsset
Definition SkinnedAsset.h:61
Definition SkinnedMeshComponent.h:258
Type
Definition RHIFeatureLevel.h:20
@ false
Definition radaudio_common.h:23
Definition ExternalMorphSet.h:42
Definition InstancedSkinnedMeshSceneProxyDesc.h:11
Definition ResourceSize.h:31
Definition SkinnedMeshComponent.h:175
TArray< FBoneReference > BonesToRemove
Definition SkinnedAssetCommon.h:171
Definition SkinnedMeshSceneProxyDesc.h:21
Definition SkinnedMeshSceneProxyDesc.h:117
Definition NaniteSceneProxy.h:66
Definition ObjectPtr.h:488