From 061058804d07a280e495b70b4a100f350af7e294 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Mon, 4 Mar 2024 11:17:00 +1000 Subject: [PATCH] Attempt to improve mesher just a small ammount --- .../voxy/client/core/DistanceTracker.java | 3 +- .../core/rendering/building/QuadEncoder.java | 43 ++++++++----------- .../voxy/client/core/util/Mesher2D.java | 2 +- 3 files changed, 22 insertions(+), 26 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java b/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java index d004725a..08c3566c 100644 --- a/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java +++ b/src/main/java/me/cortex/voxy/client/core/DistanceTracker.java @@ -98,7 +98,8 @@ public class DistanceTracker { for (int y = this.minYSection >> capRing; y <= this.maxYSection >> capRing; y++) { this.tracker.removeCache(capRing, x, y, z); } - });*/ + }); + */ } if (isTerminatingRing) { diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/building/QuadEncoder.java b/src/main/java/me/cortex/voxy/client/core/rendering/building/QuadEncoder.java index 4ed44e14..7f0e883a 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/building/QuadEncoder.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/building/QuadEncoder.java @@ -11,30 +11,25 @@ public class QuadEncoder { if (Mesher2D.getW(encodedMeshedData) > 16 || Mesher2D.getH(encodedMeshedData) > 16) { throw new IllegalStateException("Width or height > 16"); } - int out = face; - out |= switch (face >> 1) { - case 0 -> - (Mesher2D.getX(encodedMeshedData) << 21) | - (otherAxis << 16) | - (Mesher2D.getZ(encodedMeshedData) << 11) | - ((Mesher2D.getW(encodedMeshedData)-1) << 7) | - ((Mesher2D.getH(encodedMeshedData)-1) << 3); + int dat = face; + dat |= ((Mesher2D.getW(encodedMeshedData) - 1) << 7) | + ((Mesher2D.getH(encodedMeshedData) - 1) << 3); - case 1 -> - (Mesher2D.getX(encodedMeshedData) << 21) | - (Mesher2D.getZ(encodedMeshedData) << 16) | - (otherAxis << 11) | - ((Mesher2D.getW(encodedMeshedData)-1) << 7) | - ((Mesher2D.getH(encodedMeshedData)-1) << 3); - - case 2 -> - (otherAxis << 21) | - (Mesher2D.getX(encodedMeshedData) << 16) | - (Mesher2D.getZ(encodedMeshedData) << 11) | - ((Mesher2D.getW(encodedMeshedData)-1) << 7) | - ((Mesher2D.getH(encodedMeshedData)-1) << 3); - default -> throw new IllegalStateException("Unexpected value: " + (face >> 1)); - }; - return out; + if (face>>1 == 0) { + return dat | + (Mesher2D.getX(encodedMeshedData) << 21) | + (otherAxis << 16) | + (Mesher2D.getZ(encodedMeshedData) << 11); + } + if (face>>1 == 1) { + return dat | + (Mesher2D.getX(encodedMeshedData) << 21) | + (Mesher2D.getZ(encodedMeshedData) << 16) | + (otherAxis << 11); + } + return dat | + (otherAxis << 21) | + (Mesher2D.getX(encodedMeshedData) << 16) | + (Mesher2D.getZ(encodedMeshedData) << 11); } } diff --git a/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java b/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java index 17d848d1..d603256c 100644 --- a/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java +++ b/src/main/java/me/cortex/voxy/client/core/util/Mesher2D.java @@ -6,7 +6,7 @@ import java.util.Random; //TODO: redo this so that it works as you are inserting data into it maybe? since it should be much faster?? -public class Mesher2D { +public final class Mesher2D { private final int size; private final int maxSize; private final long[] data;