diff --git a/shaders/lib/diffuse_lighting.glsl b/shaders/lib/diffuse_lighting.glsl index 285b97b..ac63d03 100644 --- a/shaders/lib/diffuse_lighting.glsl +++ b/shaders/lib/diffuse_lighting.glsl @@ -65,7 +65,8 @@ vec3 DoAmbientLighting_End(vec3 FogColor, vec3 TorchColor, float Lightmap, vec3 FogColor = (FogColor / pow(0.00001 + dot(FogColor,vec3(0.3333)),1.0) ) * 0.1; // vec3 AmbientLight = sqrt( clamp(1.25 + dot(Normal,np3),0.0,1.0)) * (vec3(0.5,0.75,1.0) * 0.05); - vec3 AmbientLight = sqrt( clamp(1.25 + dot(Normal,np3),0.0,1.0)*0.5) * FogColor; + // vec3 AmbientLight = sqrt( clamp(1.25 + dot(Normal,np3),0.0,1.0)*0.5) * FogColor; + vec3 AmbientLight = vec3(0.5,0.75,1.0) * 0.05 + FogColor*clamp(1.1 + dot(Normal,np3),0.0,1.0)*0.5; return TorchLight + AmbientLight; } \ No newline at end of file diff --git a/shaders/lib/end_fog.glsl b/shaders/lib/end_fog.glsl index 8358f71..721ad7d 100644 --- a/shaders/lib/end_fog.glsl +++ b/shaders/lib/end_fog.glsl @@ -79,7 +79,7 @@ vec3 LightSourcePosition(vec3 WorldPos, vec3 CameraPos){ float SwirlBounds = clamp(sqrt(length(vec3(Origin.x,Origin.y-100,Origin.z)) / 150.0 - 1.0) ,0.0,1.0); if( SwirlBounds < 1.0) { - Origin.y -= 200; + Origin.y -= 260; } else { Origin = WorldPos - CameraPos ; @@ -113,10 +113,11 @@ vec3 LightSourcePosition(vec3 WorldPos, vec3 CameraPos){ ///////////////// COLOR vec3 LightSourceColor(float SwirlBounds){ - vec3 Color = vec3(0.5, 0.5, 1.0); + vec3 Color = vec3(0.7, 0.8, 1.0); #ifndef THE_ORB if( SwirlBounds < 1.0) { + // Color = vec3(0.5, 0.5, 1.0); } else { @@ -171,6 +172,7 @@ vec3 LightSourceShape(vec3 WorldPos){ Shapes.r = max(Shapes.r, max(1.0 - AltCenter / 75.0, 0.0)); + // debug donut // radius = 50.0; // thickness = 5.0 * radius; @@ -214,7 +216,7 @@ float cloudVol(in vec3 pos, int LOD){ // make the eye of the swirl have no fog, so you can actually see. finalfog = max(finalfog - Shapes.r, 0.0); - // finalfog = Shapes.b; + finalfog += Shapes.b; return finalfog; @@ -260,7 +262,7 @@ mat2x3 getVolumetricRays(float dither,vec3 fragpos,float dither2) { progressW = gbufferModelViewInverse[3].xyz+cameraPosition + d*dVWorld; float densityVol = cloudVol(progressW,1); - float density = min(densityVol,0.1); + float density = min(densityVol,0.09); float air = 0.005; /// THE OOOOOOOOOOOOOOOOOOOOOORB @@ -271,7 +273,7 @@ mat2x3 getVolumetricRays(float dither,vec3 fragpos,float dither2) { // float OrbMie = max(exp2(4.0 + length(LightPos) / -20),0.0); - float OrbMie = max(1.0-length(LightPos)/200,0.0); + float OrbMie = max(1.0-length(LightPos)/250,0.0); float N = 2.50; OrbMie = pow(1.0-pow(1.0-OrbMie,1.0/N),N); OrbMie *= 10.0; diff --git a/shaders/world1/composite.fsh b/shaders/world1/composite.fsh index a8e29a1..beeac68 100644 --- a/shaders/world1/composite.fsh +++ b/shaders/world1/composite.fsh @@ -318,9 +318,9 @@ float rayTraceShadow(vec3 dir,vec3 position,float dither){ (-near -position.z) / dir.z : far*sqrt(3.) ; vec3 direction = toClipSpace3(position+dir*rayLength)-clipPosition; //convert to clip space direction.xyz = direction.xyz/max(abs(direction.x)/texelSize.x,abs(direction.y)/texelSize.y); //fixed step size - vec3 stepv = direction * 3.0 * clamp(MC_RENDER_QUALITY,1.,2.0)*vec3(RENDER_SCALE,1.0); + vec3 stepv = direction * 3.0 * clamp(MC_RENDER_QUALITY,1.,2.0); - vec3 spos = clipPosition*vec3(RENDER_SCALE,1.0); + vec3 spos = clipPosition; spos += stepv*dither ; for (int i = 0; i < int(quality); i++) { @@ -398,13 +398,19 @@ void main() { vec3 LightColor = LightSourceColor(clamp(sqrt(length(p3+cameraPosition) / 150.0 - 1.0) ,0.0,1.0)); vec3 LightPos = LightSourcePosition(p3+cameraPosition, cameraPosition); - // float LightFalloff = max(exp2(4.0 + length(LightPos) / -50),0.0); - float LightFalloff = max(1.0-length(LightPos)/255,0.0); - LightFalloff = pow(1.0-pow(1.0-LightFalloff,0.5),2.0); - LightFalloff *= 10.0; + float LightFalloff = max(exp2(4.0 + length(LightPos) / -25),0.0); + // float LightFalloff = max(1.0-length(LightPos)/255,0.0); + // LightFalloff = pow(1.0-pow(1.0-LightFalloff,0.5),2.0); + // LightFalloff *= 10.0; + + // float LightFalloff = max(1.0-length(LightPos)/250,0.0); + // float N = 2.50; + // LightFalloff = pow(1.0-pow(1.0-LightFalloff,1.0/N),N); + // LightFalloff *= 10.0; // 0.5 added because lightsources are always high radius. float NdotL = clamp( dot(normal,normalize(-LightPos)),0.0,1.0); + NdotL = clamp((-15 + NdotL*255.0) / 240.0 ,0.0,1.0); float fogshadow = GetCloudShadow(p3+cameraPosition, LightPos, blueNoise()); vec3 LightSource = (LightColor * max(LightColor - (1-fogshadow) ,0.0)) * LightFalloff * NdotL ; @@ -420,8 +426,8 @@ void main() { LightSource += (LightColor * max(LightColor - 0.6,0.0)) * vec3(1.0,1.3,1.0) * LightFalloff2 * (NdotL*0.7+0.3); - // float RT_Shadows = rayTraceShadow(worldToView(normalize(-LightPos)), fragpos_RTSHADOW, blueNoise()); - // if(!hand) LightSource *= RT_Shadows*RT_Shadows; + float RT_Shadows = rayTraceShadow(worldToView(normalize(-LightPos)), fragpos_RTSHADOW, blueNoise()); + if(!hand) LightSource *= RT_Shadows*RT_Shadows; // finalize diff --git a/shaders/world1/gbuffers_block.fsh b/shaders/world1/gbuffers_block.fsh index 34cbade..3397eab 100644 --- a/shaders/world1/gbuffers_block.fsh +++ b/shaders/world1/gbuffers_block.fsh @@ -2,4 +2,4 @@ #define WORLD #define BLOCKENTITIES -#include "/gbuffers_all_solid.fsh" \ No newline at end of file +#include "/programs/all_solid.fsh" \ No newline at end of file diff --git a/shaders/world1/gbuffers_block.vsh b/shaders/world1/gbuffers_block.vsh index 31749b9..dd49c86 100644 --- a/shaders/world1/gbuffers_block.vsh +++ b/shaders/world1/gbuffers_block.vsh @@ -2,4 +2,4 @@ #define WORLD #define BLOCKENTITIES -#include "/gbuffers_all_solid.vsh" \ No newline at end of file +#include "/programs/all_solid.vsh" \ No newline at end of file