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

#include <SkeletalMeshLODRenderData.h>

+ Inheritance diagram for FSkeletalMeshLODRenderData:

Public Member Functions

void InitResources (bool bNeedsVertexColors, int32 LODIndex, USkinnedAsset *Owner)
 
void InitMorphResources ()
 
ENGINE_API void ReleaseResources ()
 
void ReleaseCPUResources (bool bForStreaming=false)
 
 FSkeletalMeshLODRenderData (bool bAddRef=true)
 
 ~FSkeletalMeshLODRenderData ()
 
void Serialize (FArchive &Ar, UObject *Owner, int32 Idx)
 
ENGINE_API void SerializeStreamedData (FArchive &Ar, USkinnedAsset *Owner, int32 LODIdx, uint8 ClassStripFlags, bool bNeedsCPUAccess, bool bForceKeepCPUResources)
 
void SerializeAvailabilityInfo (FArchive &Ar, int32 LODIdx, bool bHasAdjacencyData, bool bNeedsCPUAccess)
 
uint32 GetNumVertices () const
 
uint32 GetVertexBufferMaxBoneInfluences () const
 
bool DoesVertexBufferUse16BitBoneIndex () const
 
uint32 GetNumTexCoords () const
 
FSkinWeightVertexBufferGetSkinWeightVertexBuffer ()
 
const FSkinWeightVertexBufferGetSkinWeightVertexBuffer () const
 
ENGINE_API int32 GetTotalFaces () const
 
ENGINE_API bool HasClothData () const
 
ENGINE_API void GetSectionFromVertexIndex (int32 InVertIndex, int32 &OutSectionIndex, int32 &OutVertIndex) const
 
ENGINE_API void GetResourceSizeEx (FResourceSizeEx &CumulativeResourceSize) const
 
SIZE_T GetCPUAccessMemoryOverhead () const
 
uint32 FindSectionIndex (const FSkelMeshRenderSection &Section) const
 
ENGINE_API int32 NumNonClothingSections () const
 
void IncrementMemoryStats (bool bNeedsVertexColors)
 
void DecrementMemoryStats ()
 
- Public Member Functions inherited from FRefCountBase
 FRefCountBase ()=default
 
virtual ~FRefCountBase ()=default
 
 FRefCountBase (const FRefCountBase &Rhs)=delete
 
FRefCountBaseoperator= (const FRefCountBase &Rhs)=delete
 
FReturnedRefCountValue AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 

Static Public Member Functions

static bool ShouldForceKeepCPUResources ()
 
static bool ShouldKeepCPUResources (const USkinnedAsset *SkinnedAsset, int32 LODIdx, bool bForceKeep)
 

Public Attributes

TArray< FSkelMeshRenderSectionRenderSections
 
FMultiSizeIndexContainer MultiSizeIndexContainer
 
FStaticMeshVertexBuffers StaticVertexBuffers
 
FSkinWeightVertexBuffer SkinWeightVertexBuffer
 
FSkeletalMeshVertexClothBuffer ClothVertexBuffer
 
FMorphTargetVertexInfoBuffers MorphTargetVertexInfoBuffers
 
FSkinWeightProfilesData SkinWeightProfilesData
 
FSkeletalMeshVertexAttributeRenderData VertexAttributeBuffers
 
FSkeletalMeshHalfEdgeBuffer HalfEdgeBuffer
 
TArray< FBoneIndexTypeActiveBoneIndices
 
TArray< FBoneIndexTypeRequiredBones
 
uint32 BuffersSize
 
FRayTracingGeometry SourceRayTracingGeometry
 
FByteBulkData StreamingBulkData
 
uint32 bStreamedDataInlined: 1
 
uint32 bIsLODOptional: 1
 

Friends

class FSkeletalMeshRenderData
 

Constructor & Destructor Documentation

◆ FSkeletalMeshLODRenderData()

FSkeletalMeshLODRenderData::FSkeletalMeshLODRenderData ( bool  bAddRef = true)
inline

Constructor (default)

