From 120f1e20181b21c38b401e914823b39bd66cc237 Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Mon, 25 Aug 2025 21:58:34 +1000 Subject: [PATCH] Preset matrices, add modelview uniforms, add extra logging when creating geometry buffer --- .../cortex/voxy/client/core/rendering/Viewport.java | 4 ++-- .../section/geometry/BasicSectionGeometryData.java | 6 ++++++ .../me/cortex/voxy/client/iris/VoxyUniforms.java | 12 ++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/Viewport.java b/src/main/java/me/cortex/voxy/client/core/rendering/Viewport.java index 1ef4c970..42c140cc 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/Viewport.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/Viewport.java @@ -28,8 +28,8 @@ public abstract class Viewport > { public int height; public int frameId; public Matrix4f vanillaProjection = new Matrix4f(); - public Matrix4f projection; - public Matrix4f modelView; + public Matrix4f projection = new Matrix4f(); + public Matrix4f modelView = new Matrix4f(); public final FrustumIntersection frustum = new FrustumIntersection(); public final Vector4f[] frustumPlanes; public double cameraX; diff --git a/src/main/java/me/cortex/voxy/client/core/rendering/section/geometry/BasicSectionGeometryData.java b/src/main/java/me/cortex/voxy/client/core/rendering/section/geometry/BasicSectionGeometryData.java index 53536d79..f4d32eec 100644 --- a/src/main/java/me/cortex/voxy/client/core/rendering/section/geometry/BasicSectionGeometryData.java +++ b/src/main/java/me/cortex/voxy/client/core/rendering/section/geometry/BasicSectionGeometryData.java @@ -1,6 +1,7 @@ package me.cortex.voxy.client.core.rendering.section.geometry; import me.cortex.voxy.client.core.gl.GlBuffer; +import me.cortex.voxy.common.Logger; public class BasicSectionGeometryData implements IGeometryData { public static final int SECTION_METADATA_SIZE = 32; @@ -17,7 +18,12 @@ public class BasicSectionGeometryData implements IGeometryData { if ((geometryCapacity%8)!=0) { throw new IllegalStateException(); } + long start = System.currentTimeMillis(); + Logger.info("Creating and zeroing " + (geometryCapacity/(1024*1024)) + "MB geometry buffer"); + Logger.info("if your game crashes/exits here without any other log message, try manually decreasing the geometry capacity"); this.geometryBuffer = new GlBuffer(geometryCapacity); + long delta = System.currentTimeMillis() - start; + Logger.info("Successfully allocated and zeroed the geometry buffer in " + delta + "ms"); } public GlBuffer getGeometryBuffer() { diff --git a/src/main/java/me/cortex/voxy/client/iris/VoxyUniforms.java b/src/main/java/me/cortex/voxy/client/iris/VoxyUniforms.java index e40871de..816c943a 100644 --- a/src/main/java/me/cortex/voxy/client/iris/VoxyUniforms.java +++ b/src/main/java/me/cortex/voxy/client/iris/VoxyUniforms.java @@ -22,6 +22,15 @@ public class VoxyUniforms { return new Matrix4f(vrs.getViewport().MVP); } + public static Matrix4f getModelView() {//This is 1 frame late ;-; cries, since the update occurs _before_ the voxy render pipeline + var getVrs = (IGetVoxyRenderSystem) MinecraftClient.getInstance().worldRenderer; + if (getVrs == null || getVrs.getVoxyRenderSystem() == null) { + return new Matrix4f(); + } + var vrs = getVrs.getVoxyRenderSystem(); + return new Matrix4f(vrs.getViewport().modelView); + } + public static Matrix4f getProjection() {//This is 1 frame late ;-; cries, since the update occurs _before_ the voxy render pipeline var getVrs = (IGetVoxyRenderSystem) MinecraftClient.getInstance().worldRenderer; if (getVrs == null || getVrs.getVoxyRenderSystem() == null) { @@ -41,6 +50,9 @@ public class VoxyUniforms { .uniformMatrix(PER_FRAME, "vxViewProj", VoxyUniforms::getViewProjection) .uniformMatrix(PER_FRAME, "vxViewProjInv", new Inverted(VoxyUniforms::getViewProjection)) .uniformMatrix(PER_FRAME, "vxViewProjPrev", new PreviousMat(VoxyUniforms::getViewProjection)) + .uniformMatrix(PER_FRAME, "vxModelView", VoxyUniforms::getModelView) + .uniformMatrix(PER_FRAME, "vxModelViewInv", new Inverted(VoxyUniforms::getModelView)) + .uniformMatrix(PER_FRAME, "vxModelViewPrev", new PreviousMat(VoxyUniforms::getModelView)) .uniformMatrix(PER_FRAME, "vxProj", VoxyUniforms::getProjection) .uniformMatrix(PER_FRAME, "vxProjInv", new Inverted(VoxyUniforms::getProjection)) .uniformMatrix(PER_FRAME, "vxProjPrev", new PreviousMat(VoxyUniforms::getProjection));