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.