From 4d4bfb12515cbd8f260f27951d5247676e0ba1b4 Mon Sep 17 00:00:00 2001 From: Paramat Date: Wed, 31 Oct 2018 10:04:33 +0000 Subject: [PATCH] Framed glasslike: Fix z-fighting, improve codestyle (#7826) Increase inset distance of glass faces that is meant to avoid z-fighting. Note: Enabling basic shaders made the z-fighting more likely to happen. --- src/content_mapblock.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/content_mapblock.cpp b/src/content_mapblock.cpp index 7b8231869..6572e52f2 100644 --- a/src/content_mapblock.cpp +++ b/src/content_mapblock.cpp @@ -717,9 +717,9 @@ void MapblockMeshGenerator::drawGlasslikeFramedNode() bool V_merge = !(param2 & 64); param2 &= 63; - static const float a = BS / 2; - static const float g = a - 0.003; - static const float b = .876 * ( BS / 2 ); + static const float a = BS / 2.0f; + static const float g = a - 0.03f; + static const float b = 0.876f * (BS / 2.0f); static const aabb3f frame_edges[FRAMED_EDGE_COUNT] = { aabb3f( b, b, -a, a, a, a), // y+ @@ -751,9 +751,12 @@ void MapblockMeshGenerator::drawGlasslikeFramedNode() bool nb[FRAMED_NEIGHBOR_COUNT] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; // 1 = check - static const bool check_nb_vertical [FRAMED_NEIGHBOR_COUNT] = {0,1,0,0,1,0, 0,0,0,0, 0,0,0,0, 0,0,0,0}; - static const bool check_nb_horizontal [FRAMED_NEIGHBOR_COUNT] = {1,0,1,1,0,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; - static const bool check_nb_all [FRAMED_NEIGHBOR_COUNT] = {1,1,1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1}; + static const bool check_nb_vertical [FRAMED_NEIGHBOR_COUNT] = + {0,1,0,0,1,0, 0,0,0,0, 0,0,0,0, 0,0,0,0}; + static const bool check_nb_horizontal [FRAMED_NEIGHBOR_COUNT] = + {1,0,1,1,0,1, 0,0,0,0, 1,1,1,1, 0,0,0,0}; + static const bool check_nb_all [FRAMED_NEIGHBOR_COUNT] = + {1,1,1,1,1,1, 1,1,1,1, 1,1,1,1, 1,1,1,1}; const bool *check_nb = check_nb_all; // neighbours checks for frames visibility @@ -807,7 +810,7 @@ void MapblockMeshGenerator::drawGlasslikeFramedNode() f->special_tiles[0].layers[0].texture) { // Internal liquid level has param2 range 0 .. 63, // convert it to -0.5 .. 0.5 - float vlev = (param2 / 63.0) * 2.0 - 1.0; + float vlev = (param2 / 63.0f) * 2.0f - 1.0f; getSpecialTile(0, &tile); drawAutoLightedCuboid(aabb3f(-(nb[5] ? g : b), -(nb[4] ? g : b),