From dd4f1de695e4f3202c9a6eea1550b6c31cb79a0b Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Fri, 29 Aug 2025 10:03:12 +1000 Subject: [PATCH] Massivly improved fog rendering --- .../java/me/cortex/voxy/client/core/NormalRenderPipeline.java | 4 +++- .../assets/voxy/shaders/post/blit_texture_depth_cutout.frag | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java b/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java index 7eb5421b..59ca42c4 100644 --- a/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java +++ b/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java @@ -11,6 +11,7 @@ import me.cortex.voxy.client.core.rendering.hierachical.HierarchicalOcclusionTra import me.cortex.voxy.client.core.rendering.hierachical.NodeCleaner; import me.cortex.voxy.client.core.rendering.post.FullscreenBlit; import me.cortex.voxy.client.core.rendering.util.DepthFramebuffer; +import net.minecraft.client.MinecraftClient; import org.joml.Matrix4f; import org.lwjgl.system.MemoryStack; @@ -102,7 +103,8 @@ public class NormalRenderPipeline extends AbstractRenderPipeline { float start = viewport.fogParameters.environmentalStart(); float end = viewport.fogParameters.environmentalEnd(); float invEndFogDelta = 1f/(end-start); - glUniform3f(4, viewport.fogParameters.environmentalEnd(), invEndFogDelta, start*invEndFogDelta); + float endDistance = Math.min(MinecraftClient.getInstance().gameRenderer.getViewDistanceBlocks()*2, viewport.fogParameters.environmentalEnd()); + glUniform3f(4, endDistance, invEndFogDelta, Math.abs(start)*invEndFogDelta); glUniform3f(5, viewport.fogParameters.red(), viewport.fogParameters.green(), viewport.fogParameters.blue()); } diff --git a/src/main/resources/assets/voxy/shaders/post/blit_texture_depth_cutout.frag b/src/main/resources/assets/voxy/shaders/post/blit_texture_depth_cutout.frag index c3121ce2..45dd657c 100644 --- a/src/main/resources/assets/voxy/shaders/post/blit_texture_depth_cutout.frag +++ b/src/main/resources/assets/voxy/shaders/post/blit_texture_depth_cutout.frag @@ -44,7 +44,7 @@ void main() { } #ifdef USE_ENV_FOG { - float fogLerp = max(fma(min(length(point.xyz), endParams.x),endParams.y,endParams.z),0);//512 is 32*16 which is the render distance in blocks + float fogLerp = clamp(fma(min(length(point.xyz), endParams.x),endParams.y,endParams.z),0,1);//512 is 32*16 which is the render distance in blocks colour.rgb = mix(colour.rgb, fogColour, fogLerp); } #endif