From 2d1729d32570c0966bf384c003d8e73e988071fb Mon Sep 17 00:00:00 2001 From: James Seibel Date: Sat, 9 Sep 2023 18:22:33 -0500 Subject: [PATCH] Revert "Use MC's projection matrix in SSAO instead of creating a new one" This reverts commit 57355995699be64fa8a259735d2b2e79f94d7285. --- .../core/render/renderer/LodRenderer.java | 2 +- .../core/render/renderer/shaders/SSAORenderer.java | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java index 20bcada35..dee4ede60 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/LodRenderer.java @@ -283,7 +283,7 @@ public class LodRenderer if (Config.Client.Advanced.Graphics.Ssao.enabled.get()) { profiler.popPush("LOD SSAO"); - SSAORenderer.INSTANCE.render(minecraftGlState, baseProjectionMatrix, partialTicks); + SSAORenderer.INSTANCE.render(minecraftGlState, partialTicks); } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/shaders/SSAORenderer.java b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/shaders/SSAORenderer.java index e8e8343f7..c7eec888a 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/shaders/SSAORenderer.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/render/renderer/shaders/SSAORenderer.java @@ -179,7 +179,7 @@ public class SSAORenderer // render // //========// - public void render(GLState primaryState, Mat4f projection, float partialTicks) + public void render(GLState primaryState, float partialTicks) { GLState state = new GLState(); @@ -204,7 +204,12 @@ public class SSAORenderer float near = RenderUtil.getNearClipPlaneDistanceInBlocks(partialTicks); float far = (float) ((RenderUtil.getFarClipPlaneDistanceInBlocks() + LodUtil.REGION_WIDTH) * Math.sqrt(2)); - Mat4f invertedPerspective = new Mat4f(projection); // clone to prevent messing with the original matrix + Mat4f perspective = Mat4f.perspective( + (float) MC_RENDER.getFov(partialTicks), + width / (float) height, + near, far); + + Mat4f invertedPerspective = new Mat4f(perspective); invertedPerspective.invert(); int sampleCount = Config.Client.Advanced.Graphics.Ssao.sampleCount.get(); @@ -215,7 +220,7 @@ public class SSAORenderer float bias = Config.Client.Advanced.Graphics.Ssao.bias.get().floatValue(); this.ssaoShader.bind(); - this.ssaoShader.setUniform(this.ssaoShaderUniforms.gProjUniform, projection); + this.ssaoShader.setUniform(this.ssaoShaderUniforms.gProjUniform, perspective); this.ssaoShader.setUniform(this.ssaoShaderUniforms.gInvProjUniform, invertedPerspective); this.ssaoShader.setUniform(this.ssaoShaderUniforms.gSampleCountUniform, sampleCount); this.ssaoShader.setUniform(this.ssaoShaderUniforms.gRadiusUniform, radius);