From 0d39529e9927839d0ed34c80b29e71e655b026b8 Mon Sep 17 00:00:00 2001 From: BlueGradientHorizon Date: Sun, 9 Mar 2025 21:23:03 +0300 Subject: [PATCH 1/3] Improve sun/moon glare settings. Adds 3 glare settings for clear, rain and thunder weather modes. They are not applying on top of each other, thus giving more control on sun and moon look. --- shaders/lang/en_US.lang | 12 ++++++++++++ shaders/lib/atmospherics/sky.glsl | 21 +++++++++++++++++++-- shaders/lib/common.glsl | 6 ++++++ shaders/lib/uniforms.glsl | 4 ++++ shaders/shaders.properties | 9 ++++++--- 5 files changed, 47 insertions(+), 5 deletions(-) diff --git a/shaders/lang/en_US.lang b/shaders/lang/en_US.lang index 440070df..1464ff92 100644 --- a/shaders/lang/en_US.lang +++ b/shaders/lang/en_US.lang @@ -552,6 +552,18 @@ option.RAIN_STYLE.comment=Determines the style of rainy weather. value.RAIN_STYLE.1=Light & Warmer value.RAIN_STYLE.2=Heavy & Colder +option.SUN_MOON_GLARE_INTENSITY=Sun/Moon Glare Intensity +option.SUN_MOON_GLARE_INTENSITY.comment=Adjusts the brightness of sun/moon glare on clear weather. +value.SUN_MOON_GLARE_INTENSITY.0.00=OFF + +option.SUN_MOON_GLARE_INTENSITY_DURING_RAIN=Sun/Moon Glare Intensity During Rain +option.SUN_MOON_GLARE_INTENSITY_DURING_RAIN.comment=Adjusts the brightness of sun/moon glare during rain. +value.SUN_MOON_GLARE_INTENSITY_DURING_RAIN.0.00=OFF + +option.SUN_MOON_GLARE_INTENSITY_DURING_THUNDER=Sun/Moon Glare Intensity During Thunder +option.SUN_MOON_GLARE_INTENSITY_DURING_THUNDER.comment=Adjusts the brightness of sun/moon glare during thunder. §e[*]§r This feature only works on Iris. +value.SUN_MOON_GLARE_INTENSITY_DURING_THUNDER.0.00=OFF + option.SPECIAL_BIOME_WEATHER=Special Cold/Dry Weather option.SPECIAL_BIOME_WEATHER.comment=Changes the atmosphere balance in cold and dry biomes to make things feel like a snowstorm or sandstorm. diff --git a/shaders/lib/atmospherics/sky.glsl b/shaders/lib/atmospherics/sky.glsl index 6ffcdb46..cd590e70 100644 --- a/shaders/lib/atmospherics/sky.glsl +++ b/shaders/lib/atmospherics/sky.glsl @@ -63,8 +63,25 @@ float visfactor = 0.075; float glare = visfactor / (1.0 - (1.0 - visfactor) * VdotSM4) - visfactor; - glare *= 0.5 + pow2(noonFactor) * 1.2; - glare *= 1.0 - rainFactor * 0.5; + float glare_k = glare * 4; + float glare_clear = glare_k * SUN_MOON_GLARE_INTENSITY * invRainFactor; + + // Thunder strength uniform is only available on Iris + #ifdef IS_IRIS + glare_clear *= invThunderFactor; + #endif + + float glare_noon = glare_clear * noonFactor; + float glare_night = glare_clear * nightFactor; + float glare_rain = glare_k * rainFactor * SUN_MOON_GLARE_INTENSITY_DURING_RAIN; + float glare_thunder = 0.0; + + #ifdef IS_IRIS + glare_rain *= invThunderFactor; + glare_thunder = glare_k * thunderFactor * SUN_MOON_GLARE_INTENSITY_DURING_THUNDER; + #endif + + glare *= glare_noon + glare_night + glare_rain + glare_thunder; float glareWaterFactor = isEyeInWater * sunVisibility; vec3 glareColor = mix(vec3(0.38, 0.4, 0.5) * 0.7, vec3(0.5), sunVisibility); diff --git a/shaders/lib/common.glsl b/shaders/lib/common.glsl index 337682b1..786098a7 100644 --- a/shaders/lib/common.glsl +++ b/shaders/lib/common.glsl @@ -83,6 +83,9 @@ #define SUN_MOON_HORIZON #define SUN_MOON_DURING_RAIN #define NIGHT_STAR_AMOUNT 2 //[2 3] + #define SUN_MOON_GLARE_INTENSITY 0.50 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] + #define SUN_MOON_GLARE_INTENSITY_DURING_RAIN 0.15 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] + #define SUN_MOON_GLARE_INTENSITY_DURING_THUNDER 0.05 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] #define RAINBOWS 1 //[0 1 3] #define CLOUD_STYLE_DEFINE -1 //[-1 0 1 3 50] //#define CLOUD_SHADOWS @@ -654,6 +657,9 @@ float rainFactor2 = rainFactor * rainFactor; float invRainFactor = 1.0 - rainFactor; float invRainFactorSqrt = 1.0 - rainFactor * rainFactor; + #ifdef IS_IRIS + float invThunderFactor = 1.0 - thunderFactor; + #endif float invNoonFactor = 1.0 - noonFactor; float invNoonFactor2 = invNoonFactor * invNoonFactor; diff --git a/shaders/lib/uniforms.glsl b/shaders/lib/uniforms.glsl index 7fd9e0d6..a8d8f8aa 100644 --- a/shaders/lib/uniforms.glsl +++ b/shaders/lib/uniforms.glsl @@ -38,6 +38,7 @@ uniform float far; uniform float near; uniform float nightVision; uniform float rainStrength; +uniform float thunderStrength; uniform float screenBrightness; uniform float viewHeight; uniform float viewWidth; @@ -153,6 +154,9 @@ uniform float frameTimeSmooth; uniform float eyeBrightnessM; uniform float eyeBrightnessM2; uniform float rainFactor; +#ifdef IS_IRIS + uniform float thunderFactor; +#endif uniform float inBasaltDeltas; uniform float inCrimsonForest; uniform float inNetherWastes; diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 829d4e8a..dea9949b 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -35,9 +35,9 @@ screen.CLOUD_UNBOUND_SETTINGS= CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD screen.CLOUD_REIMAGINED_SETTINGS= DOUBLE_REIM_CLOUDS CLOUD_ALT2 screen.FOG_SETTINGS= BORDER_FOG CAVE_FOG ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE LIGHTSHAFT_BEHAVIOUR SPECIAL_PALE_GARDEN_LIGHTSHAFTS LIGHTSHAFT_SMOKE LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I - screen.SUN_MOON_SETTINGS= SUN_MOON_STYLE_DEFINE SUN_ANGLE SUN_MOON_HORIZON SUN_MOON_DURING_RAIN + screen.SUN_MOON_SETTINGS= SUN_MOON_STYLE_DEFINE SUN_ANGLE SUN_MOON_HORIZON SUN_MOON_DURING_RAIN SUN_MOON_GLARE_INTENSITY screen.NETHER_SETTINGS= NETHER_VIEW_LIMIT NETHER_COLOR_MODE NETHER_STORM NETHER_STORM_I NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT - screen.WEATHER_SETTINGS= RAIN_STYLE SPECIAL_BIOME_WEATHER WEATHER_TEX_OPACITY SUN_MOON_DURING_RAIN + screen.WEATHER_SETTINGS= RAIN_STYLE SPECIAL_BIOME_WEATHER WEATHER_TEX_OPACITY SUN_MOON_DURING_RAIN SUN_MOON_GLARE_INTENSITY_DURING_RAIN SUN_MOON_GLARE_INTENSITY_DURING_THUNDER screen.ATM_COLOR_SETTINGS= ATM_COLOR_MULTS [MORNING_ATM_MULTS] [NOON_ATM_MULTS] [NIGHT_ATM_MULTS] [RAIN_ATM_MULTS] [NETHER_ATM_MULTS] [END_ATM_MULTS] screen.MORNING_ATM_MULTS= ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I screen.NOON_ATM_MULTS= ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I @@ -62,7 +62,7 @@ screen.ACL_FEATURES_SETTINGS= COLORED_LIGHT_SATURATION COLORED_LIGHT_FOG COLORED_LIGHT_FOG_I CONNECTED_GLASS_EFFECT PORTAL_EDGE_EFFECT PUDDLE_VOXELIZATION COLORED_CANDLE_LIGHT # Set Sliders - sliders=shadowDistance BLOOM_STRENGTH CLOUD_ALT1 CLOUD_ALT2 T_EXPOSURE TM_WHITE_CURVE T_LOWER_CURVE T_UPPER_CURVE T_SATURATION T_VIBRANCE MOTION_BLURRING_STRENGTH NORMAL_MAP_STRENGTH CUSTOM_EMISSION_INTENSITY IMAGE_SHARPENING SUN_ANGLE ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE MINIMUM_LIGHT_MODE GR_RR GR_RG GR_RB GR_RC GR_GR GR_GG GR_GB GR_GC GR_BR GR_BG GR_BB GR_BC POM_DEPTH POM_QUALITY POM_DISTANCE WATER_BUMPINESS WATER_BUMP_SMALL WATER_BUMP_MED WATER_BUMP_BIG WATER_SPEED_MULT WATER_SIZE_MULT WATER_REFRACTION_INTENSITY SELECT_OUTLINE_I SELECT_OUTLINE_R SELECT_OUTLINE_G SELECT_OUTLINE_B LIGHT_NOON_R LIGHT_NOON_G LIGHT_NOON_B LIGHT_NOON_I ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I LIGHT_MORNING_R LIGHT_MORNING_G LIGHT_MORNING_B LIGHT_MORNING_I ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I LIGHT_NIGHT_R LIGHT_NIGHT_G LIGHT_NIGHT_B LIGHT_NIGHT_I ATM_NIGHT_R ATM_NIGHT_G ATM_NIGHT_B ATM_NIGHT_I LIGHT_RAIN_R LIGHT_RAIN_G LIGHT_RAIN_B LIGHT_RAIN_I ATM_RAIN_R ATM_RAIN_G ATM_RAIN_B ATM_RAIN_I LIGHT_NETHER_R LIGHT_NETHER_G LIGHT_NETHER_B LIGHT_NETHER_I ATM_NETHER_R ATM_NETHER_G ATM_NETHER_B ATM_NETHER_I LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I ATM_END_R ATM_END_G ATM_END_B ATM_END_I WORLD_OUTLINE_I AMBIENT_MULT GENERATED_NORMAL_MULT COATED_TEXTURE_MULT LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I WATERCOLOR_R WATERCOLOR_G WATERCOLOR_B WATER_FOAM_I WATER_ALPHA_MULT WATER_FOG_MULT UNDERWATERCOLOR_R UNDERWATERCOLOR_G UNDERWATERCOLOR_B GLOWING_ORE_MULT SSAO_I VANILLAAO_I CHROMA_ABERRATION XLIGHT_R XLIGHT_G XLIGHT_B NIGHT_NEBULA_I WEATHER_TEX_OPACITY NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT NETHER_STORM_I CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD CLOUD_SPEED_MULT WB_DOF_I WB_DOF_FOCUS WB_DB_DAY_I WB_DB_NIGHT_I WB_DB_RAIN_I WB_DB_WATER_I WB_DB_NETHER_I WB_DB_END_I WAVING_SPEED WAVING_I MOON_PHASE_FULL MOON_PHASE_PARTIAL MOON_PHASE_DARK LENSFLARE_I SHADOW_SMOOTHING BLOCKLIGHT_FLICKERING NETHER_VIEW_LIMIT CLOUD_R CLOUD_G CLOUD_B WAVING_I_RAIN_MULT COLORED_LIGHT_FOG_I XLIGHT_I COLORED_LIGHT_SATURATION PIXEL_SCALE + sliders=shadowDistance BLOOM_STRENGTH CLOUD_ALT1 CLOUD_ALT2 T_EXPOSURE TM_WHITE_CURVE T_LOWER_CURVE T_UPPER_CURVE T_SATURATION T_VIBRANCE MOTION_BLURRING_STRENGTH NORMAL_MAP_STRENGTH CUSTOM_EMISSION_INTENSITY IMAGE_SHARPENING SUN_ANGLE ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE MINIMUM_LIGHT_MODE GR_RR GR_RG GR_RB GR_RC GR_GR GR_GG GR_GB GR_GC GR_BR GR_BG GR_BB GR_BC POM_DEPTH POM_QUALITY POM_DISTANCE WATER_BUMPINESS WATER_BUMP_SMALL WATER_BUMP_MED WATER_BUMP_BIG WATER_SPEED_MULT WATER_SIZE_MULT WATER_REFRACTION_INTENSITY SELECT_OUTLINE_I SELECT_OUTLINE_R SELECT_OUTLINE_G SELECT_OUTLINE_B LIGHT_NOON_R LIGHT_NOON_G LIGHT_NOON_B LIGHT_NOON_I ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I LIGHT_MORNING_R LIGHT_MORNING_G LIGHT_MORNING_B LIGHT_MORNING_I ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I LIGHT_NIGHT_R LIGHT_NIGHT_G LIGHT_NIGHT_B LIGHT_NIGHT_I ATM_NIGHT_R ATM_NIGHT_G ATM_NIGHT_B ATM_NIGHT_I LIGHT_RAIN_R LIGHT_RAIN_G LIGHT_RAIN_B LIGHT_RAIN_I ATM_RAIN_R ATM_RAIN_G ATM_RAIN_B ATM_RAIN_I LIGHT_NETHER_R LIGHT_NETHER_G LIGHT_NETHER_B LIGHT_NETHER_I ATM_NETHER_R ATM_NETHER_G ATM_NETHER_B ATM_NETHER_I LIGHT_END_R LIGHT_END_G LIGHT_END_B LIGHT_END_I ATM_END_R ATM_END_G ATM_END_B ATM_END_I WORLD_OUTLINE_I AMBIENT_MULT GENERATED_NORMAL_MULT COATED_TEXTURE_MULT LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I WATERCOLOR_R WATERCOLOR_G WATERCOLOR_B WATER_FOAM_I WATER_ALPHA_MULT WATER_FOG_MULT UNDERWATERCOLOR_R UNDERWATERCOLOR_G UNDERWATERCOLOR_B GLOWING_ORE_MULT SSAO_I VANILLAAO_I CHROMA_ABERRATION XLIGHT_R XLIGHT_G XLIGHT_B NIGHT_NEBULA_I WEATHER_TEX_OPACITY NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT NETHER_STORM_I CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD CLOUD_SPEED_MULT WB_DOF_I WB_DOF_FOCUS WB_DB_DAY_I WB_DB_NIGHT_I WB_DB_RAIN_I WB_DB_WATER_I WB_DB_NETHER_I WB_DB_END_I WAVING_SPEED WAVING_I MOON_PHASE_FULL MOON_PHASE_PARTIAL MOON_PHASE_DARK LENSFLARE_I SHADOW_SMOOTHING BLOCKLIGHT_FLICKERING NETHER_VIEW_LIMIT CLOUD_R CLOUD_G CLOUD_B WAVING_I_RAIN_MULT COLORED_LIGHT_FOG_I XLIGHT_I COLORED_LIGHT_SATURATION PIXEL_SCALE SUN_MOON_GLARE_INTENSITY SUN_MOON_GLARE_INTENSITY_DURING_RAIN SUN_MOON_GLARE_INTENSITY_DURING_THUNDER # Special Define Handling # Needed to disable colored lighting related code in shaders.properties @@ -197,6 +197,9 @@ uniform.float.eyeBrightnessM = smooth(4, eyeBrightness.y / 240.0, 5, 5) uniform.float.eyeBrightnessM2 = smooth(4, if(eyeBrightness.y > 239.0, 1, 0), 2, 2) uniform.float.rainFactor = smooth(1, rainStrength, 3, 3) + #ifdef IS_IRIS + uniform.float.thunderFactor = smooth(1, thunderStrength, 3, 3) + #endif uniform.float.inNetherWastes=smooth(50, if(in(biome, BIOME_NETHER_WASTES), 1, 0), 15, 15) uniform.float.inCrimsonForest=smooth(51, if(in(biome, BIOME_CRIMSON_FOREST), 1, 0), 15, 15) From 89bfa8a2eeb4312efa34107af2e4e6544c28d385 Mon Sep 17 00:00:00 2001 From: BlueGradientHorizon Date: Mon, 10 Mar 2025 18:34:41 +0300 Subject: [PATCH 2/3] Set default glare intensity settings during rain and thunder a little lower --- shaders/lib/common.glsl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shaders/lib/common.glsl b/shaders/lib/common.glsl index 786098a7..4d8d893d 100644 --- a/shaders/lib/common.glsl +++ b/shaders/lib/common.glsl @@ -84,8 +84,8 @@ #define SUN_MOON_DURING_RAIN #define NIGHT_STAR_AMOUNT 2 //[2 3] #define SUN_MOON_GLARE_INTENSITY 0.50 //[0.00 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] - #define SUN_MOON_GLARE_INTENSITY_DURING_RAIN 0.15 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] - #define SUN_MOON_GLARE_INTENSITY_DURING_THUNDER 0.05 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] + #define SUN_MOON_GLARE_INTENSITY_DURING_RAIN 0.10 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] + #define SUN_MOON_GLARE_INTENSITY_DURING_THUNDER 0.04 //[0.00 0.01 0.02 0.03 0.04 0.05 0.10 0.15 0.20 0.25 0.30 0.35 0.40 0.45 0.50 0.55 0.60 0.65 0.70 0.75 0.80 0.85 0.90 0.95 1.00] #define RAINBOWS 1 //[0 1 3] #define CLOUD_STYLE_DEFINE -1 //[-1 0 1 3 50] //#define CLOUD_SHADOWS From e66d79d488c83280d646144d44179e5b1096d067 Mon Sep 17 00:00:00 2001 From: BlueGradientHorizon Date: Mon, 10 Mar 2025 20:17:58 +0300 Subject: [PATCH 3/3] Move thunderStrength uniform declaration into IS_IRIS macro check block (for OF) --- shaders/lib/uniforms.glsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shaders/lib/uniforms.glsl b/shaders/lib/uniforms.glsl index a8d8f8aa..e721856a 100644 --- a/shaders/lib/uniforms.glsl +++ b/shaders/lib/uniforms.glsl @@ -38,7 +38,6 @@ uniform float far; uniform float near; uniform float nightVision; uniform float rainStrength; -uniform float thunderStrength; uniform float screenBrightness; uniform float viewHeight; uniform float viewWidth; @@ -95,6 +94,7 @@ uniform vec3 previousCameraPositionFract; #ifdef IS_IRIS uniform int renderStage; + uniform float thunderStrength; #endif #if SHADOW_QUALITY > -1 || defined LIGHTSHAFTS_ACTIVE || defined FF_BLOCKLIGHT