Skip to content

Add sun/moon glare intensity settings #189

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions shaders/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
21 changes: 19 additions & 2 deletions shaders/lib/atmospherics/sky.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
6 changes: 6 additions & 0 deletions shaders/lib/common.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -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.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
Expand Down Expand Up @@ -657,6 +660,9 @@
float invNightFactor = 1.0 - nightFactor;
float rainFactor2 = rainFactor * rainFactor;
float invRainFactor = 1.0 - rainFactor;
#ifdef IS_IRIS
float invThunderFactor = 1.0 - thunderFactor;
#endif
float invNoonFactor = 1.0 - noonFactor;
float invNoonFactor2 = invNoonFactor * invNoonFactor;

Expand Down
4 changes: 4 additions & 0 deletions shaders/lib/uniforms.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -94,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
Expand Down Expand Up @@ -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;
Expand Down
9 changes: 6 additions & 3 deletions shaders/shaders.properties
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@
screen.CLOUD_UNBOUND_SETTINGS=<empty> <empty> CLOUD_UNBOUND_AMOUNT CLOUD_UNBOUND_SIZE_MULT CLOUD_UNBOUND_RAIN_ADD
screen.CLOUD_REIMAGINED_SETTINGS=<empty> <empty> DOUBLE_REIM_CLOUDS CLOUD_ALT2
screen.FOG_SETTINGS=<empty> <empty> BORDER_FOG CAVE_FOG ATM_FOG_MULT ATM_FOG_DISTANCE ATM_FOG_ALTITUDE <empty> <empty> <empty> LIGHTSHAFT_BEHAVIOUR SPECIAL_PALE_GARDEN_LIGHTSHAFTS LIGHTSHAFT_SMOKE LIGHTSHAFT_DAY_I LIGHTSHAFT_NIGHT_I LIGHTSHAFT_RAIN_I
screen.SUN_MOON_SETTINGS=<empty> <empty> SUN_MOON_STYLE_DEFINE SUN_ANGLE SUN_MOON_HORIZON SUN_MOON_DURING_RAIN
screen.SUN_MOON_SETTINGS=<empty> <empty> SUN_MOON_STYLE_DEFINE SUN_ANGLE SUN_MOON_HORIZON SUN_MOON_DURING_RAIN SUN_MOON_GLARE_INTENSITY
screen.NETHER_SETTINGS=<empty> <empty> NETHER_VIEW_LIMIT NETHER_COLOR_MODE <empty> <empty> NETHER_STORM NETHER_STORM_I NETHER_STORM_LOWER_ALT NETHER_STORM_HEIGHT
screen.WEATHER_SETTINGS=<empty> <empty> RAIN_STYLE SPECIAL_BIOME_WEATHER WEATHER_TEX_OPACITY SUN_MOON_DURING_RAIN
screen.WEATHER_SETTINGS=<empty> <empty> 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=<empty> <empty> ATM_COLOR_MULTS <empty> <empty> <empty> [MORNING_ATM_MULTS] [NOON_ATM_MULTS] [NIGHT_ATM_MULTS] [RAIN_ATM_MULTS] [NETHER_ATM_MULTS] [END_ATM_MULTS]
screen.MORNING_ATM_MULTS=<empty> <empty> ATM_MORNING_R ATM_MORNING_G ATM_MORNING_B ATM_MORNING_I
screen.NOON_ATM_MULTS=<empty> <empty> ATM_NOON_R ATM_NOON_G ATM_NOON_B ATM_NOON_I
Expand All @@ -62,7 +62,7 @@
screen.ACL_FEATURES_SETTINGS=<empty> <empty> COLORED_LIGHT_SATURATION <empty> <empty> <empty> 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 CAVE_LIGHTING 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 CAVE_LIGHTING 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
Expand Down Expand Up @@ -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)
Expand Down