UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FInstancedSkeletalMeshObjectGPUSkin Class Reference

#include <SkeletalRenderGPUSkin.h>

+ Inheritance diagram for FInstancedSkeletalMeshObjectGPUSkin:

Public Member Functions

 FInstancedSkeletalMeshObjectGPUSkin (const FInstancedSkinnedMeshSceneProxyDesc &InMeshDesc, FSkeletalMeshRenderData *InRenderData, ERHIFeatureLevel::Type InFeatureLevel)
 
 FInstancedSkeletalMeshObjectGPUSkin (USkinnedMeshComponent *InComponent, FSkeletalMeshRenderData *InRenderData, ERHIFeatureLevel::Type InFeatureLevel)
 
virtual void InitResources (const FSkinnedMeshSceneProxyDesc &InMeshDesc) override
 
virtual void ReleaseResources () override
 
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
 
virtual FSkinningSceneExtensionProxyCreateSceneExtensionProxy (const USkinnedAsset *InSkinnedAsset, bool bAllowScaling) override
 
virtual const FVertexFactoryGetSkinVertexFactory (const FSceneView *View, int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override
 
virtual const FVertexFactoryGetStaticSkinVertexFactory (int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const override
 
virtual TArray< FTransform > * GetComponentSpaceTransforms () const override
 
virtual TConstArrayView< FMatrix44fGetReferenceToLocalMatrices () const override
 
virtual TConstArrayView< FMatrix44fGetPrevReferenceToLocalMatrices () const override
 
virtual int32 GetLOD () const override
 
virtual bool HaveValidDynamicData () const override
 
virtual void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize) override
 
virtual void UpdateSkinWeightBuffer (const TArrayView< const FSkelMeshComponentLODInfo > InLODInfo) override
 
virtual bool IsGPUSkinMesh () const override
 
- Public Member Functions inherited from FSkeletalMeshObject
ENGINE_API FSkeletalMeshObject (const USkinnedMeshComponent *InMeshComponent, FSkeletalMeshRenderData *InSkelMeshRenderData, ERHIFeatureLevel::Type FeatureLevel)
 
ENGINE_API FSkeletalMeshObject (const FSkinnedMeshSceneProxyDesc &InMeshDesc, FSkeletalMeshRenderData *InSkelMeshRenderData, ERHIFeatureLevel::Type FeatureLevel)
 
virtual ENGINE_API ~FSkeletalMeshObject ()
 
ENGINE_API void Update (int32 LODIndex, const USkinnedMeshComponent *InMeshComponent, const FMorphTargetWeightMap &InActiveMorphTargets, const TArray< float > &MorphTargetWeights, EPreviousBoneTransformUpdateMode PreviousBoneTransformUpdateMode, const FExternalMorphWeightData &InExternalMorphWeightData)
 
virtual void PreGDMECallback (FRHICommandList &RHICmdList, class FGPUSkinCache *GPUSkinCache, uint32 FrameNumber)
 
virtual const FSkinBatchVertexFactoryUserDataGetVertexFactoryUserData (const int32 LODIndex, int32 ChunkIdx, ESkinVertexFactoryMode VFMode) const
 
virtual bool IsCPUSkinned () const
 
virtual bool IsNaniteMesh () const
 
virtual const Nanite::FMaterialAuditGetNaniteMaterials () const
 
virtual const TArray< FMatrix3x4 > * GetCurrentBoneTransforms () const
 
virtual const TArray< FMatrix3x4 > * GetPreviousBoneTransforms () const
 
virtual bool GetCachedGeometry (FRDGBuilder &GraphBuilder, FCachedGeometry &OutCachedGeometry) const
 
bool GetCachedGeometry (FCachedGeometry &OutCachedGeometry) const
 
void UpdateSkinWeightBuffer (const USkinnedMeshComponent *InMeshComponent)
 
virtual void EnableOverlayRendering (bool bEnabled, const TArray< int32 > *InBonesOfInterest, const TArray< UMorphTarget * > *MorphTargetOfInterest)
 
virtual void DrawVertexElements (FPrimitiveDrawInterface *PDI, const FMatrix &ToWorldSpace, bool bDrawNormals, bool bDrawTangents, bool bDrawBinormals) const
 
void UpdateMinDesiredLODLevel (const FSceneView *View, const FBoxSphereBounds &Bounds)
 
bool ShouldUsePerBoneMotionBlur () const
 
ENGINE_API const TArray< FSkelMeshRenderSection > & GetRenderSections (int32 InLODIndex) const
 
void SetHiddenMaterials (int32 InLODIndex, const TArray< bool > &HiddenMaterials)
 
bool IsMaterialHidden (int32 InLODIndex, int32 MaterialIdx) const
 
void InitLODInfos (const TArrayView< const FSkelMeshComponentLODInfo > InComponentLODInfo, const USkinnedAsset *InSkinnedAsset)
 
uint32 GetComponentId () const
 
TStatId GetStatId () const
 
FSkeletalMeshRenderDataGetSkeletalMeshRenderData () const
 
FColor GetSkinCacheVisualizationDebugColor (const FName &GPUSkinCacheVisualizationMode, uint32 SectionIndex) const
 
FName GetAssetPathName (int32 LODIndex=-1) const
 
virtual void SetTransform (const FMatrix &InNewLocalToWorld, uint32 FrameNumber)
 
virtual void RefreshClothingTransforms (const FMatrix &InNewLocalToWorld, uint32 FrameNumber)
 
FName GetDebugName () const
 
ERHIFeatureLevel::Type GetFeatureLevel () const
 
bool SupportsStaticRelevance () const
 
float GetScreenSize (int32 LODIndex) const
 
virtual const FSkinWeightVertexBufferGetSkinWeightVertexBuffer (int32 LODIndex) const
 
virtual int32 GetDynamicBoundsStartOffset (int32 LODIndex) const
 
- Public Member Functions inherited from FDeferredCleanupInterface
virtual ~FDeferredCleanupInterface ()
 

Additional Inherited Members

- Static Public Member Functions inherited from FSkeletalMeshObject
static FSkinWeightVertexBufferGetSkinWeightVertexBuffer (FSkeletalMeshLODRenderData &LODData, const FSkelMeshComponentLODInfo *CompLODInfo)
 
static FColorVertexBufferGetColorVertexBuffer (FSkeletalMeshLODRenderData &LODData, const FSkelMeshComponentLODInfo *CompLODInfo)
 
- Public Attributes inherited from FSkeletalMeshObject
TArray< FSkelMeshObjectLODInfoLODInfo
 
TArray< FCapsuleShape3fShadowCapsuleShapes
 
int32 MinDesiredLODLevel
 
float MaxDistanceFactor
 
int32 WorkingMinDesiredLODLevel
 
float WorkingMaxDistanceFactor
 
bool bHasBeenUpdatedAtLeastOnce
 
FName DebugName
 
- Protected Attributes inherited from FSkeletalMeshObject
FSkeletalMeshRenderDataSkeletalMeshRenderData
 
FGPUSkinCacheEntrySkinCacheEntry
 
FGPUSkinCacheEntrySkinCacheEntryForRayTracing
 
uint32 LastFrameNumber
 
UE::FMutex DesiredLODLevelMutex
 
bool bUsePerBoneMotionBlur
 
bool bSupportsStaticRelevance = false
 
TStatId StatId
 
ERHIFeatureLevel::Type FeatureLevel
 
uint32 ComponentId
 
FVector WorldScale = FVector::OneVector
 

Constructor & Destructor Documentation

◆ FInstancedSkeletalMeshObjectGPUSkin() [1/2]

FInstancedSkeletalMeshObjectGPUSkin::FInstancedSkeletalMeshObjectGPUSkin ( const FInstancedSkinnedMeshSceneProxyDesc InMeshDesc,
FSkeletalMeshRenderData InRenderData,
ERHIFeatureLevel::Type  InFeatureLevel 
)

◆ FInstancedSkeletalMeshObjectGPUSkin() [2/2]

FInstancedSkeletalMeshObjectGPUSkin::FInstancedSkeletalMeshObjectGPUSkin ( USkinnedMeshComponent InComponent,
FSkeletalMeshRenderData InRenderData,
ERHIFeatureLevel::Type  InFeatureLevel 
)

Member Function Documentation

◆ CreateSceneExtensionProxy()

FSkinningSceneExtensionProxy * FInstancedSkeletalMeshObjectGPUSkin::CreateSceneExtensionProxy ( const USkinnedAsset InSkinnedAsset,
bool  bAllowScaling 
)
overridevirtual

Reimplemented from FSkeletalMeshObject.

◆ GetComponentSpaceTransforms()

virtual TArray< FTransform > * FInstancedSkeletalMeshObjectGPUSkin::GetComponentSpaceTransforms ( ) const
inlineoverridevirtual

Get the array of component-space bone transforms. May include transforms that are inherited by follower components. Not safe to hold this point between frames, because it exists in dynamic data passed from main thread.

Implements FSkeletalMeshObject.

◆ GetLOD()

virtual int32 FInstancedSkeletalMeshObjectGPUSkin::GetLOD ( ) const
inlineoverridevirtual

Get the LOD to render this mesh at.

Implements FSkeletalMeshObject.

◆ GetPrevReferenceToLocalMatrices()

virtual TConstArrayView< FMatrix44f > FInstancedSkeletalMeshObjectGPUSkin::GetPrevReferenceToLocalMatrices ( ) const
inlineoverridevirtual

Get the array of previous refpose->local matrices Not safe to hold this reference between frames, because it exists in dynamic data passed from main thread.

Reimplemented from FSkeletalMeshObject.

◆ GetReferenceToLocalMatrices()

virtual TConstArrayView< FMatrix44f > FInstancedSkeletalMeshObjectGPUSkin::GetReferenceToLocalMatrices ( ) const
inlineoverridevirtual

Get the array of refpose->local matrices Not safe to hold this reference between frames, because it exists in dynamic data passed from main thread.

Implements FSkeletalMeshObject.

◆ GetResourceSizeEx()

void FInstancedSkeletalMeshObjectGPUSkin::GetResourceSizeEx ( FResourceSizeEx CumulativeResourceSize)
overridevirtual

Returns the size of memory allocated by render data

Implements FSkeletalMeshObject.

◆ GetSkinVertexFactory()

const FVertexFactory * FInstancedSkeletalMeshObjectGPUSkin::GetSkinVertexFactory ( const FSceneView View,
int32  LODIndex,
int32  ChunkIdx,
ESkinVertexFactoryMode  VFMode 
) const
overridevirtual
Parameters
View- View, must not be 0, allows to cull depending on showflags (normally not needed/used in SHIPPING)
LODIndex- each LOD has its own vertex data
ChunkIdx- not used
Returns
vertex factory for rendering the LOD, 0 to suppress rendering

Implements FSkeletalMeshObject.

◆ GetStaticSkinVertexFactory()

const FVertexFactory * FInstancedSkeletalMeshObjectGPUSkin::GetStaticSkinVertexFactory ( int32  LODIndex,
int32  ChunkIdx,
ESkinVertexFactoryMode  VFMode 
) const
overridevirtual

Called by DrawStaticElements to cache mesh draw commands for skeletal meshes.

Implements FSkeletalMeshObject.

◆ HaveValidDynamicData()

virtual bool FInstancedSkeletalMeshObjectGPUSkin::HaveValidDynamicData ( ) const
inlineoverridevirtual

Return true if this does have valid dynamic data to render

Implements FSkeletalMeshObject.

◆ InitResources()

void FInstancedSkeletalMeshObjectGPUSkin::InitResources ( const FSkinnedMeshSceneProxyDesc InMeshDesc)
overridevirtual

Initialize rendering resources for each LOD

Implements FSkeletalMeshObject.

◆ IsGPUSkinMesh()

virtual bool FInstancedSkeletalMeshObjectGPUSkin::IsGPUSkinMesh ( ) const
inlineoverridevirtual

Returns true if this mesh is an FSkeletalMeshObjectGPUSkin

Reimplemented from FSkeletalMeshObject.

◆ ReleaseResources()

void FInstancedSkeletalMeshObjectGPUSkin::ReleaseResources ( )
overridevirtual

Release rendering resources for each LOD

Implements FSkeletalMeshObject.

◆ Update()

virtual void FInstancedSkeletalMeshObjectGPUSkin::Update ( int32  LODIndex,
const FSkinnedMeshSceneProxyDynamicData InDynamicData,
const FPrimitiveSceneProxy InSceneProxy,
const USkinnedAsset InSkinnedAsset,
const FMorphTargetWeightMap InActiveMorphTargets,
const TArray< float > &  MorphTargetWeights,
EPreviousBoneTransformUpdateMode  PreviousBoneTransformUpdateMode,
const FExternalMorphWeightData InExternalMorphWeightData 
)
inlineoverridevirtual

Implements FSkeletalMeshObject.

◆ UpdateSkinWeightBuffer()

virtual void FInstancedSkeletalMeshObjectGPUSkin::UpdateSkinWeightBuffer ( const TArrayView< const FSkelMeshComponentLODInfo InLODInfo)
inlineoverridevirtual

Implements FSkeletalMeshObject.


The documentation for this class was generated from the following files: