Massivly improved fog rendering
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user