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

#include <MeshRenderBufferSet.h>

Public Member Functions

 FMeshRenderBufferSet (ERHIFeatureLevel::Type FeatureLevelType)
 
virtual ~FMeshRenderBufferSet ()
 
GEOMETRYFRAMEWORK_API void Upload ()
 ------------— FMeshRenderBuffferSet ---------------— ///
 
void UploadIndexBufferUpdate ()
 
GEOMETRYFRAMEWORK_API void UploadVertexUpdate (bool bPositions, bool bMeshAttribs, bool bColors)
 
GEOMETRYFRAMEWORK_API void TransferVertexUpdateToGPU (FRHICommandListBase &RHICmdList, bool bPositions, bool bNormals, bool bTexCoords, bool bColors)
 
void InvalidateRayTracingData ()
 
void ValidateRayTracingData ()
 

Static Public Member Functions

static void DestroyRenderBufferSet (FMeshRenderBufferSet *BufferSet)
 

Public Attributes

int TriangleCount = 0
 
FStaticMeshVertexBuffer StaticMeshVertexBuffer
 
FPositionVertexBuffer PositionVertexBuffer
 
FColorVertexBuffer ColorVertexBuffer
 
FDynamicMeshIndexBuffer32 IndexBuffer
 
FLocalVertexFactory VertexFactory
 
UMaterialInterfaceMaterial = nullptr
 
TOptional< TArray< int > > Triangles
 
bool bEnableSecondaryIndexBuffer = false
 
FDynamicMeshIndexBuffer32 SecondaryIndexBuffer
 
bool bEnableRaytracing = false
 
FCriticalSection BuffersLock
 

Protected Member Functions

void UpdateRaytracingGeometryIfEnabled ()
 
void InitOrUpdateResource (FRHICommandListBase &RHICmdList, FRenderResource *Resource)
 

Detailed Description

FMeshRenderBufferSet stores a set of RenderBuffers for a mesh

Constructor & Destructor Documentation

◆ FMeshRenderBufferSet()

FMeshRenderBufferSet::FMeshRenderBufferSet ( ERHIFeatureLevel::Type  FeatureLevelType)
inline

◆ ~FMeshRenderBufferSet()

virtual FMeshRenderBufferSet::~FMeshRenderBufferSet ( )
inlinevirtual

Member Function Documentation

◆ DestroyRenderBufferSet()

static void FMeshRenderBufferSet::DestroyRenderBufferSet ( FMeshRenderBufferSet BufferSet)
inlinestatic

Enqueue a command on the Render Thread to destroy the passed in buffer set. At this point the buffer set should be considered invalid.

◆ InitOrUpdateResource()

void FMeshRenderBufferSet::InitOrUpdateResource ( FRHICommandListBase RHICmdList,
FRenderResource Resource 
)
inlineprotected

Initializes a render resource, or update it if already initialized.

Warning
This function can only be called on the Render Thread

◆ InvalidateRayTracingData()

void FMeshRenderBufferSet::InvalidateRayTracingData ( )
inline

◆ TransferVertexUpdateToGPU()

void FMeshRenderBufferSet::TransferVertexUpdateToGPU ( FRHICommandListBase RHICmdList,
bool  bPositions,
bool  bNormals,
bool  bTexCoords,
bool  bColors 
)

Fast path to update various vertex buffers. This path does not support changing the size/counts of any of the sub-buffers, a direct memcopy from the CPU-side buffer to the RHI buffer is used.

Warning
This can only be called on the Rendering Thread.

◆ UpdateRaytracingGeometryIfEnabled()

void FMeshRenderBufferSet::UpdateRaytracingGeometryIfEnabled ( )
inlineprotected

◆ Upload()

void FMeshRenderBufferSet::Upload ( )

------------— FMeshRenderBuffferSet ---------------— ///

Upload initialized mesh buffers.

Warning
This can only be called on the Rendering Thread.

◆ UploadIndexBufferUpdate()

void FMeshRenderBufferSet::UploadIndexBufferUpdate ( )
inline

Fast path to only update the primary and secondary index buffers. This can be used when (eg) the secondary index buffer is being used to highlight/hide a subset of triangles.

Warning
This can only be called on the Rendering Thread.

◆ UploadVertexUpdate()

void FMeshRenderBufferSet::UploadVertexUpdate ( bool  bPositions,
bool  bMeshAttribs,
bool  bColors 
)

Fast path to only update vertex buffers. This path rebuilds all the resources and reconfigures the vertex factory, so the counts/etc could be modified.

Warning
This can only be called on the Rendering Thread.

◆ ValidateRayTracingData()

void FMeshRenderBufferSet::ValidateRayTracingData ( )
inline

Member Data Documentation

◆ bEnableRaytracing

bool FMeshRenderBufferSet::bEnableRaytracing = false

configure whether raytracing should be enabled for this RenderBufferSet

◆ bEnableSecondaryIndexBuffer

bool FMeshRenderBufferSet::bEnableSecondaryIndexBuffer = false

If secondary index buffer is enabled, we populate this index buffer with additional triangles indexing into the same vertex buffers

◆ BuffersLock

FCriticalSection FMeshRenderBufferSet::BuffersLock

In situations where we want to update the existing Vertex or Index buffers, we need to synchronize access between the Game and Render threads. We use this lock to do that.

◆ ColorVertexBuffer

FColorVertexBuffer FMeshRenderBufferSet::ColorVertexBuffer

The buffer containing the vertex color data.

◆ IndexBuffer

FDynamicMeshIndexBuffer32 FMeshRenderBufferSet::IndexBuffer

triangle indices

◆ Material

UMaterialInterface* FMeshRenderBufferSet::Material = nullptr

Material to draw this mesh with

◆ PositionVertexBuffer

FPositionVertexBuffer FMeshRenderBufferSet::PositionVertexBuffer

The buffer containing the position vertex data.

◆ SecondaryIndexBuffer

FDynamicMeshIndexBuffer32 FMeshRenderBufferSet::SecondaryIndexBuffer

partition or subset of IndexBuffer that indexes into same vertex buffers

◆ StaticMeshVertexBuffer

FStaticMeshVertexBuffer FMeshRenderBufferSet::StaticMeshVertexBuffer

The buffer containing vertex data.

◆ TriangleCount

int FMeshRenderBufferSet::TriangleCount = 0

Number of triangles in this renderbuffer set. Note that triangles may be split between IndexBuffer and SecondaryIndexBuffer.

◆ Triangles

TOptional<TArray<int> > FMeshRenderBufferSet::Triangles

Optional list of triangles stored in this buffer. Storing this allows us to rebuild the buffers if vertex data changes.

◆ VertexFactory

FLocalVertexFactory FMeshRenderBufferSet::VertexFactory

vertex factory


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