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

#include <SkinWeightVertexBuffer.h>

+ Inheritance diagram for FSkinWeightDataVertexBuffer:

Public Member Functions

ENGINE_API FSkinWeightDataVertexBuffer ()
 
ENGINE_API FSkinWeightDataVertexBuffer (const FSkinWeightDataVertexBuffer &Other)
 
ENGINE_API ~FSkinWeightDataVertexBuffer ()
 
ENGINE_API FSkinWeightDataVertexBufferoperator= (const FSkinWeightDataVertexBuffer &Other)
 
ENGINE_API void CleanUp ()
 
ENGINE_API void Init (uint32 InNumWeights, uint32 InNumVertices)
 
void SerializeMetaData (FArchive &Ar)
 
ENGINE_API void SetMetaData (uint32 InNumVertices, uint32 InMaxBoneInfluences, bool bInUse16BitBoneIndex, bool bInUse16BitBoneWeight)
 
void CopyMetaData (const FSkinWeightDataVertexBuffer &Other)
 
virtual ENGINE_API void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual ENGINE_API void ReleaseRHI () override
 
virtual FString GetFriendlyName () const override
 
uint32 GetNumVertices () const
 
uint32 GetNumBoneWeights () const
 
uint32 GetBoneIndexByteSize () const
 
uint32 GetBoneWeightByteSize () const
 
uint32 GetBoneIndexAndWeightByteSize () const
 
uint32 GetConstantInfluencesVertexStride () const
 
uint32 GetConstantInfluencesBoneWeightsOffset () const
 
uint32 GetVertexDataSize () const
 
FRHIShaderResourceViewGetSRV () const
 
void SetNeedsCPUAccess (bool bInNeedsCPUAccess)
 
bool GetNeedsCPUAccess () const
 
bool GetVariableBonesPerVertex () const
 
ENGINE_API void SetMaxBoneInfluences (uint32 InMaxBoneInfluences)
 
uint32 GetMaxBoneInfluences () const
 
void SetUse16BitBoneIndex (bool bInUse16BitBoneIndex)
 
bool Use16BitBoneIndex () const
 
void SetUse16BitBoneWeight (bool bInUse16BitBoneWeight)
 
bool Use16BitBoneWeight () const
 
ENGINE_API GPUSkinBoneInfluenceType GetBoneInfluenceType () const
 
ENGINE_API bool GetRigidWeightBone (uint32 VertexWeightOffset, uint32 VertexInfluenceCount, int32 &OutBoneIndex) const
 
ENGINE_API uint32 GetBoneIndex (uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex) const
 
ENGINE_API void SetBoneIndex (uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex, uint32 BoneIndex)
 
ENGINE_API uint16 GetBoneWeight (uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex) const
 
ENGINE_API void SetBoneWeight (uint32 VertexWeightOffset, uint32 VertexInfluenceCount, uint32 InfluenceIndex, uint16 BoneWeight)
 
ENGINE_API void ResetVertexBoneWeights (uint32 VertexWeightOffset, uint32 VertexInfluenceCount)
 
ENGINE_API void CopyDataFromBuffer (const uint8 *InSkinWeightData, uint32 InNumVertices)
 
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList)
 
void InitRHIForStreaming (FRHIBuffer *IntermediateBuffer, FRHIResourceReplaceBatcher &Batcher)
 
void ReleaseRHIForStreaming (FRHIResourceReplaceBatcher &Batcher)
 
bool IsWeightDataValid () const
 
const uint8GetWeightData () const
 
uint8GetWeightData ()
 
- Public Member Functions inherited from FVertexBuffer
RENDERCORE_API FVertexBuffer ()
 
RENDERCORE_API FVertexBuffer (const FVertexBuffer &)
 
RENDERCORE_API FVertexBufferoperator= (const FVertexBuffer &Other)
 
virtual RENDERCORE_API ~FVertexBuffer ()
 
const FBufferRHIRefGetRHI () const
 
RENDERCORE_API void SetRHI (const FBufferRHIRef &BufferRHI)
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void ReleaseResource ()
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Protected Attributes

FShaderResourceViewRHIRef SRVValue
 

Friends

