QtCraft API C++ classes QML types Handbook

QcMeshInput Struct

Immutable snapshot of everything needed to mesh one section: the chunk and its eight neighbours (for faces and ambient occlusion across chunk borders). More...

Header: #include <clientcore/meshing/QcChunkMesher.h>

Public Variables

std::array<std::shared_ptr<const QcChunkLight>, 9> blockLight
std::array<std::shared_ptr<const QcChunk>, 9> chunks
bool hasBlockLight
std::shared_ptr<const QcBlockRenderTable> renderTable
int sectionIndex
bool sectionLight

Detailed Description

Missing neighbours count as opaque.

Member Variable Documentation

std::array<std::shared_ptr<const QcChunkLight>, 9> QcMeshInput::blockLight

Block light of the same nine chunks from QcBlockLightEngine (null entries are dark). Without it (hasBlockLight false) the mesher floods the sources around the section itself.

std::array<std::shared_ptr<const QcChunk>, 9> QcMeshInput::chunks

Index (dz + 1) * 3 + (dx + 1); index 4 is the chunk being meshed.

bool QcMeshInput::hasBlockLight

Whether blockLight holds the engine's light.

std::shared_ptr<const QcBlockRenderTable> QcMeshInput::renderTable

Render data of the block states.

int QcMeshInput::sectionIndex

Index of the section within the chunk (0 at the bottom).

bool QcMeshInput::sectionLight

Whether the mesh carries the light of the section's cells (QcChunkMesh::light) for a frame plan that reads it (QcFramePlan::sectionLight); without it the mesher skips the copy.