This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
Basics
Rendering
Professional (SIM)
UnigineEditor
Interface Overview
Assets Workflow
Version Control
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Nodes
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Plugins
File Formats
Materials and Shaders
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API Reference
Animations-Related Classes
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
VR-Related Classes
Content Creation
Content Optimization
Materials
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials

Unigine::MeshRender Class

Header: #include <UnigineMeshRender.h>

MeshRender represents a GPU-side mesh resourse used for rendering.

The MeshRender class holds a precompiled mesh geometry optimized for rendering on the GPU. Unlike the Mesh class, which stores editable data in RAM, MeshRender resides in VRAM and is not intended for modifications.

MeshRender Class

Members

bool isLoaded() const#

Returns the current value indicating if the mesh is loaded.

Return value

true if the mesh is loaded; otherwise false.

void setFlags ( int flags ) #

Sets a new set of usage flags (USAGE_DYNAMIC_VERTEX, USAGE_DYNAMIC_INDICES, USAGE_DYNAMIC_ALL) that control how vertex and index data are stored and accessed during rendering.

Arguments

  • int flags - The usage flags for vertex and index memory behavior.

int getFlags() const#

Returns the current set of usage flags (USAGE_DYNAMIC_VERTEX, USAGE_DYNAMIC_INDICES, USAGE_DYNAMIC_ALL) that control how vertex and index data are stored and accessed during rendering.

Return value

Current usage flags for vertex and index memory behavior.

static MeshRenderPtr create ( ) #

Constructor. Creates an empty static mesh.

bool load ( const char * path ) #

Loads the mesh using the specified path.

Arguments

  • const char * path - Path to the mesh.

Return value

true if the mesh is loaded successfully; otherwise false.

bool load ( const Ptr<ConstMesh> & mesh ) #

Loads the specified mesh.

Arguments

  • const Ptr<ConstMesh> & mesh - The mesh to be loaded.

Return value

true if the mesh is loaded successfully; otherwise false.

void swap ( const Ptr<MeshRender> & mesh ) #

Swaps all internal data between this mesh and the specified one. This includes vertices, indices, usage flags, and other relevant mesh information.

Arguments

  • const Ptr<MeshRender> & mesh - The mesh to swap data with.

void clear ( ) #

Clears the mesh (including its surfaces and bounds).

void bind ( ) #

Binds the mesh data (index and vertex buffers) to the input assembler stage.

void unbind ( ) #

Unbinds the mesh data (index and vertex buffers).

int renderSurface ( int mode, int surface, int target = 0 ) #

Renders the surface.

Arguments

  • int mode - Rendering mode. One of the MODE_* variables.
  • int surface - Surface number.
  • int target - Surface target number. The default value is 0.

Return value

Number of primitives rendered. Primitive type is determined by the rendering mode.

int renderInstancedSurface ( int mode, int num, int surface, int target = 0 ) #

Renders the specified number of instances of the surface.

Arguments

  • int mode - Rendering mode. One of the MODE_* variables.
  • int num - Number of instances to be rendered.
  • int surface - Surface number.
  • int target - Surface target number. The default value is 0.

Return value

Number of primitives rendered. Primitive type is determined by the rendering mode.

int render ( int mode, int surface = -1, int target = 0 ) #

Renders the static mesh with the specified settings and mode.

Arguments

  • int mode - Rendering mode. One of the MODE_* variables.
  • int surface - Surface number (use -1 for all surfaces).
  • int target - Surface target number. The default value is 0.

Return value

Number of primitives rendered. Primitive type is determined by the rendering mode.

int renderInstanced ( int mode, int num, int surface = -1, int target = 0 ) #

Renders the specified number of instances of the surface.

Arguments

  • int mode - Rendering mode. One of the MODE_* variables.
  • int num - Number of instances to be rendered.
  • int surface - Surface number (use -1 for all surfaces).
  • int target - Surface target number. The default value is 0.

Return value

Number of primitives rendered. Primitive type is determined by the rendering mode.

size_t getSystemMemoryUsage ( ) const#

Returns the current amount of system memory used by the static mesh, in bytes.

Return value

System memory amount used by the static mesh, in bytes.

size_t getVideoMemoryUsage ( ) const#

Returns the current amount of video memory used by the static mesh.

Return value

Video memory amount used by the static mesh, in bytes.

void updateDebugName ( ) #

Updates the friendly name for GPU debugging (RenderDoc, NVIDIA Nsight).

void setDebugName ( const char * name ) #

Sets a friendly name for GPU debugging (RenderDoc, NVIDIA Nsight). It can be used to help you determine if the corresponding object interface pointer caused the leak. Memory leaks are reported by the debug software layer by outputting a list of object interface pointers along with their friendly names.

Arguments

  • const char * name - Friendly debug name to be set.

const char * getDebugName ( ) const#

Returns the currently used friendly name for GPU debugging (RenderDoc, NVIDIA Nsight). It can be used to help you determine if the corresponding object interface pointer caused the leak. Memory leaks are reported by the debug software layer by outputting a list of object interface pointers along with their friendly names.

Return value

Friendly debug name.

The information on this page is valid for UNIGINE 2.20 SDK.

Last update: 2025-06-30
Build: ()