◆ ~FSkeletalMeshLODRenderData()

FSkeletalMeshLODRenderData::~FSkeletalMeshLODRenderData ( )
inline

Member Function Documentation

◆ DecrementMemoryStats()

void FSkeletalMeshLODRenderData::DecrementMemoryStats ( )

◆ DoesVertexBufferUse16BitBoneIndex()

bool FSkeletalMeshLODRenderData::DoesVertexBufferUse16BitBoneIndex ( ) const
inline

◆ FindSectionIndex()

uint32 FSkeletalMeshLODRenderData::FindSectionIndex ( const FSkelMeshRenderSection Section) const

◆ GetCPUAccessMemoryOverhead()

SIZE_T FSkeletalMeshLODRenderData::GetCPUAccessMemoryOverhead ( ) const

Get the estimated memory overhead of buffers marked as NeedsCPUAccess.

◆ GetNumTexCoords()

uint32 FSkeletalMeshLODRenderData::GetNumTexCoords ( ) const
inline

◆ GetNumVertices()

uint32 FSkeletalMeshLODRenderData::GetNumVertices ( ) const
inline

◆ GetResourceSizeEx()

void FSkeletalMeshLODRenderData::GetResourceSizeEx ( FResourceSizeEx CumulativeResourceSize) const

Get Resource Size

◆ GetSectionFromVertexIndex()

void FSkeletalMeshLODRenderData::GetSectionFromVertexIndex ( int32  InVertIndex,
int32 OutSectionIndex,
int32 OutVertIndex 
) const

Utility for finding the section that a particular vertex is in.

◆ GetSkinWeightVertexBuffer() [1/2]

FSkinWeightVertexBuffer * FSkeletalMeshLODRenderData::GetSkinWeightVertexBuffer ( )
inline

Checks whether or not the skin weight buffer has been overridden 'by default' and if not return the original Skin Weight buffer

◆ GetSkinWeightVertexBuffer() [2/2]

const FSkinWeightVertexBuffer * FSkeletalMeshLODRenderData::GetSkinWeightVertexBuffer ( ) const
inline

Checks whether or not the skin weight buffer has been overridden 'by default' and if not return the original Skin Weight buffer

◆ GetTotalFaces()

int32 FSkeletalMeshLODRenderData::GetTotalFaces ( ) const

Utility function for returning total number of faces in this LOD.

◆ GetVertexBufferMaxBoneInfluences()

uint32 FSkeletalMeshLODRenderData::GetVertexBufferMaxBoneInfluences ( ) const
inline

◆ HasClothData()

bool FSkeletalMeshLODRenderData::HasClothData ( ) const
Returns
true if any chunks have cloth data.

◆ IncrementMemoryStats()

void FSkeletalMeshLODRenderData::IncrementMemoryStats ( bool  bNeedsVertexColors)

◆ InitMorphResources()

void FSkeletalMeshLODRenderData::InitMorphResources ( )

◆ InitResources()

void FSkeletalMeshLODRenderData::InitResources ( bool  bNeedsVertexColors,
int32  LODIndex,
USkinnedAsset Owner 
)

Initialize the LOD's render resources.

Parameters
ParentParent mesh

◆ NumNonClothingSections()

int32 FSkeletalMeshLODRenderData::NumNonClothingSections ( ) const

◆ ReleaseCPUResources()

void FSkeletalMeshLODRenderData::ReleaseCPUResources ( bool  bForStreaming = false)

Releases the LOD's CPU render resources.

◆ ReleaseResources()

void FSkeletalMeshLODRenderData::ReleaseResources ( )

Releases the LOD's render resources.

◆ Serialize()

void FSkeletalMeshLODRenderData::Serialize ( FArchive Ar,
UObject Owner,
int32  Idx 
)

Special serialize function passing the owning UObject along as required by FUnytpedBulkData serialization.

Parameters
ArArchive to serialize with
OwnerUObject this structure is serialized within
IdxIndex of current array entry being serialized

◆ SerializeAvailabilityInfo()

