Mesh Buffer

GUI component

Low-level terrain meshes make use of a shared mesh buffer, which holds vertex data and mesh structure data.

The Mesh Buffer GUI component provides runtime information about the shared mesh buffer.

See the MeshBufferGui API for more detail.

MeshBufferGui

Capacity

The capacity of the shared mesh buffer, given in vertices. If the capacity is too low, terrain meshes will not reach the optimal level-of-detail.

Visible / Unused / Percentage

The first field gives the number of terrain mesh vertices that are visible in the current level-of-detail, without culling (e.g. frustum culling). This value is helpful to tweak the cache efficiency of the mesh buffer.

The second field gives the number of vertices in the shared mesh buffer that are not used by any terrain mesh. This number can be used to tweak the mesh buffer capacity, to avoid unnecessarily large data buffers.

The percentage of visible resp. unused vertices in the shared mesh buffer with respect to the capacity. As a rule of thumb, the percentage of visible vertices should be in the range between 25% and 50%.

CPU auto-sleep

When enabled, terrain mesh refinement may sleep for a short period of time when little or no refinement work is necessary. This can reduce CPU usage when idle, at the cost of sligtly less responsive mesh refinement.

Force Error

When clicked, a fake error is generated in the mesh buffer, putting it into the error state. The application is then responsible for going through the error detection and recovery process.

Repair Error

This button is visible when the application has detected that the mesh buffer is in the error state. When clicked, the error recovery process is trigger, so that the mesh buffer may recover from the error state.

Fragmentation

The fragmentation image indicates the estimated amount of cache locality which the vertices in the mesh buffer exhibit.

MeshBufferGui.Fragmentation

Each image pixel represents a vertex in the mesh buffer: the color hue indicates the level-of-detail in the mesh structure hierarchy, the color brightness depicts the vertex state (bright = visible, dark = invisible). Unused vertices are shown as black pixels. As a rule of thumb, 'good' overall cache locality typically results in a 'rainbow-like' look, with clearly distinguishable regions of uniform color.

Semantics

This list shows the vertex data semantics that are present in the shared mesh buffer. Many components in the SDK have requirements or features that depend on the presence of certain vertex data semantics.