From 04899a47b825960590498559046630654537262f Mon Sep 17 00:00:00 2001 From: Vishrut Sachan Date: Sun, 18 Oct 2026 20:02:57 +0530 Subject: [PATCH] Inset liquid faces to fix z-fighting with waterlogged blocks --- .../bluemap/core/map/hires/block/LiquidModelRenderer.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/block/LiquidModelRenderer.java b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/block/LiquidModelRenderer.java index 355c7fa08..524d0600d 100644 --- a/core/src/main/java/de/bluecolored/bluemap/core/map/hires/block/LiquidModelRenderer.java +++ b/core/src/main/java/de/bluecolored/bluemap/core/map/hires/block/LiquidModelRenderer.java @@ -56,6 +56,7 @@ @SuppressWarnings("DuplicatedCode") public class LiquidModelRenderer implements BlockRenderer { private static final float BLOCK_SCALE = 1f / 16f; + private static final float FACE_INSET = 0.016f; // 0.001 blocks private static final MatrixM3f FLOWING_UV_SCALE = new MatrixM3f() .identity() .translate(-0.5f, -0.5f) @@ -280,6 +281,13 @@ private boolean createElementFace(Direction faceDir, VectorM3f c0, VectorM3f c1, c3.x, c3.y, c3.z ); + // move faces slightly inwards, so they don't z-fight with the faces of waterlogged blocks + blockModel.translate( + faceDirVector.getX() * -FACE_INSET, + faceDirVector.getY() * -FACE_INSET, + faceDirVector.getZ() * -FACE_INSET + ); + //UV uvs[0].set(0, 1); uvs[1].set(1, 1);