From a586fe5e92681376149061bb74a324e7d4dda15e Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 8 Jan 2026 23:46:52 +0300 Subject: [PATCH] feat: custom model full culling case --- src/graphics/render/BlocksRenderer.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/graphics/render/BlocksRenderer.cpp b/src/graphics/render/BlocksRenderer.cpp index 2f700d659..36f12a196 100644 --- a/src/graphics/render/BlocksRenderer.cpp +++ b/src/graphics/render/BlocksRenderer.cpp @@ -290,6 +290,23 @@ void BlocksRenderer::blockCustomModel( Z = orient.axes[2]; } + if (!block.rt.extended) { + glm::ivec3 offsets[6] { + {-1, 0, 0}, {0, -1, 0}, {0, 0, -1}, + {1, 0, 0}, {0, 1, 0}, {0, 0, 1}, + }; + bool culled = true; + for (int i = 0; i < 6; i++) { + if (isOpen(icoord + offsets[i], block, variant)) { + culled = false; + break; + } + } + if (culled) { + return; + } + } + const auto& model = cache.getModel(block.rt.id, block.getVariantIndex(states.userbits)); for (const auto& mesh : model.meshes) { if (vertexCount + mesh.vertices.size() >= capacity