From eaace8195803652180cdff08b201940579d2d798 Mon Sep 17 00:00:00 2001 From: Xonk Date: Fri, 20 Oct 2023 21:24:50 -0400 Subject: [PATCH] fix mob SSS not working. added moonphase based moonlight brightness setting. --- shaders/dimensions/composite1.fsh | 2 ++ shaders/lang/en_us.lang | 4 +++- shaders/lib/settings.glsl | 17 ++++++++++++----- shaders/lib/volumetricClouds.glsl | 5 +++++ shaders/lib/volumetricFog.glsl | 3 +++ shaders/shaders.properties | 2 +- 6 files changed, 26 insertions(+), 7 deletions(-) diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index e8cdeed..8e24d9a 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -726,8 +726,10 @@ void main() { #if RESOURCEPACK_SKY == 1 Background += toLinear(texture2D(colortex10, texcoord).rgb * (255.0 * 2.0)); #endif + #ifndef ambientLight_only Background += drawSun(dot(lightCol.a * WsunVec, feetPlayerPos_normalized),0, DirectLightColor,vec3(0.0)); Background += drawMoon(feetPlayerPos_normalized, lightCol.a * WsunVec, DirectLightColor*20, Background); + #endif #endif diff --git a/shaders/lang/en_us.lang b/shaders/lang/en_us.lang index 387bb55..243fe00 100644 --- a/shaders/lang/en_us.lang +++ b/shaders/lang/en_us.lang @@ -12,6 +12,7 @@ screen.Sun_and_Moon_Colors = Sun/Moon Colors option.sunPathRotation = Sun Angle option.sun_illuminance = Sun Illuminance option.moon_illuminance = Moon Illuminance +option.MOONPHASE_BASED_MOONLIGHT = Moonphase brightness levels option.RESOURCEPACK_SKY = RP Sky value.RESOURCEPACK_SKY.0 = Do not use @@ -500,4 +501,5 @@ screen.Post_Processing.comment = Configure settings for all post processing effe option.RESOURCEPACK_SKY.comment = Toggle resourcepack sky support. Configure settings to use the whole resourcepack sky, or keep the shader's sun and moon. §aPERFORMANCE COST:§r very low option.MATERIAL_AO.comment = Toggle the use of ambient occlusion based on what the resourcepack provides. §aPERFORMANCE COST:§r very low -option.WATER_WAVE_STRENGTH.comment = configure how strong the waves appear. \ No newline at end of file +option.WATER_WAVE_STRENGTH.comment = configure how strong the waves appear. +option.MOONPHASE_BASED_MOONLIGHT.comment = §bWhat is this?§r every night, the moon has different lighting. This setting adjusts the moonlight brightness based on how much of the moon is glowing. §aPERFORMANCE COST:§r nearly nothing \ No newline at end of file diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 5970d3d..180cd5e 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -249,7 +249,7 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 #define SSS_TYPE 2 // [0 1 2 3] #define LabSSS_Curve 1.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 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 ] -#define MOB_SSS +// #define MOB_SSS // #define MISC_BLOCK_SSS #define Ambient_SSS #define ambientsss_brightness 1.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 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0] @@ -292,16 +292,23 @@ const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -8 #define moonColorG 0.9121 //[0.0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0 ] #define moonColorB 0.8948 //[0.0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.11 0.12 0.13 0.14 0.15 0.16 0.17 0.18 0.19 0.2 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29 0.3 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.4 0.41 0.42 0.43 0.44 0.45 0.46 0.47 0.48 0.49 0.5 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59 0.6 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.7 0.71 0.72 0.73 0.74 0.75 0.76 0.77 0.78 0.79 0.8 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89 0.9 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.0 ] -uniform int moonPhase; -#define moonlightbrightness (abs(4-moonPhase)) -#define moonlightbrightness2 (moonlightbrightness/4.0) +#define MOONPHASE_BASED_MOONLIGHT #if colortype == 1 #define sunColorBase vec3(sunColorR,sunColorG,sunColorB) * sun_illuminance #define moonColorBase vec3(moonColorR,moonColorG,moonColorB) * moon_illuminance //Fake Purkinje effect #else #define sunColorBase blackbody(Sun_temp) * sun_illuminance - #define moonColorBase blackbody(Moon_temp) * moon_illuminance * moonlightbrightness2 //Fake Purkinje effect + + #ifdef MOONPHASE_BASED_MOONLIGHT + uniform int moonPhase; + #define phasebrightness (abs(4-moonPhase)) + #define moonlightbrightness (phasebrightness/4.0) + #define moonColorBase blackbody(Moon_temp) * (moon_illuminance * moonlightbrightness) //Fake Purkinje effect + #else + #define moonColorBase blackbody(Moon_temp) * moon_illuminance //Fake Purkinje effect + #endif + #endif diff --git a/shaders/lib/volumetricClouds.glsl b/shaders/lib/volumetricClouds.glsl index e0673c0..3c7f656 100644 --- a/shaders/lib/volumetricClouds.glsl +++ b/shaders/lib/volumetricClouds.glsl @@ -238,6 +238,11 @@ vec4 renderClouds( SunColor = SunColor * clamp(dV_Sun.y ,0.0,1.0); MoonColor *= clamp(-dV_Sun.y,0.0,1.0); + #ifdef ambientLight_only + SunColor = vec3(0.0); + MoonColor = vec3(0.0); + #endif + if(dV_Sun.y/shadowStep < -0.1) dV_Sun = -dV_Sun; float mieDay = phaseg(SdotV, 0.75); diff --git a/shaders/lib/volumetricFog.glsl b/shaders/lib/volumetricFog.glsl index c990015..90c363e 100644 --- a/shaders/lib/volumetricFog.glsl +++ b/shaders/lib/volumetricFog.glsl @@ -124,6 +124,9 @@ vec4 GetVolumetricFog( // Makes fog more white idk how to simulate it correctly vec3 LightSourceColor = LightColor; + #ifdef ambientLight_only + LightSourceColor = vec3(0.0); + #endif vec3 skyCol0 = AmbientColor / 2.0; // recolor change sun and sky color to a color, but make sure luminance is preserved. diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 7e9c5e4..555c575 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -87,7 +87,7 @@ PhysicsMod_support [LabPBR] ######## LIGHTING ### DIRECT LIGHT screen.Direct_Light.columns=1 - screen.Direct_Light = [Shadows] [Subsurface_Scattering] [Sun_and_Moon_Colors] sunPathRotation sun_illuminance moon_illuminance OLD_LIGHTLEAK_FIX + screen.Direct_Light = [Shadows] [Subsurface_Scattering] [Sun_and_Moon_Colors] OLD_LIGHTLEAK_FIX sunPathRotation sun_illuminance MOONPHASE_BASED_MOONLIGHT moon_illuminance screen.Shadows.columns=1 screen.Shadows = SCREENSPACE_CONTACT_SHADOWS RENDER_ENTITY_SHADOWS [Filtering] shadowMapResolution shadowDistance shadowDistanceRenderMul