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

#include <SkeletalMeshDeformerHelpers.h>

Classes

struct  FClothBuffers
 

Static Public Member Functions

static ENGINE_API FRHIShaderResourceViewGetBoneBufferForReading (FSkeletalMeshObject const *InMeshObject, int32 InLodIndex, int32 InSectionIndex, bool bInPreviousFrame)
 
static ENGINE_API FRHIShaderResourceViewGetMorphTargetBufferForReading (FSkeletalMeshObject const *InMeshObject, int32 InLodIndex, int32 InSectionIndex, uint32 InFrameNumber, bool bInPreviousFrame)
 
static ENGINE_API FClothBuffers GetClothBuffersForReading (FSkeletalMeshObject const *InMeshObject, int32 InLodIndex, int32 InSectionIndex, uint32 InFrameNumber, bool bInPreviousFrame)
 
static ENGINE_API FRDGBufferGetAllocatedPositionBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API FRDGBufferGetAllocatedTangentBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API FRDGBufferGetAllocatedColorBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API int32 GetIndexOfFirstAvailableSection (FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryPositionBuffer (FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccesQueue, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, TCHAR const *InBufferName)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryTangentBuffer (FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccesQueue, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, TCHAR const *InBufferName)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryColorBuffer (FRDGBuilder &GraphBuilder, FRDGExternalAccessQueue &ExternalAccesQueue, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, TCHAR const *InBufferName)
 
static ENGINE_API void UpdateVertexFactoryBufferOverrides (FRHICommandListBase &RHICmdList, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, bool bInvalidatePreviousPosition)
 
static ENGINE_API void UpdateVertexFactoryBufferOverrides (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, bool bInvalidatePreviousPosition)
 
static ENGINE_API void ResetVertexFactoryBufferOverrides (FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryPositionBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, bool bInLodJustChanged, TCHAR const *InBufferName)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryTangentBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, TCHAR const *InBufferName)
 
static ENGINE_API FRDGBufferAllocateVertexFactoryColorBuffer (FRDGBuilder &GraphBuilder, FSkeletalMeshObject *InMeshObject, int32 InLodIndex, TCHAR const *InBufferName)
 