FArchiveoperator<< (FArchive &Ar, FSkinWeightDataVertexBuffer &VertexBuffer)
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 
- Public Attributes inherited from FVertexBuffer
FBufferRHIRef VertexBufferRHI
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Detailed Description

A vertex buffer storing bone index/weight data.

Constructor & Destructor Documentation

◆ FSkinWeightDataVertexBuffer() [1/2]

FSkinWeightDataVertexBuffer::FSkinWeightDataVertexBuffer ( )

Default constructor.

◆ FSkinWeightDataVertexBuffer() [2/2]

FSkinWeightDataVertexBuffer::FSkinWeightDataVertexBuffer ( const FSkinWeightDataVertexBuffer Other)

Constructor (copy)

◆ ~FSkinWeightDataVertexBuffer()

FSkinWeightDataVertexBuffer::~FSkinWeightDataVertexBuffer ( )

Destructor.

Member Function Documentation

◆ CleanUp()

void FSkinWeightDataVertexBuffer::CleanUp ( )

Delete existing resources

◆ CopyDataFromBuffer()

void FSkinWeightDataVertexBuffer::CopyDataFromBuffer ( const uint8 InSkinWeightData,
uint32  InNumVertices 
)

◆ CopyMetaData()

void FSkinWeightDataVertexBuffer::CopyMetaData ( const FSkinWeightDataVertexBuffer Other)

◆ CreateRHIBuffer()

FBufferRHIRef FSkinWeightDataVertexBuffer::CreateRHIBuffer ( FRHICommandListBase RHICmdList)

Create an RHI vertex buffer with CPU data. CPU data may be discarded after creation (see TResourceArray::Discard)

◆ GetBoneIndex()

uint32 FSkinWeightDataVertexBuffer::GetBoneIndex ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount,
uint32  InfluenceIndex 
) const

◆ GetBoneIndexAndWeightByteSize()

uint32 FSkinWeightDataVertexBuffer::GetBoneIndexAndWeightByteSize ( ) const
inline

◆ GetBoneIndexByteSize()

uint32 FSkinWeightDataVertexBuffer::GetBoneIndexByteSize ( ) const
inline
Returns
byte size of each bone index

◆ GetBoneInfluenceType()

ENGINE_API GPUSkinBoneInfluenceType FSkinWeightDataVertexBuffer::GetBoneInfluenceType ( ) const

◆ GetBoneWeight()

uint16 FSkinWeightDataVertexBuffer::GetBoneWeight ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount,
uint32  InfluenceIndex 
) const

◆ GetBoneWeightByteSize()

uint32 FSkinWeightDataVertexBuffer::GetBoneWeightByteSize ( ) const
inline

◆ GetConstantInfluencesBoneWeightsOffset()

uint32 FSkinWeightDataVertexBuffer::GetConstantInfluencesBoneWeightsOffset ( ) const
inline
Returns
offset position for bone weights data for each vertex

◆ GetConstantInfluencesVertexStride()

uint32 FSkinWeightDataVertexBuffer::GetConstantInfluencesVertexStride ( ) const
inline
Returns
vertex stride for when using constant number of bones per vertex buffer

◆ GetFriendlyName()

virtual FString FSkinWeightDataVertexBuffer::GetFriendlyName ( ) const
inlineoverridevirtual
Returns
The resource's friendly name. Typically a UObject name.

Reimplemented from FVertexBuffer.

◆ GetMaxBoneInfluences()

uint32 FSkinWeightDataVertexBuffer::GetMaxBoneInfluences ( ) const
inline

◆ GetNeedsCPUAccess()

bool FSkinWeightDataVertexBuffer::GetNeedsCPUAccess ( ) const
inline

◆ GetNumBoneWeights()

uint32 FSkinWeightDataVertexBuffer::GetNumBoneWeights ( ) const
inline
Returns
number of bone weights in this vertex buffer

◆ GetNumVertices()

uint32 FSkinWeightDataVertexBuffer::GetNumVertices ( ) const
inline
Returns
number of vertices in this vertex buffer

◆ GetRigidWeightBone()

bool FSkinWeightDataVertexBuffer::GetRigidWeightBone ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount,
int32 OutBoneIndex 
) const

◆ GetSRV()

FRHIShaderResourceView * FSkinWeightDataVertexBuffer::GetSRV ( ) const
inline

◆ GetVariableBonesPerVertex()

