diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/ChunkBoundRenderer.java b/src/main/java/me/cortex/voxy/client/core/rendering/ChunkBoundRenderer.java index 969be514..6b420e5d 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/ChunkBoundRenderer.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/ChunkBoundRenderer.java @@ -91,22 +91,22 @@ public class ChunkBoundRenderer { long ptr = UploadStream.INSTANCE.upload(this.uniformBuffer, 0, 128); long matPtr = ptr; ptr += 4*4*4; - final float renderDistance = MinecraftClient.getInstance().options.getClampedViewDistance()*16+0.01f;//In blocks + final float renderDistance = MinecraftClient.getInstance().options.getClampedViewDistance()*16;//In blocks {//This is recomputed to be in chunk section space not worldsection - int sx = MathHelper.floor(viewport.cameraX); - int sy = MathHelper.floor(viewport.cameraY); - int sz = MathHelper.floor(viewport.cameraZ); + int sx = (int)(viewport.cameraX); + int sy = (int)(viewport.cameraY); + int sz = (int)(viewport.cameraZ); new Vector3i(sx, sy, sz).getToAddress(ptr); ptr += 4*4; var negInnerSec = new Vector3f( - -(float) (viewport.cameraX - sx), - -(float) (viewport.cameraY - sy), - -(float) (viewport.cameraZ - sz)); + (float) (viewport.cameraX - sx), + (float) (viewport.cameraY - sy), + (float) (viewport.cameraZ - sz)); - viewport.MVP.translate(negInnerSec, new Matrix4f()).getToAddress(matPtr); negInnerSec.getToAddress(ptr); ptr += 4*3; + viewport.MVP.translate(negInnerSec.negate(), new Matrix4f()).getToAddress(matPtr); MemoryUtil.memPutFloat(ptr, renderDistance); ptr += 4; } UploadStream.INSTANCE.commit(); diff --git a/src/main/resources/assets/voxy/shaders/chunkoutline/outline.vsh b/src/main/resources/assets/voxy/shaders/chunkoutline/outline.vsh index 0f2aa98d..cd3d6cd4 100644 --- a/src/main/resources/assets/voxy/shaders/chunkoutline/outline.vsh +++ b/src/main/resources/assets/voxy/shaders/chunkoutline/outline.vsh @@ -15,8 +15,8 @@ ivec3 unpackPos(ivec2 pos) { } bool shouldRender(ivec3 icorner) { - vec3 corner = vec3(mix(mix(ivec3(0), icorner-1, lessThan(ivec3(0), icorner-1)), icorner+17, lessThan(icorner+17, ivec3(0))))+negInnerSec.xyz; - return (corner.x*corner.x + corner.z*corner.z <= negInnerSec.w*negInnerSec.w) && abs(corner.y) <= negInnerSec.w; + vec3 corner = vec3(mix(mix(ivec3(0), icorner-1, greaterThan(icorner-1, ivec3(0))), icorner+17, lessThan(icorner+17, ivec3(0))))-negInnerSec.xyz; + return (corner.x*corner.x + corner.z*corner.z < negInnerSec.w*negInnerSec.w) && abs(corner.y) < negInnerSec.w; } #ifdef TAA