From 7a616e84d047723cd09d53cdbbe92537c4c6b1fe Mon Sep 17 00:00:00 2001 From: RingLo_ <63995099+lonelyicer@users.noreply.github.com> Date: Tue, 21 Oct 2025 17:29:35 +0800 Subject: [PATCH 1/2] fix: sky clipping --- .../client/renderer/AbyssBrinkDimEffects.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java b/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java index fffe74fa..9949218b 100644 --- a/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java +++ b/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java @@ -4,6 +4,7 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import net.minecraft.client.Camera; +import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.DimensionSpecialEffects; import net.minecraft.client.renderer.GameRenderer; @@ -36,9 +37,25 @@ public boolean isFoggyAt(int x, int y) { public boolean renderSky(ClientLevel level, int ticks, float partialTick, Matrix4f modelViewMatrix, Camera camera, Matrix4f projectionMatrix, boolean isFoggy, Runnable setupFog) { ResourceLocation sunTexture = MiaUtil.miaId("textures/skybox/abyss_brink.png"); + var oldProjectionMatrix = RenderSystem.getProjectionMatrix(); + var projection = new Matrix4f(oldProjectionMatrix); + + float m22 = projection.m22(); + float m32 = projection.m32(); + + float near = m32 / (m22 - 1.0F); + float far = 1.0E6F; + + projection.m22((far + near) / (near - far)); + projection.m32((2.0F * far * near) / (near - far)); + + RenderSystem.setProjectionMatrix(projection, VertexSorting.ORTHOGRAPHIC_Z); + RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); RenderSystem.setShader(GameRenderer::getPositionTexShader); RenderSystem.setShaderTexture(0, sunTexture); + RenderSystem.enableBlend(); + RenderSystem.defaultBlendFunc(); PoseStack poseStack = new PoseStack(); poseStack.mulPose(modelViewMatrix); @@ -59,6 +76,10 @@ public boolean renderSky(ClientLevel level, int ticks, float partialTick, Matrix bufferbuilder.addVertex(pose, -size - playerX, height, size - playerZ).setUv(0.0F, 1.0F); BufferUploader.drawWithShader(bufferbuilder.buildOrThrow()); + + RenderSystem.setProjectionMatrix(oldProjectionMatrix, VertexSorting.ORTHOGRAPHIC_Z); + RenderSystem.disableBlend(); + return true; } } From 2af3c689b30daeef5ae51072fa6709c50ef7fb41 Mon Sep 17 00:00:00 2001 From: RingLo_ <63995099+lonelyicer@users.noreply.github.com> Date: Tue, 21 Oct 2025 17:30:44 +0800 Subject: [PATCH 2/2] chore: apply suggestions Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java b/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java index 9949218b..91412f69 100644 --- a/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java +++ b/src/main/java/com/altnoir/mia/client/renderer/AbyssBrinkDimEffects.java @@ -4,7 +4,6 @@ import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.*; import net.minecraft.client.Camera; -import net.minecraft.client.Minecraft; import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.renderer.DimensionSpecialEffects; import net.minecraft.client.renderer.GameRenderer;