mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-23 01:59:39 +08:00
cave fog changes color in some places, biome fog tweaks
This commit is contained in:
parent
3b2f038acb
commit
158002d259
@ -22,6 +22,8 @@ uniform vec3 sunPosition;
|
|||||||
uniform float sunElevation;
|
uniform float sunElevation;
|
||||||
uniform int frameCounter;
|
uniform int frameCounter;
|
||||||
|
|
||||||
|
// uniform float sandStorm;
|
||||||
|
|
||||||
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
||||||
vec2(-1.,3.)/8.,
|
vec2(-1.,3.)/8.,
|
||||||
vec2(5.0,1.)/8.,
|
vec2(5.0,1.)/8.,
|
||||||
@ -30,7 +32,9 @@ const vec2[8] offsets = vec2[8](vec2(1./8.,-3./8.),
|
|||||||
vec2(-7.,-1.)/8.,
|
vec2(-7.,-1.)/8.,
|
||||||
vec2(3,7.)/8.,
|
vec2(3,7.)/8.,
|
||||||
vec2(7.,-7.)/8.);
|
vec2(7.,-7.)/8.);
|
||||||
|
float luma(vec3 color) {
|
||||||
|
return dot(color,vec3(0.299, 0.587, 0.114));
|
||||||
|
}
|
||||||
|
|
||||||
#include "/lib/util.glsl"
|
#include "/lib/util.glsl"
|
||||||
#include "/lib/res_params.glsl"
|
#include "/lib/res_params.glsl"
|
||||||
|
@ -12,9 +12,6 @@ flat varying vec3 averageSkyCol_Clouds;
|
|||||||
flat varying vec3 averageSkyCol;
|
flat varying vec3 averageSkyCol;
|
||||||
|
|
||||||
flat varying float tempOffsets;
|
flat varying float tempOffsets;
|
||||||
flat varying float fogAmount;
|
|
||||||
flat varying float VFAmount;
|
|
||||||
flat varying float FogSchedule;
|
|
||||||
uniform sampler2D noisetex;
|
uniform sampler2D noisetex;
|
||||||
uniform sampler2D depthtex0;
|
uniform sampler2D depthtex0;
|
||||||
uniform sampler2D depthtex1;
|
uniform sampler2D depthtex1;
|
||||||
@ -50,7 +47,7 @@ uniform vec2 texelSize;
|
|||||||
#include "lib/projections.glsl"
|
#include "lib/projections.glsl"
|
||||||
#include "lib/sky_gradient.glsl"
|
#include "lib/sky_gradient.glsl"
|
||||||
#include "/lib/res_params.glsl"
|
#include "/lib/res_params.glsl"
|
||||||
// #include "lib/biome_specifics.glsl"
|
|
||||||
|
|
||||||
#define TIMEOFDAYFOG
|
#define TIMEOFDAYFOG
|
||||||
#include "lib/volumetricClouds.glsl"
|
#include "lib/volumetricClouds.glsl"
|
||||||
@ -268,19 +265,29 @@ void main() {
|
|||||||
|
|
||||||
vec3 fragpos = toScreenSpace(vec3(tc/RENDER_SCALE,z));
|
vec3 fragpos = toScreenSpace(vec3(tc/RENDER_SCALE,z));
|
||||||
|
|
||||||
#ifdef Cloud_Fog
|
#ifdef Cumulus
|
||||||
vec4 VL_CLOUDFOG = InsideACloudFog(fragpos, vec2(R2_dither(),blueNoise()), lightCol.rgb/80., moonColor/150., (averageSkyCol*2.0) * 8./150./3.);
|
#ifdef Cloud_Fog
|
||||||
|
vec4 VL_CLOUDFOG = InsideACloudFog(fragpos, vec2(R2_dither(),blueNoise()), lightCol.rgb/80., moonColor/150., (averageSkyCol*2.0) * 8./150./3.);
|
||||||
// vec4 rays = vec4(0.0);
|
|
||||||
// if(rainStrength > 0.0){
|
// vec4 rays = vec4(0.0);
|
||||||
// rays = RainRays(vec3(0.0), fragpos, length(fragpos), R2_dither(), (avgAmbient*2.0) * 8./150./3., lightCol.rgb, dot(normalize(fragpos), normalize(sunVec) ));
|
// if(rainStrength > 0.0){
|
||||||
// VL_CLOUDFOG += rays * rainStrength;
|
// rays = RainRays(vec3(0.0), fragpos, length(fragpos), R2_dither(), (avgAmbient*2.0) * 8./150./3., lightCol.rgb, dot(normalize(fragpos), normalize(sunVec) ));
|
||||||
// }
|
// VL_CLOUDFOG += rays * rainStrength;
|
||||||
|
// }
|
||||||
|
|
||||||
|
gl_FragData[0] = clamp(VL_CLOUDFOG, 0.0,65000.);
|
||||||
|
#else
|
||||||
|
|
||||||
|
vec4 VL_Fog = getVolumetricRays(fragpos, blueNoise(), averageSkyCol);
|
||||||
|
gl_FragData[0] = clamp(VL_Fog,0.0,65000.);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
gl_FragData[0] = clamp(VL_CLOUDFOG, 0.0,65000.);
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
vec4 VL_Fog = getVolumetricRays(fragpos, blueNoise(), averageSkyCol);
|
vec4 VL_Fog = getVolumetricRays(fragpos, blueNoise(), averageSkyCol);
|
||||||
gl_FragData[0] = clamp(VL_Fog,0.0,65000.);
|
gl_FragData[0] = clamp(VL_Fog,0.0,65000.);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ uniform mat4 gbufferModelViewInverse;
|
|||||||
// #include "lib/biome_specifics.glsl"
|
// #include "lib/biome_specifics.glsl"
|
||||||
|
|
||||||
|
|
||||||
|
// uniform float sandStorm;
|
||||||
float luma(vec3 color) {
|
float luma(vec3 color) {
|
||||||
return dot(color,vec3(0.21, 0.72, 0.07));
|
return dot(color,vec3(0.21, 0.72, 0.07));
|
||||||
}
|
}
|
||||||
@ -67,6 +68,8 @@ void main() {
|
|||||||
lightCol.a = float(sunElevation > 1e-5)*2-1.;
|
lightCol.a = float(sunElevation > 1e-5)*2-1.;
|
||||||
lightCol.rgb = sc;
|
lightCol.rgb = sc;
|
||||||
|
|
||||||
|
// lightCol.rgb = mix(lightCol.rgb, luma(lightCol.rgb) * vec3(1.0, 0.01, 0.1) , sandStorm);
|
||||||
|
|
||||||
// #ifdef VOLUMETRIC_CLOUDS
|
// #ifdef VOLUMETRIC_CLOUDS
|
||||||
// #ifndef VL_Clouds_Shadows
|
// #ifndef VL_Clouds_Shadows
|
||||||
// lightCol.rgb *= (1.0-rainStrength*0.9);
|
// lightCol.rgb *= (1.0-rainStrength*0.9);
|
||||||
|
@ -60,6 +60,7 @@ uniform float darknessLightFactor;
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
|
#define diagonal3(m) vec3((m)[0].x, (m)[1].y, m[2].z)
|
||||||
#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz)
|
#define projMAD(m, v) (diagonal3(m) * (v) + (m)[3].xyz)
|
||||||
|
|
||||||
@ -275,9 +276,10 @@ void main() {
|
|||||||
// float fogdistfade = clamp( pow(1.0 - exp((length(fragpos) / far) * -5), 2.0) ,0.0,1.0);
|
// float fogdistfade = clamp( pow(1.0 - exp((length(fragpos) / far) * -5), 2.0) ,0.0,1.0);
|
||||||
// // float fogfade = clamp( exp(clamp(np3.y * 0.35 + 0.35,0,1) * -5.0) ,0.0,1.0) * 0.1;
|
// // float fogfade = clamp( exp(clamp(np3.y * 0.35 + 0.35,0,1) * -5.0) ,0.0,1.0) * 0.1;
|
||||||
|
|
||||||
|
vec3 cavefogCol = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B);
|
||||||
|
BiomeFogColor(cavefogCol);
|
||||||
|
|
||||||
|
color.rgb = mix(color.rgb, cavefogCol*fogfade, fogdistfade * (1.0-lightleakfix) * (1.0-darknessFactor) * clamp( 1.5 - np3.y,0.,1)) ;
|
||||||
color.rgb = mix(color.rgb, vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)*fogfade + (blueNoise()-0.5)*0.01, fogdistfade * (1.0-lightleakfix) * (1.0-darknessFactor) * clamp( 1.5 - np3.y,0.,1)) ;
|
|
||||||
// color.rgb = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)*fogfade ;
|
// color.rgb = vec3(CaveFogColor_R,CaveFogColor_G,CaveFogColor_B)*fogfade ;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -103,8 +103,9 @@ void main() {
|
|||||||
/// TOOO DAMN BLUE
|
/// TOOO DAMN BLUE
|
||||||
// // only need to sample one spot for this
|
// // only need to sample one spot for this
|
||||||
// averageSkyCol += 2.0*skyFromTex(normalize(vec3(0.0,1.0,0.0)),colortex4).rgb/150.;
|
// averageSkyCol += 2.0*skyFromTex(normalize(vec3(0.0,1.0,0.0)),colortex4).rgb/150.;
|
||||||
|
vec3 minimimlight = vec3(0.2,0.4,1.0) * MIN_LIGHT_AMOUNT*0.0005;
|
||||||
|
averageSkyCol_Clouds = max(averageSkyCol_Clouds, minimimlight);
|
||||||
|
averageSkyCol = max(averageSkyCol, minimimlight);
|
||||||
|
|
||||||
////////////////////////////////////////
|
////////////////////////////////////////
|
||||||
/// --- SUNLIGHT/MOONLIGHT STUFF --- ///
|
/// --- SUNLIGHT/MOONLIGHT STUFF --- ///
|
||||||
|
@ -163,7 +163,7 @@
|
|||||||
BiomeColors.b = isSwamps*0.35 + isJungles*0.8 + sandStorm*0.3 + snowStorm*1.0;
|
BiomeColors.b = isSwamps*0.35 + isJungles*0.8 + sandStorm*0.3 + snowStorm*1.0;
|
||||||
|
|
||||||
// insure the biome colors are locked to the fog shape and lighting, but not its orignal color.
|
// insure the biome colors are locked to the fog shape and lighting, but not its orignal color.
|
||||||
BiomeColors *= dot(FinalFogColor,vec3(0.21, 0.72, 0.07));
|
BiomeColors *= dot(FinalFogColor,vec3(0.33333));
|
||||||
|
|
||||||
// these range 0.0-1.0. they will never overlap.
|
// these range 0.0-1.0. they will never overlap.
|
||||||
float Inbiome = isJungles+isSwamps+sandStorm;
|
float Inbiome = isJungles+isSwamps+sandStorm;
|
||||||
|
@ -20,7 +20,7 @@ vec3 DoAmbientLighting (vec3 SkyColor, vec3 TorchColor, vec2 Lightmap, float sky
|
|||||||
SkyColor += vec3(Lightning_R,Lightning_G,Lightning_B) * 25.0 * skyLightDir * lightningFlash ;
|
SkyColor += vec3(Lightning_R,Lightning_G,Lightning_B) * 25.0 * skyLightDir * lightningFlash ;
|
||||||
|
|
||||||
float skyLM = (pow(Lightmap.y,15.0)*2.0 + pow(Lightmap.y,2.5))*0.5;
|
float skyLM = (pow(Lightmap.y,15.0)*2.0 + pow(Lightmap.y,2.5))*0.5;
|
||||||
vec3 SkyLight = max(SkyColor * skyLM, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01));
|
vec3 SkyLight = max(SkyColor * skyLM, vec3(0.2,0.4,1.0) * (MIN_LIGHT_AMOUNT*0.01) );
|
||||||
|
|
||||||
return SkyLight * skyLightDir + TorchLight;
|
return SkyLight * skyLightDir + TorchLight;
|
||||||
}
|
}
|
||||||
|
@ -207,7 +207,7 @@ uniform int moonPhase;
|
|||||||
#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 ]
|
#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 ]
|
||||||
|
|
||||||
#define moonlightbrightness (abs(4-moonPhase))
|
#define moonlightbrightness (abs(4-moonPhase))
|
||||||
#define moonlightbrightness2 ((moonlightbrightness/4.0) + 0.05)
|
#define moonlightbrightness2 ((moonlightbrightness/4.0))
|
||||||
|
|
||||||
#if colortype == 1
|
#if colortype == 1
|
||||||
#define sunColorBase vec3(sunColorR,sunColorG,sunColorB) * sun_illuminance
|
#define sunColorBase vec3(sunColorR,sunColorG,sunColorB) * sun_illuminance
|
||||||
|
@ -271,13 +271,12 @@ uniform.float.Cloudy_Den = smooth(5, if( \
|
|||||||
variable.int.BiomeTransitionTime = 30
|
variable.int.BiomeTransitionTime = 30
|
||||||
|
|
||||||
uniform.float.isJungles = smooth(6, if(in(biome,23,24,25), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
uniform.float.isJungles = smooth(6, if(in(biome,23,24,25), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
||||||
uniform.float.isSwamps = smooth(7, if(in(biome,6,7), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
uniform.float.isSwamps = smooth(7, if(in(biome,6,7,52), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
||||||
|
|
||||||
|
uniform.float.sandStorm = smooth(8, if(in(biome,5,26,27,28), rainStrength,0), 15,15)
|
||||||
|
uniform.float.snowStorm = smooth(9, if(in(biome,31,32,33,34), rainStrength,0), 15,15)
|
||||||
|
|
||||||
uniform.float.noPuddleAreas = smooth(8, if(in(biome,5,16,17,18,26, 27, 28, 3, 4, 16,31,32,33,34, 37, 39, 48), 0,1), 5,5)
|
uniform.float.noPuddleAreas = smooth(10, if(in(biome,5,16,17,18,26, 27, 28, 3, 4, 16,31,32,33,34, 37, 39, 48), 0,1), 5,5)
|
||||||
|
|
||||||
uniform.float.sandStorm = smooth(9, if(in(biome,5,26,27,28), rainStrength,0), 15,15)
|
|
||||||
uniform.float.snowStorm = smooth(10, if(in(biome,31,32,33,34), rainStrength,0), 15,15)
|
|
||||||
|
|
||||||
|
|
||||||
# uniform.float.isLush = smooth(8, if(in(biome,10,50), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
# uniform.float.isLush = smooth(8, if(in(biome,10,50), 1,0), BiomeTransitionTime,BiomeTransitionTime)
|
||||||
|
Loading…
Reference in New Issue
Block a user