diff --git a/src/main/java/net/caffeinemc/mods/sodium/client/render/immediate/CloudRenderer.java b/src/main/java/net/caffeinemc/mods/sodium/client/render/immediate/CloudRenderer.java index ab9c3c8fec..e913ab05d0 100644 --- a/src/main/java/net/caffeinemc/mods/sodium/client/render/immediate/CloudRenderer.java +++ b/src/main/java/net/caffeinemc/mods/sodium/client/render/immediate/CloudRenderer.java @@ -20,6 +20,7 @@ import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.ResourceProvider; import net.minecraft.util.Mth; +import net.minecraft.world.level.material.FogType; import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -63,6 +64,10 @@ public void render(Camera camera, return; } + if (camera.getFluidInCamera() == FogType.LAVA) { + return; + } + Vec3 pos = camera.getPosition(); double cloudTime = (ticks + tickDelta) * 0.03F; diff --git a/src/main/resources/assets/minecraft/shaders/core/clouds.fsh b/src/main/resources/assets/minecraft/shaders/core/clouds.fsh index 9de565928a..63781f2b2d 100644 --- a/src/main/resources/assets/minecraft/shaders/core/clouds.fsh +++ b/src/main/resources/assets/minecraft/shaders/core/clouds.fsh @@ -23,7 +23,9 @@ void main() { float width = FogEnd - FogStart; float newWidth = width * 4.0; + float fade = linear_fog_fade(vertexDistance, FogStart, FogStart + newWidth) * FogColor.a; - fragColor = vec4(mix(FogColor.rgb, color.rgb, 0.7), clamp(color.a * fade, 0.0, 1.0)); + vec4 finalColor = vec4(mix(FogColor.rgb, color.rgb, 0.7), clamp(color.a * fade, 0.0, 1.0)); + fragColor = linear_fog(finalColor, vertexDistance, FogStart, FogEnd, FogColor); }