From 3983939d2a57ff22d7e985e979dde4b8fd3ebf02 Mon Sep 17 00:00:00 2001 From: Xonk Date: Fri, 22 Dec 2023 16:19:44 -0500 Subject: [PATCH] indirect light glow from internal cloud light from end lightning --- shaders/dimensions/all_particles.fsh | 1 + shaders/dimensions/composite1.fsh | 28 +++++++++++----------------- shaders/dimensions/composite3.fsh | 3 +-- shaders/lib/end_fog.glsl | 2 +- 4 files changed, 14 insertions(+), 20 deletions(-) diff --git a/shaders/dimensions/all_particles.fsh b/shaders/dimensions/all_particles.fsh index 000153f..73f1ccd 100644 --- a/shaders/dimensions/all_particles.fsh +++ b/shaders/dimensions/all_particles.fsh @@ -121,6 +121,7 @@ void main() { #ifndef BLOOMY_PARTICLES gl_FragData[1].a = 0.0; // for bloomy rain and stuff #endif + vec3 Direct_lighting = vec3(0.0); vec3 Indirect_lighting = vec3(0.0); vec3 Torch_Color = vec3(TORCH_R,TORCH_G,TORCH_B); diff --git a/shaders/dimensions/composite1.fsh b/shaders/dimensions/composite1.fsh index a8f99ac..e64b493 100644 --- a/shaders/dimensions/composite1.fsh +++ b/shaders/dimensions/composite1.fsh @@ -443,17 +443,6 @@ void SSRT_Shadows(vec3 viewPos, vec3 lightDir, float noise, bool isSSS, bool ins } } -#ifdef END_SHADER - float GetShading(vec3 WorldPos, vec3 LightPos, vec3 Normal){ - - float NdotL = clamp(dot(Normal, normalize(-LightPos))*0.5+0.5,0.0,1.0); - NdotL *= NdotL; - float FogShadow = GetCloudShadow(WorldPos, LightPos); - - return endFogPhase(LightPos) * NdotL * FogShadow; - } -#endif - float CustomPhase(float LightPos){ float PhaseCurve = 1.0 - LightPos; @@ -835,17 +824,20 @@ void main() { #ifdef END_SHADER - float vortexBounds = clamp(vortexBoundRange - length(feetPlayerPos+cameraPosition), 0.0,1.0); vec3 lightPos = LightSourcePosition(feetPlayerPos+cameraPosition, cameraPosition,vortexBounds); - float lightningflash = texelFetch2D(colortex4,ivec2(1,1),0).x/150.0; vec3 lightColors = LightSourceColors(vortexBounds, lightningflash); + + float end_NdotL = clamp(dot(slopednormal, normalize(-lightPos))*0.5+0.5,0.0,1.0); + end_NdotL *= end_NdotL; - Direct_lighting += lightColors * GetShading(feetPlayerPos+cameraPosition, lightPos, slopednormal) ; - + float fogShadow = GetCloudShadow(feetPlayerPos+cameraPosition, lightPos); + float endPhase = endFogPhase(lightPos); + Direct_lighting += lightColors * endPhase * end_NdotL * fogShadow; + AmbientLightColor += lightColors * (endPhase*endPhase) * (1.0-exp(vec3(0.6,2.0,2) * -(endPhase*0.1))) ; #endif ///////////////////////////////////////////////////////////////////////////////// @@ -877,8 +869,10 @@ void main() { #endif #ifdef END_SHADER - float fresnelGlow = pow(clamp(1.5 + dot(normal, feetPlayerPos_normalized)*0.5,0,2),2); - vec3 AmbientLightColor = (vec3(0.5,0.75,1.0) *0.9 + 0.1)* fresnelGlow; + + AmbientLightColor += vec3(0.5,0.75,1.0) * 0.9 + 0.1; + + AmbientLightColor *= clamp(1.5 + dot(normal, feetPlayerPos_normalized)*0.5,0,2); #endif Indirect_lighting = DoAmbientLightColor(AmbientLightColor, vec3(TORCH_R,TORCH_G,TORCH_B), lightmap.xy); diff --git a/shaders/dimensions/composite3.fsh b/shaders/dimensions/composite3.fsh index 4fd1192..c625a34 100644 --- a/shaders/dimensions/composite3.fsh +++ b/shaders/dimensions/composite3.fsh @@ -346,8 +346,7 @@ void main() { #ifdef OVERWORLD_SHADER // bloomy rain effect float rainDrops = clamp(texture2D(colortex9,texcoord).a, 0.0,1.0); - if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0); - // if(rainDrops > 0.0) bloomyFogMult *= exp((1.0 - rainDrops) * -0.1); + if(rainDrops > 0.0) bloomyFogMult *= clamp(1.0 - pow(rainDrops*5.0,2),0.0,1.0); #endif /// lava. diff --git a/shaders/lib/end_fog.glsl b/shaders/lib/end_fog.glsl index 25076ca..e0e766f 100644 --- a/shaders/lib/end_fog.glsl +++ b/shaders/lib/end_fog.glsl @@ -302,5 +302,5 @@ float GetCloudShadow(vec3 WorldPos, vec3 LightPos){ Shadow += Cast; } - return clamp(exp(Shadow * -5.0),0.0,1.0); + return clamp(exp(Shadow * -10.0),0.0,1.0); } \ No newline at end of file