From 6f33963e8c9c218e38b29aed184858e3db2df94d Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Thu, 13 Feb 2025 19:58:25 +0100 Subject: [PATCH] Check for low z values in the gradient fog integral. Also simplified the logic a bit. might fix #1034 --- assets/cubyz/shaders/bloom/color_extractor_downsample.fs | 8 ++------ assets/cubyz/shaders/chunks/transparent_fragment.fs | 8 ++------ assets/cubyz/shaders/deferred_render_pass.fs | 8 ++------ 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/assets/cubyz/shaders/bloom/color_extractor_downsample.fs b/assets/cubyz/shaders/bloom/color_extractor_downsample.fs index 914db900..7ac64480 100644 --- a/assets/cubyz/shaders/bloom/color_extractor_downsample.fs +++ b/assets/cubyz/shaders/bloom/color_extractor_downsample.fs @@ -35,13 +35,9 @@ float densityIntegral(float dist, float zStart, float zDist, float fogLower, flo zStart += zDist; zDist = -zDist; } - if(zDist == 0) { - zDist = 0.1; + if(abs(zDist) < 0.001) { + zDist = 0.001; } - zStart /= zDist; - fogLower /= zDist; - fogHigher /= zDist; - zDist = 1; float beginLower = min(fogLower, zStart); float endLower = min(fogLower, zStart + zDist); float beginMid = max(fogLower, min(fogHigher, zStart)); diff --git a/assets/cubyz/shaders/chunks/transparent_fragment.fs b/assets/cubyz/shaders/chunks/transparent_fragment.fs index de293df5..b5296c40 100644 --- a/assets/cubyz/shaders/chunks/transparent_fragment.fs +++ b/assets/cubyz/shaders/chunks/transparent_fragment.fs @@ -77,13 +77,9 @@ float densityIntegral(float dist, float zStart, float zDist, float fogLower, flo zStart += zDist; zDist = -zDist; } - if(zDist == 0) { - zDist = 0.1; + if(abs(zDist) < 0.001) { + zDist = 0.001; } - zStart /= zDist; - fogLower /= zDist; - fogHigher /= zDist; - zDist = 1; float beginLower = min(fogLower, zStart); float endLower = min(fogLower, zStart + zDist); float beginMid = max(fogLower, min(fogHigher, zStart)); diff --git a/assets/cubyz/shaders/deferred_render_pass.fs b/assets/cubyz/shaders/deferred_render_pass.fs index 0c8eb8a5..3d000560 100644 --- a/assets/cubyz/shaders/deferred_render_pass.fs +++ b/assets/cubyz/shaders/deferred_render_pass.fs @@ -34,13 +34,9 @@ float densityIntegral(float dist, float zStart, float zDist, float fogLower, flo zStart += zDist; zDist = -zDist; } - if(zDist == 0) { - zDist = 0.1; + if(abs(zDist) < 0.001) { + zDist = 0.001; } - zStart /= zDist; - fogLower /= zDist; - fogHigher /= zDist; - zDist = 1; float beginLower = min(fogLower, zStart); float endLower = min(fogLower, zStart + zDist); float beginMid = max(fogLower, min(fogHigher, zStart));