bool FSkinWeightDataVertexBuffer::GetVariableBonesPerVertex ( ) const
inline

◆ GetVertexDataSize()

uint32 FSkinWeightDataVertexBuffer::GetVertexDataSize ( ) const
inline
Returns
total size of data in resource array

◆ GetWeightData() [1/2]

uint8 * FSkinWeightDataVertexBuffer::GetWeightData ( )
inline

◆ GetWeightData() [2/2]

const uint8 * FSkinWeightDataVertexBuffer::GetWeightData ( ) const
inline

◆ Init()

void FSkinWeightDataVertexBuffer::Init ( uint32  InNumWeights,
uint32  InNumVertices 
)

◆ InitRHI()

void FSkinWeightDataVertexBuffer::InitRHI ( FRHICommandListBase RHICmdList)
overridevirtual

Initializes the RHI resources used by this resource. Called when entering the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FRenderResource.

◆ InitRHIForStreaming()

void FSkinWeightDataVertexBuffer::InitRHIForStreaming ( FRHIBuffer IntermediateBuffer,
FRHIResourceReplaceBatcher Batcher 
)

Similar to Init/ReleaseRHI but only update existing SRV so references to the SRV stays valid

◆ IsWeightDataValid()

bool FSkinWeightDataVertexBuffer::IsWeightDataValid ( ) const

◆ operator=()

FSkinWeightDataVertexBuffer & FSkinWeightDataVertexBuffer::operator= ( const FSkinWeightDataVertexBuffer Other)

Assignment. Assumes that vertex buffer will be rebuilt

◆ ReleaseRHI()

void FSkinWeightDataVertexBuffer::ReleaseRHI ( )
overridevirtual

Releases the RHI resources used by this resource. Called when leaving the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FVertexBuffer.

◆ ReleaseRHIForStreaming()

void FSkinWeightDataVertexBuffer::ReleaseRHIForStreaming ( FRHIResourceReplaceBatcher Batcher)

◆ ResetVertexBoneWeights()

void FSkinWeightDataVertexBuffer::ResetVertexBoneWeights ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount 
)

◆ SerializeMetaData()

void FSkinWeightDataVertexBuffer::SerializeMetaData ( FArchive Ar)

◆ SetBoneIndex()

void FSkinWeightDataVertexBuffer::SetBoneIndex ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount,
uint32  InfluenceIndex,
uint32  BoneIndex 
)

◆ SetBoneWeight()

void FSkinWeightDataVertexBuffer::SetBoneWeight ( uint32  VertexWeightOffset,
uint32  VertexInfluenceCount,
uint32  InfluenceIndex,
uint16  BoneWeight 
)

◆ SetMaxBoneInfluences()

void FSkinWeightDataVertexBuffer::SetMaxBoneInfluences ( uint32  InMaxBoneInfluences)

Set if this will have extra streams for bone indices & weights.

◆ SetMetaData()

void FSkinWeightDataVertexBuffer::SetMetaData ( uint32  InNumVertices,
uint32  InMaxBoneInfluences,
bool  bInUse16BitBoneIndex,
bool  bInUse16BitBoneWeight 
)

◆ SetNeedsCPUAccess()

void FSkinWeightDataVertexBuffer::SetNeedsCPUAccess ( bool  bInNeedsCPUAccess)
inline

Set if the CPU needs access to this vertex buffer

◆ SetUse16BitBoneIndex()

void FSkinWeightDataVertexBuffer::SetUse16BitBoneIndex ( bool  bInUse16BitBoneIndex)
inline

◆ SetUse16BitBoneWeight()

void FSkinWeightDataVertexBuffer::SetUse16BitBoneWeight ( bool  bInUse16BitBoneWeight)
inline

◆ Use16BitBoneIndex()

bool FSkinWeightDataVertexBuffer::Use16BitBoneIndex ( ) const
inline

◆ Use16BitBoneWeight()

bool FSkinWeightDataVertexBuffer::Use16BitBoneWeight ( ) const
inline

Friends And Related Symbol Documentation

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FSkinWeightDataVertexBuffer VertexBuffer 
)
friend

Member Data Documentation

◆ SRVValue

FShaderResourceViewRHIRef FSkinWeightDataVertexBuffer::SRVValue
protected

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