From 7f49a84215442577e72215a1bf0f3c8f6d0c871b Mon Sep 17 00:00:00 2001 From: mcrcortex <18544518+MCRcortex@users.noreply.github.com> Date: Sat, 6 Dec 2025 00:19:59 +1000 Subject: [PATCH] more fog fixes --- .../voxy/client/core/NormalRenderPipeline.java | 4 ++-- .../core/model/bakery/BakedBlockEntityModel.java | 12 +++++++----- .../voxy/shaders/post/blit_texture_depth_cutout.frag | 2 +- 3 files changed, 10 insertions(+), 8 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 59b39a40..ec78d5ea 100644 --- a/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java +++ b/src/main/java/me/cortex/voxy/client/core/NormalRenderPipeline.java @@ -110,8 +110,8 @@ public class NormalRenderPipeline extends AbstractRenderPipeline { float end = viewport.fogParameters.environmentalEnd(); if (Math.abs(end-start)>1) { float invEndFogDelta = 1f / (end - start); - float endDistance = Minecraft.getInstance().gameRenderer.getRenderDistance() * 1.5f; - glUniform4f(4, endDistance, invEndFogDelta, Math.abs(start) * invEndFogDelta, 0); + float endDistance = Minecraft.getInstance().gameRenderer.getRenderDistance()*2f; + glUniform4f(4, invEndFogDelta, -start * invEndFogDelta, Math.min(1,(endDistance-start)/end),0); glUniform4f(5, viewport.fogParameters.red(), viewport.fogParameters.green(), viewport.fogParameters.blue(), viewport.fogParameters.alpha()); } else { glUniform4f(4, 0, 0, 0, 0); diff --git a/src/main/java/me/cortex/voxy/client/core/model/bakery/BakedBlockEntityModel.java b/src/main/java/me/cortex/voxy/client/core/model/bakery/BakedBlockEntityModel.java index 7e9674d6..3cc52b85 100644 --- a/src/main/java/me/cortex/voxy/client/core/model/bakery/BakedBlockEntityModel.java +++ b/src/main/java/me/cortex/voxy/client/core/model/bakery/BakedBlockEntityModel.java @@ -4,6 +4,7 @@ import me.cortex.voxy.common.Logger; import net.minecraft.client.Minecraft; import net.minecraft.client.model.Model; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.SubmitNodeStorage; import net.minecraft.core.BlockPos; import net.minecraft.resources.ResourceLocation; import net.minecraft.world.level.block.EntityBlock; @@ -72,14 +73,15 @@ public class BakedBlockEntityModel { try { /* var rt = renderer.createRenderState(); - renderer.updateRenderState(entity, rt, 0.0f, new Vec3d(0,0,0), null); + renderer.extractRenderState(entity, rt, 0.0f, new Vec3d(0,0,0), null); //TODO: FIXME: FINISH var cstate = new CameraRenderState(); - var queue = new OrderedRenderCommandQueueImpl(); - renderer.render(rt, new MatrixStack(), queue, cstate); - var qq = queue.getBatchingQueue(0); - */ + var queue = new SubmitNodeStorage(); + renderer.submit(rt, new MatrixStack(), queue, cstate); + var qq = queue.order(0); + qq. + */ //renderer.render(entity, 0.0f, new MatrixStack(), layer->map.computeIfAbsent(layer, rl -> new LayerConsumer(rl, new ReuseVertexConsumer().setDefaultMeta(getMetaFromLayer(rl)))).consumer, 0, 0, new Vec3d(0,0,0)); } catch (Exception e) { Logger.error("Unable to bake block entity: " + entity, e); 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 56b34fb2..a7d60b22 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 if (fogColour.a>0.0){ - 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 + float fogLerp = clamp(fma(length(point.xyz),endParams.x,endParams.y),0,endParams.z);//512 is 32*16 which is the render distance in blocks colour.rgb = mix(colour.rgb, fogColour.rgb, fogLerp*fogColour.a); } #endif