fix more oopsies

This commit is contained in:
mcrcortex
2025-10-11 23:45:06 +10:00
parent f4509d6f0d
commit 8f34fc24fb
2 changed files with 10 additions and 10 deletions

View File

@@ -91,22 +91,22 @@ public class ChunkBoundRenderer {
long ptr = UploadStream.INSTANCE.upload(this.uniformBuffer, 0, 128); long ptr = UploadStream.INSTANCE.upload(this.uniformBuffer, 0, 128);
long matPtr = ptr; ptr += 4*4*4; 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 {//This is recomputed to be in chunk section space not worldsection
int sx = MathHelper.floor(viewport.cameraX); int sx = (int)(viewport.cameraX);
int sy = MathHelper.floor(viewport.cameraY); int sy = (int)(viewport.cameraY);
int sz = MathHelper.floor(viewport.cameraZ); int sz = (int)(viewport.cameraZ);
new Vector3i(sx, sy, sz).getToAddress(ptr); ptr += 4*4; new Vector3i(sx, sy, sz).getToAddress(ptr); ptr += 4*4;
var negInnerSec = new Vector3f( var negInnerSec = new Vector3f(
-(float) (viewport.cameraX - sx), (float) (viewport.cameraX - sx),
-(float) (viewport.cameraY - sy), (float) (viewport.cameraY - sy),
-(float) (viewport.cameraZ - sz)); (float) (viewport.cameraZ - sz));
viewport.MVP.translate(negInnerSec, new Matrix4f()).getToAddress(matPtr);
negInnerSec.getToAddress(ptr); ptr += 4*3; negInnerSec.getToAddress(ptr); ptr += 4*3;
viewport.MVP.translate(negInnerSec.negate(), new Matrix4f()).getToAddress(matPtr);
MemoryUtil.memPutFloat(ptr, renderDistance); ptr += 4; MemoryUtil.memPutFloat(ptr, renderDistance); ptr += 4;
} }
UploadStream.INSTANCE.commit(); UploadStream.INSTANCE.commit();

View File

@@ -15,8 +15,8 @@ ivec3 unpackPos(ivec2 pos) {
} }
bool shouldRender(ivec3 icorner) { 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; 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; return (corner.x*corner.x + corner.z*corner.z < negInnerSec.w*negInnerSec.w) && abs(corner.y) < negInnerSec.w;
} }
#ifdef TAA #ifdef TAA