Reduce cloud light leaking around edges

This commit is contained in:
Merlin1809 committed 2025-09-19 04:09:36 +02:00
1 parent 598eac0266
commit 94e03d8ac4
6 files changed
+52 -25

No files matched your search

+2 -2
View File
@@ -387,7 +387,7 @@ void main() {
#endif
vec3 viewPos = toScreenSpace_DH(texcoord/RENDER_SCALE - TAA_Offset*texelSize*0.5, z, DH_depth1);
vec3 playerPos = mat3(gbufferModelViewInverse) * viewPos;
// vec3 playerPos = mat3(gbufferModelViewInverse) * viewPos;
float depth = z;
float depth0 = z0;
@@ -408,7 +408,7 @@ void main() {
_far = far*4.0;
if (depth0 >= 1.0) {
depth0 = DH_depth1;
depth0 = DH_depth0;
_near = dhNearPlane;
_far = dhFarPlane;
}
+20 -9
View File
@@ -627,6 +627,12 @@ vec4 BilateralUpscale_VLFOG(sampler2D tex, sampler2D depth, float referenceDepth
float threshold = referenceDepth * 0.05;
#endif
#ifdef HQ_CLOUD_UPSAMPLE
const int samples = 9;
#else
const int samples = 5;
#endif
vec2 coord = gl_FragCoord.xy - 1.5;
vec2 UV = coord;
const ivec2 SCALE = ivec2(1.0/VL_RENDER_RESOLUTION);
@@ -634,27 +640,32 @@ vec4 BilateralUpscale_VLFOG(sampler2D tex, sampler2D depth, float referenceDepth
ivec2 UV_COLOR = ivec2(UV*VL_RENDER_RESOLUTION);
ivec2 UV_NOISE = ivec2(gl_FragCoord.xy*texelSize + 1);
ivec2 OFFSET[5] = ivec2[](
ivec2(-1,-1),
ivec2( 1, 1),
ivec2(-1, 1),
ivec2( 1,-1),
ivec2( 0, 0)
);
ivec2 OFFSET[9] = ivec2[](
ivec2(-1,-1),
ivec2( 1, 1),
ivec2(-1, 1),
ivec2( 1,-1),
ivec2( 0, 0),
ivec2( 0, 1),
ivec2( 0,-1),
ivec2( 1, 0),
ivec2(-1, 0)
);
for(int i = 0; i < 5; i++) {
for(int i = 0; i < samples; i++) {
#ifdef DISTANT_HORIZONS
float offsetDepth = sqrt(texelFetch2D(depth, UV_DEPTH + (OFFSET[i] + UV_NOISE) * SCALE,0).a/65000.0);
#else
float offsetDepth = ld(texelFetch2D(depth, UV_DEPTH + (OFFSET[i] + UV_NOISE) * SCALE, 0).r);
#endif
float edgeDiff = abs(offsetDepth - referenceDepth) < threshold ? 1.0 : 1e-7;
float edgeDiff = abs(offsetDepth - referenceDepth) < threshold ? 1.0 : 0.0;
vec4 offsetColor = texelFetch2D(tex, UV_COLOR + OFFSET[i] + UV_NOISE, 0).rgba;
colorSum += offsetColor*edgeDiff;
edgeSum += edgeDiff;
}
if (edgeSum == 0.0) return vec4(0.0);
return colorSum/edgeSum;
}
+15 -4
View File
@@ -325,6 +325,12 @@ vec4 bilateralUpsample(out float outerEdgeResults, float referenceDepth, sampler
vec4 colorSum = vec4(0.0);
float edgeSum = 0.0;
float threshold = 0.005;
#ifdef HQ_CLOUD_UPSAMPLE
const int samples = 9;
#else
const int samples = 5;
#endif
vec2 coord = gl_FragCoord.xy - 1.5;
@@ -334,15 +340,19 @@ vec4 bilateralUpsample(out float outerEdgeResults, float referenceDepth, sampler
ivec2 UV_COLOR = ivec2(UV*VL_RENDER_RESOLUTION);
ivec2 UV_NOISE = ivec2(gl_FragCoord.xy*texelSize + 1);
ivec2 OFFSET[5] = ivec2[](
ivec2 OFFSET[9] = ivec2[](
ivec2(-1,-1),
ivec2( 1, 1),
ivec2(-1, 1),
ivec2( 1,-1),
ivec2( 0, 0)
ivec2( 0, 0),
ivec2( 0, 1),
ivec2( 0,-1),
ivec2( 1, 0),
ivec2(-1, 0)
);
for(int i = 0; i < 5; i++) {
for(int i = 0; i < samples; i++) {
#ifdef DISTANT_HORIZONS
float offsetDepth = sqrt(texelFetch2D(depth, UV_DEPTH + (OFFSET[i] + UV_NOISE) * SCALE,0).z/65000.0);
@@ -350,7 +360,7 @@ vec4 bilateralUpsample(out float outerEdgeResults, float referenceDepth, sampler
float offsetDepth = linearize(texelFetch2D(depth, UV_DEPTH + (OFFSET[i] + UV_NOISE) * SCALE, 0).r);
#endif
float edgeDiff = abs(offsetDepth - referenceDepth) < threshold ? 1.0 : 1e-7;
float edgeDiff = abs(offsetDepth - referenceDepth) < threshold ? 1.0 : 0.0;
outerEdgeResults = max(outerEdgeResults, abs(referenceDepth - offsetDepth));
vec4 offsetColor = texelFetch2D(colortex0, UV_COLOR + OFFSET[i] + UV_NOISE, 0).rgba;
@@ -358,6 +368,7 @@ vec4 bilateralUpsample(out float outerEdgeResults, float referenceDepth, sampler
edgeSum += edgeDiff;
}
if (edgeSum == 0.0) return vec4(0.0);
outerEdgeResults = outerEdgeResults > (hand ? 0.005 : referenceDepth*0.05 + 0.1) ? 1.0 : 0.0;
+3 -1
View File
@@ -1,6 +1,6 @@
option.SHADER_VERSION_LABEL = §dECLIPSE§r - A Bliss Edit
prefix.SHADER_VERSION_LABEL = V
value.SHADER_VERSION_LABEL.482 = 3.0.1
value.SHADER_VERSION_LABEL.482 = 3.0.2
# if you're here to translate, this is not a joke, these do what they say
profile.POTATO=§4Potato
@@ -301,6 +301,8 @@ screen.Fog = Fog Settings
screen.Clouds = Cloud Settings
option.VOLUMETRIC_CLOUDS = Volumetric Clouds
option.HQ_CLOUD_UPSAMPLE = More accurate upsampling
option.HQ_CLOUD_UPSAMPLE.comment = Lowers light leaking around edges. §aPERFORMANCE COST:§r low
option.CLOUDS_QUALITY = Cloud Resolution Scaling
option.CLOUDS_SHADOWS = Cloud Shadows
option.CLOUD_SHADOW_STRENGTH = Cloud Shadow Strength
+2
View File
@@ -436,6 +436,8 @@ uniform vec3 unsigned_WmoonVecSmooth;
#define VOLUMETRIC_CLOUDS
#define CLOUDS_QUALITY 0.5 // [0.1 0.125 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.9 1.0]
#define HQ_CLOUD_UPSAMPLE
#define CLOUD_MOVEMENT_TYPE 0 // [0 1]
#define Cloud_Speed 2.0 // [0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0]
+10 -9
View File
@@ -4,13 +4,13 @@
#=============== EVERYTHING BELOW HERE IS NOT FOR CUSTOM SCENE CONTROLLER STUFF AND SHOULD NOT BE MODIFIED UNLESS YOU KNOW EXACTLY WHAT YOU ARE DOING ===============
#====================================================================================================================================================================
profile.POTATO = WATER_INTERACTION:0 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:10000.0 CloudLayer1_distance:10000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 !REALMOON shadowMapResolution:512 shadowDistance:64.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.7 SHARPENING:0.55 !FORWARD_ENVIORNMENT_REFLECTION
profile.VERY_LOW = WATER_INTERACTION:1 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 REALMOON shadowMapResolution:1024 shadowDistance:96.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.8 SHARPENING:0.5 !FORWARD_ENVIORNMENT_REFLECTION
profile.LOW = WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:1536 shadowDistance:112.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.9 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.MEDIUM = WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.HIGH = WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.VERY_HIGH = WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:3 RAY_COUNT:4 SAMPLES:8 REALMOON shadowMapResolution:3172 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.ULTRA = WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:2 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:1 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:4 RAY_COUNT:6 SAMPLES:10 REALMOON shadowMapResolution:4096 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.POTATO = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:0 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:10000.0 CloudLayer1_distance:10000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 !REALMOON shadowMapResolution:512 shadowDistance:64.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.7 SHARPENING:0.55 !FORWARD_ENVIORNMENT_REFLECTION
profile.VERY_LOW = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:1 WATER_SIM_DISTANCE:1 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:0 !CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 !CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:0 RAY_COUNT:4 VL_SAMPLES:4 REALMOON shadowMapResolution:1024 shadowDistance:96.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED !SAND_STORMS !SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.8 SHARPENING:0.5 !FORWARD_ENVIORNMENT_REFLECTION
profile.LOW = !HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:0 WATER_SIM_FRAMERATE:30 !MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:0 !END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES !RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 !CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.25 indirect_effect:1 RAY_COUNT:4 VL_SAMPLES:6 REALMOON shadowMapResolution:1536 shadowDistance:112.0 !DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS TAA_UPSCALING SCALE_FACTOR:0.9 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.MEDIUM = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:30 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 !RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:0 ShaderSnow:0 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 SAMPLES:6 REALMOON shadowMapResolution:2048 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS !LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.HIGH = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:2 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:1 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 !CloudLayer3 VL_RENDER_RESOLUTION:0.5 indirect_effect:1 RAY_COUNT:4 SAMPLES:8 REALMOON shadowMapResolution:2560 shadowDistance:128.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.VERY_HIGH = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:1 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:0 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:3 RAY_COUNT:4 SAMPLES:8 REALMOON shadowMapResolution:3172 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
profile.ULTRA = HQ_CLOUD_UPSAMPLE WATER_INTERACTION:2 WATER_SIM_DISTANCE:3 WATER_SIM_SCALE:2 WATER_SIM_FRAMERATE:60 MOON_NORMALS RAINBOW:1 CUSTOM_MOON_ROTATION CUSTOM_SHADOWS_QUALITY:2 END_ISLAND_LIGHT CloudLayer0_distance:100000.0 CloudLayer1_distance:100000.0 RIPPLE_PUDDLES RIPPLE_WATER PUDDLE_MODE:1 ShaderSnow:1 CUMULONIMBUS:1 CloudLayer0 CloudLayer1 CloudLayer2 CloudLayer3 VL_RENDER_RESOLUTION:1.0 indirect_effect:4 RAY_COUNT:6 SAMPLES:10 REALMOON shadowMapResolution:4096 shadowDistance:144.0 DH_SCREENSPACE_REFLECTIONS LPV_ENABLED SAND_STORMS SNOW_STORMS !TAA_UPSCALING SCALE_FACTOR:0.75 SHARPENING:0.45 FORWARD_ENVIORNMENT_REFLECTION
clouds=off
@@ -341,8 +341,9 @@ SHADER_VERSION_LABEL <profile> \
### CLOUDS
screen.Clouds.columns = 2
screen.Clouds = VOLUMETRIC_CLOUDS CLOUDS_SHADOWS \
VL_RENDER_RESOLUTION CLOUD_SHADOW_STRENGTH \
[DAILY_WEATHER] <empty> \
VL_RENDER_RESOLUTION HQ_CLOUD_UPSAMPLE \
[DAILY_WEATHER] CLOUD_SHADOW_STRENGTH \
<empty> <empty> \
Rain_coverage Thunder_coverage \
CLOUD_MOVEMENT_TYPE Cloud_Speed \
[CumulusClouds] [HighAltitudeClouds]