static ENGINE_API void UpdateVertexFactoryBufferOverrides (FRHICommandListBase &RHICmdList, FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 
static ENGINE_API void UpdateVertexFactoryBufferOverrides (FSkeletalMeshObject *InMeshObject, int32 InLodIndex)
 

Static Public Attributes

static constexpr uint32 PosBufferBytesPerElement = 4
 
static constexpr uint32 PosBufferElementMultiplier = 3
 
static constexpr uint32 TangentBufferBytesPerElement = 8
 
static constexpr uint32 TangentBufferElementMultiplier = 2
 
static constexpr uint32 ColorBufferBytesPerElement = 4
 

Detailed Description

Functions that expose some internal functionality of FSkeletalMeshObject required by MeshDeformer systems.

Member Function Documentation

◆ AllocateVertexFactoryColorBuffer() [1/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryColorBuffer ( FRDGBuilder GraphBuilder,
FRDGExternalAccessQueue ExternalAccesQueue,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
TCHAR const *  InBufferName 
)
static

Allocate and bind a new color buffer and return it for writing. Ownership is handled by the MeshObject. If we call this more than once for the same MeshObject in the same frame then we return the allocation from the first call.

◆ AllocateVertexFactoryColorBuffer() [2/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryColorBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
TCHAR const *  InBufferName 
)
static

◆ AllocateVertexFactoryPositionBuffer() [1/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryPositionBuffer ( FRDGBuilder GraphBuilder,
FRDGExternalAccessQueue ExternalAccesQueue,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
TCHAR const *  InBufferName 
)
static

Allocate and bind a new position buffer and return it for writing. Ownership is handled by the MeshObject. If we call this more than once for the same MeshObject in the same frame then we return the allocation from the first call.

◆ AllocateVertexFactoryPositionBuffer() [2/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryPositionBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
bool  bInLodJustChanged,
TCHAR const *  InBufferName 
)
static

◆ AllocateVertexFactoryTangentBuffer() [1/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryTangentBuffer ( FRDGBuilder GraphBuilder,
FRDGExternalAccessQueue ExternalAccesQueue,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
TCHAR const *  InBufferName 
)
static

Allocate and bind a new tangent buffer and return it for writing. Ownership is handled by the MeshObject. If we call this more than once for the same MeshObject in the same frame then we return the allocation from the first call.

◆ AllocateVertexFactoryTangentBuffer() [2/2]

FRDGBuffer * FSkeletalMeshDeformerHelpers::AllocateVertexFactoryTangentBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
TCHAR const *  InBufferName 
)
static

◆ GetAllocatedColorBuffer()

FRDGBuffer * FSkeletalMeshDeformerHelpers::GetAllocatedColorBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Returns the allocated writable color buffer if one has been allocated

◆ GetAllocatedPositionBuffer()

FRDGBuffer * FSkeletalMeshDeformerHelpers::GetAllocatedPositionBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Returns the allocated writable position buffer if one has been allocated

◆ GetAllocatedTangentBuffer()

FRDGBuffer * FSkeletalMeshDeformerHelpers::GetAllocatedTangentBuffer ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Returns the allocated writable tangent buffer if one has been allocated

◆ GetBoneBufferForReading()

FRHIShaderResourceView * FSkeletalMeshDeformerHelpers::GetBoneBufferForReading ( FSkeletalMeshObject const *  InMeshObject,
int32  InLodIndex,
int32  InSectionIndex,
bool  bInPreviousFrame 
)
static

Get direct access to bone matrix buffer SRV.

◆ GetClothBuffersForReading()

FSkeletalMeshDeformerHelpers::FClothBuffers FSkeletalMeshDeformerHelpers::GetClothBuffersForReading ( FSkeletalMeshObject const *  InMeshObject,
int32  InLodIndex,
int32  InSectionIndex,
uint32  InFrameNumber,
bool  bInPreviousFrame 
)
static

Get direct access to cloth buffer SRVs.

◆ GetIndexOfFirstAvailableSection()

int32 FSkeletalMeshDeformerHelpers::GetIndexOfFirstAvailableSection ( FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Returns the index of the first section that is not disabled

◆ GetMorphTargetBufferForReading()

FRHIShaderResourceView * FSkeletalMeshDeformerHelpers::GetMorphTargetBufferForReading ( FSkeletalMeshObject const *  InMeshObject,
int32  InLodIndex,
int32  InSectionIndex,
uint32  InFrameNumber,
bool  bInPreviousFrame 
)
static

Get direct access to morph target buffer SRV.

◆ ResetVertexFactoryBufferOverrides()

void FSkeletalMeshDeformerHelpers::ResetVertexFactoryBufferOverrides ( FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Release all of the the buffers that have been allocated through the AllocateVertexFactory*() functions. Reset all of the MeshObject's passthrough vertex factories.

◆ UpdateVertexFactoryBufferOverrides() [1/4]

void FSkeletalMeshDeformerHelpers::UpdateVertexFactoryBufferOverrides ( FRDGBuilder GraphBuilder,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
bool  bInvalidatePreviousPosition 
)
static

◆ UpdateVertexFactoryBufferOverrides() [2/4]

void FSkeletalMeshDeformerHelpers::UpdateVertexFactoryBufferOverrides ( FRHICommandListBase RHICmdList,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

◆ UpdateVertexFactoryBufferOverrides() [3/4]

void FSkeletalMeshDeformerHelpers::UpdateVertexFactoryBufferOverrides ( FRHICommandListBase RHICmdList,
FSkeletalMeshObject InMeshObject,
int32  InLodIndex,
bool  bInvalidatePreviousPosition 
)
static

Update all of the MeshObject's passthrough vertex factories with the currently allocated vertex buffers. Usually call this after all AllocateVertexFactory*() functions for a frame.

◆ UpdateVertexFactoryBufferOverrides() [4/4]

void FSkeletalMeshDeformerHelpers::UpdateVertexFactoryBufferOverrides ( FSkeletalMeshObject InMeshObject,
int32  InLodIndex 
)
static

Member Data Documentation

◆ ColorBufferBytesPerElement

constexpr uint32 FSkeletalMeshDeformerHelpers::ColorBufferBytesPerElement = 4
staticconstexpr

◆ PosBufferBytesPerElement

constexpr uint32 FSkeletalMeshDeformerHelpers::PosBufferBytesPerElement = 4
staticconstexpr

◆ PosBufferElementMultiplier

constexpr uint32 FSkeletalMeshDeformerHelpers::PosBufferElementMultiplier = 3
staticconstexpr

◆ TangentBufferBytesPerElement

constexpr uint32 FSkeletalMeshDeformerHelpers::TangentBufferBytesPerElement = 8
staticconstexpr

◆ TangentBufferElementMultiplier

constexpr uint32 FSkeletalMeshDeformerHelpers::TangentBufferElementMultiplier = 2
staticconstexpr

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