void FSkeletalMeshLODRenderData::SerializeAvailabilityInfo ( FArchive Ar,
int32  LODIdx,
bool  bHasAdjacencyData,
bool  bNeedsCPUAccess 
)

◆ SerializeStreamedData()

void FSkeletalMeshLODRenderData::SerializeStreamedData ( FArchive Ar,
USkinnedAsset Owner,
int32  LODIdx,
uint8  ClassStripFlags,
bool  bNeedsCPUAccess,
bool  bForceKeepCPUResources 
)

Serialize the portion of data that might be streamed

Parameters
bNeedsCPUAcces- Whether something requires keeping CPU copy of resources (see ShouldKeepCPUResources)
bForceKeepCPUResources- Whether we want to force keeping CPU resources
Returns
Size of streamed LOD data in bytes

◆ ShouldForceKeepCPUResources()

bool FSkeletalMeshLODRenderData::ShouldForceKeepCPUResources ( )
static

◆ ShouldKeepCPUResources()

bool FSkeletalMeshLODRenderData::ShouldKeepCPUResources ( const USkinnedAsset SkinnedAsset,
int32  LODIdx,
bool  bForceKeep 
)
static

Friends And Related Symbol Documentation

◆ FSkeletalMeshRenderData

Member Data Documentation

◆ ActiveBoneIndices

TArray<FBoneIndexType> FSkeletalMeshLODRenderData::ActiveBoneIndices

◆ bIsLODOptional

uint32 FSkeletalMeshLODRenderData::bIsLODOptional

Whether this LOD is below MinLod

◆ bStreamedDataInlined

uint32 FSkeletalMeshLODRenderData::bStreamedDataInlined

Whether buffers of this LOD is inlined (i.e. stored in .uexp instead of .ubulk)

◆ BuffersSize

uint32 FSkeletalMeshLODRenderData::BuffersSize

◆ ClothVertexBuffer

FSkeletalMeshVertexClothBuffer FSkeletalMeshLODRenderData::ClothVertexBuffer

A buffer for cloth mesh-mesh mapping

◆ HalfEdgeBuffer

FSkeletalMeshHalfEdgeBuffer FSkeletalMeshLODRenderData::HalfEdgeBuffer

GPU buffer for half edge data of an LOD, useful for mesh deformers

◆ MorphTargetVertexInfoBuffers

FMorphTargetVertexInfoBuffers FSkeletalMeshLODRenderData::MorphTargetVertexInfoBuffers

GPU friendly access data for MorphTargets for an LOD

◆ MultiSizeIndexContainer

FMultiSizeIndexContainer FSkeletalMeshLODRenderData::MultiSizeIndexContainer

◆ RenderSections

TArray<FSkelMeshRenderSection> FSkeletalMeshLODRenderData::RenderSections

Info about each section of this LOD for rendering

◆ RequiredBones

TArray<FBoneIndexType> FSkeletalMeshLODRenderData::RequiredBones

◆ SkinWeightProfilesData

FSkinWeightProfilesData FSkeletalMeshLODRenderData::SkinWeightProfilesData

Skin weight profile data structures, can contain multiple profiles and their runtime FSkinWeightVertexBuffer

◆ SkinWeightVertexBuffer

FSkinWeightVertexBuffer FSkeletalMeshLODRenderData::SkinWeightVertexBuffer

Skin weights for skinning

◆ SourceRayTracingGeometry

FRayTracingGeometry FSkeletalMeshLODRenderData::SourceRayTracingGeometry

Precooked ray tracing geometry. Used as source data to build skeletal mesh instance ray tracing geometry.

◆ StaticVertexBuffers

FStaticMeshVertexBuffers FSkeletalMeshLODRenderData::StaticVertexBuffers

static vertices from chunks for skinning on GPU

◆ StreamingBulkData

FByteBulkData FSkeletalMeshLODRenderData::StreamingBulkData

◆ VertexAttributeBuffers

FSkeletalMeshVertexAttributeRenderData FSkeletalMeshLODRenderData::VertexAttributeBuffers

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