mirror of
https://github.com/X0nk/Bliss-Shader.git
synced 2024-12-22 17:47:34 +08:00
refraction TEST
TESSSSSSSSSSSSSSSSSSSSST
This commit is contained in:
parent
82668ef211
commit
3b8cc5a19a
@ -218,8 +218,8 @@ void main() {
|
|||||||
|
|
||||||
/// --- REFRACTION --- ///
|
/// --- REFRACTION --- ///
|
||||||
#ifdef Refraction
|
#ifdef Refraction
|
||||||
// refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE;
|
refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE;
|
||||||
refractedCoord += tangentNormals * 0.1 * RENDER_SCALE;
|
// refractedCoord += tangentNormals * 0.1 * RENDER_SCALE;
|
||||||
|
|
||||||
float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g;
|
float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g;
|
||||||
float refractedalpha2 = texture2D(colortex7,refractedCoord).a;
|
float refractedalpha2 = texture2D(colortex7,refractedCoord).a;
|
||||||
|
@ -92,74 +92,43 @@ float day7 = clamp(clamp(Day-7, 0.0,1.0)*clamp(9-Day, 0.0,1.0),0.0,1.0);
|
|||||||
|
|
||||||
|
|
||||||
#ifdef WEATHERCLOUDS
|
#ifdef WEATHERCLOUDS
|
||||||
uniform float CumulusCoverage;
|
uniform float Cumulus_Cov;
|
||||||
|
|
||||||
|
uniform float Alto_Cov;
|
||||||
|
uniform float Alto_Den;
|
||||||
|
|
||||||
uniform float CirrusCoverage;
|
uniform float CirrusCoverage;
|
||||||
uniform float CirrusThickness;
|
uniform float CirrusThickness;
|
||||||
|
|
||||||
float DailyWeather_LowAltitude(
|
float DailyWeather_Cumulus(
|
||||||
float Coverage
|
float Coverage
|
||||||
){
|
){
|
||||||
|
|
||||||
// #ifdef Daily_Weather
|
|
||||||
// int W_DAY = WeatherDay;
|
|
||||||
|
|
||||||
// if(W_DAY > -1) {
|
|
||||||
// if(W_DAY == 0) Coverage += 0.1;
|
|
||||||
// if(W_DAY == 1) Coverage += 0.5;
|
|
||||||
// if(W_DAY == 2) Coverage += 0.2;
|
|
||||||
// if(W_DAY == 3) Coverage += 0.8;
|
|
||||||
// if(W_DAY == 4) Coverage += 0.1;
|
|
||||||
// if(W_DAY == 5) Coverage += 0.6;
|
|
||||||
// if(W_DAY == 6) Coverage += 0.0;
|
|
||||||
// if(W_DAY == 7) Coverage += 1.0;
|
|
||||||
// }else{
|
|
||||||
// Coverage += mix(CumulusCoverage, Rain_coverage, rainStrength);
|
|
||||||
// }
|
|
||||||
// #else
|
|
||||||
// Coverage += mix(cloudCoverage, Rain_coverage, rainStrength);
|
|
||||||
// #endif
|
|
||||||
|
|
||||||
#ifdef Daily_Weather
|
#ifdef Daily_Weather
|
||||||
Coverage += day0 * 0.3 + day1 * 0.8 + day2 * 0.2 + day3 * 0.0 + day4 * 0.8 + day5 * 0.5 + day6 * -0.5 + day7 * 0.6;
|
// Coverage += day0 * 0.3 + day1 * 0.8 + day2 * 0.2 + day3 * 0.0 + day4 * 0.8 + day5 * 0.5 + day6 * -0.5 + day7 * 0.6;
|
||||||
|
Coverage += Cumulus_Cov;
|
||||||
#else
|
#else
|
||||||
Coverage += mix(Cumulus_coverage, Rain_coverage, rainStrength);
|
Coverage += mix(Cumulus_coverage, Rain_coverage, rainStrength);
|
||||||
// Coverage = mix(Coverage, Rain_coverage, rainStrength);
|
// Coverage = mix(Coverage, Rain_coverage, rainStrength);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return Coverage;
|
return Coverage;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void DailyWeather_HighAltitude(
|
void DailyWeather_Alto(
|
||||||
inout float Coverage,
|
inout float Coverage,
|
||||||
inout float Thickness
|
inout float Density
|
||||||
){
|
){
|
||||||
|
|
||||||
#ifdef Daily_Weather
|
#ifdef Daily_Weather
|
||||||
float W_DAY = WeatherDay;
|
Coverage = Alto_Cov;
|
||||||
|
Density = Alto_Den;
|
||||||
if(W_DAY > -1) {
|
|
||||||
if(W_DAY == 0){ Coverage = 0.8; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 1){ Coverage = 0.8; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 2){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 3){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 4){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 5){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 6){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
if(W_DAY == 7){ Coverage = 0.0; Thickness = 0.5; }
|
|
||||||
}else{
|
|
||||||
Coverage = CirrusCoverage;
|
|
||||||
Thickness = CirrusThickness;
|
|
||||||
}
|
|
||||||
#else
|
#else
|
||||||
Coverage = 0.7;
|
Coverage = Alto_coverage;
|
||||||
Thickness = 0.05;
|
Density = Alto_density;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Coverage = pow(1.0-Coverage,3) * 50;
|
|
||||||
Thickness = Thickness * 10;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Daily_Weather
|
#ifdef Daily_Weather
|
||||||
@ -177,8 +146,8 @@ float day7 = clamp(clamp(Day-7, 0.0,1.0)*clamp(9-Day, 0.0,1.0),0.0,1.0);
|
|||||||
vec4 FoggyDay_C = vec4(25);
|
vec4 FoggyDay_C = vec4(25);
|
||||||
|
|
||||||
|
|
||||||
UniformDensity += FoggyDay_U*day1 + MistyDay_U*day4;
|
// UniformDensity += FoggyDay_U*day1 + MistyDay_U*day4;
|
||||||
CloudyDensity += FoggyDay_C*day1;
|
// CloudyDensity += FoggyDay_C*day1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -205,10 +205,7 @@
|
|||||||
#define Spring_Leaf_R 1.0 // the color of the plants during this season [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]
|
#define Spring_Leaf_R 1.0 // the color of the plants during this season [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]
|
||||||
#define Spring_Leaf_G 0.8 // the color of the plants during this season [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]
|
#define Spring_Leaf_G 0.8 // the color of the plants during this season [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]
|
||||||
#define Spring_Leaf_B 0.8 // the color of the plants during this season [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]
|
#define Spring_Leaf_B 0.8 // the color of the plants during this season [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]
|
||||||
#define Daily_Weather // different skies for different days, and fog.
|
|
||||||
#define WeatherDay -1 // [-1 0 1 2 3 4 5 6 7]
|
|
||||||
#define cloudCoverage 0.4 // Cloud coverage [ 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
|
|
||||||
#define Rain_coverage 0.8 // how much the coverage of the clouds change during rain [ 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 3.0 4.0 5.0]
|
|
||||||
#define Biome_specific_environment // makes the fog density and color look unique in certain biomes. (swamps, jungles, lush caves, giant pines, dark forests)
|
#define Biome_specific_environment // makes the fog density and color look unique in certain biomes. (swamps, jungles, lush caves, giant pines, dark forests)
|
||||||
const float ambientOcclusionLevel = 1.0; //[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 ]
|
const float ambientOcclusionLevel = 1.0; //[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 ]
|
||||||
const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ]
|
const float sunPathRotation = -35; //[-90 -89 -88 -87 -86 -85 -84 -83 -82 -81 -80 -79 -78 -77 -76 -75 -74 -73 -72 -71 -70 -69 -68 -67 -66 -65 -64 -63 -62 -61 -60 -59 -58 -57 -56 -55 -54 -53 -52 -51 -50 -49 -48 -47 -46 -45 -44 -43 -42 -41 -40 -39 -38 -37 -36 -35 -34 -33 -32 -31 -30 -29 -28 -27 -26 -25 -24 -23 -22 -21 -20 -19 -18 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 ]
|
||||||
@ -247,8 +244,8 @@ const float shadowDistanceRenderMul = -1.0; //[-1.0 1.0] Can help to increase sh
|
|||||||
// --- REFLECTIONS ---
|
// --- REFLECTIONS ---
|
||||||
|
|
||||||
//#define Specular_Reflections // reflections on blocks. REQUIRES A PBR RESOURCEPACK.
|
//#define Specular_Reflections // reflections on blocks. REQUIRES A PBR RESOURCEPACK.
|
||||||
#define Screen_Space_Reflections // toggle screenspace reflections. if you want normal performance but still want a bit of shiny, the sun reflection stays on when this is turned off.
|
// #define Screen_Space_Reflections // toggle screenspace reflections. if you want normal performance but still want a bit of shiny, the sun reflection stays on when this is turned off.
|
||||||
#define Sky_reflection // just in case you dont want it i guess
|
// #define Sky_reflection // just in case you dont want it i guess
|
||||||
// #define Rough_reflections // turns the roughness GGXVNDF ON. sizable performance impact, and introduces alot of noise.
|
// #define Rough_reflections // turns the roughness GGXVNDF ON. sizable performance impact, and introduces alot of noise.
|
||||||
#define Sun_specular_Strength 3 // increase for more sparkles [1 2 3 4 5 6 7 8 9 10]
|
#define Sun_specular_Strength 3 // increase for more sparkles [1 2 3 4 5 6 7 8 9 10]
|
||||||
#define reflection_quality 30 // adjust the quality of the screenspace reflections. [6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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.0 100.0 ]
|
#define reflection_quality 30 // adjust the quality of the screenspace reflections. [6.0 7.0 8.0 9.0 10.0 11.0 12.0 13.0 14.0 15.0 16.0 17.0 18.0 19.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.0 100.0 ]
|
||||||
@ -277,13 +274,17 @@ const float shadowDistanceRenderMul = -1.0; //[-1.0 1.0] Can help to increase sh
|
|||||||
#define Cumulus_coverage 0.4 // [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]
|
#define Cumulus_coverage 0.4 // [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]
|
||||||
#define Cumulus_density 0.5 // [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.00]
|
#define Cumulus_density 0.5 // [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.00]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define Altostratus // a layer of clouds WAAAY up yonder
|
#define Altostratus // a layer of clouds WAAAY up yonder
|
||||||
#define Alto_coverage 0.5 // [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]
|
#define Alto_coverage 0.5 // [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]
|
||||||
#define Alto_density 0.05 // [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.00]
|
#define Alto_density 0.05 // [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.00]
|
||||||
|
|
||||||
|
|
||||||
|
// #define Daily_Weather // different skies for different days, and fog.
|
||||||
|
|
||||||
|
#define WeatherDay -1 // [-1 0 1 2 3 4 5 6 7]
|
||||||
|
#define cloudCoverage 0.4 // Cloud coverage [ 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0]
|
||||||
|
#define Rain_coverage 0.8 // how much the coverage of the clouds change during rain [ 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2.0 3.0 4.0 5.0]
|
||||||
|
|
||||||
|
|
||||||
#define cloud_LevelOfDetail 1 // Number of fbm noise iterations for on-screen clouds (-1 is no fbm) [-1 0 1 2 3 4 5 6 7 8]
|
#define cloud_LevelOfDetail 1 // Number of fbm noise iterations for on-screen clouds (-1 is no fbm) [-1 0 1 2 3 4 5 6 7 8]
|
||||||
#define cloud_ShadowLevelOfDetail 0 // Number of fbm noise iterations for the shadowing of on-screen clouds (-1 is no fbm) [-1 0 1 2 3 4 5 6 7 8]
|
#define cloud_ShadowLevelOfDetail 0 // Number of fbm noise iterations for the shadowing of on-screen clouds (-1 is no fbm) [-1 0 1 2 3 4 5 6 7 8]
|
||||||
|
@ -46,31 +46,23 @@ float densityAtPos(in vec3 pos){
|
|||||||
|
|
||||||
float cloudCov(in vec3 pos,vec3 samplePos){
|
float cloudCov(in vec3 pos,vec3 samplePos){
|
||||||
|
|
||||||
// vec2 windshift2 = pow( max(MaxCumulusHeight - pos.y, 0.0) / 20,2) * vec2(1);
|
|
||||||
// windshift.x *= sin(frameTimeCounter);
|
|
||||||
// windshift.y *= -cos(frameTimeCounter);
|
|
||||||
|
|
||||||
float CloudLarge = texture2D(noisetex, (samplePos.xz + cloud_movement) / 5000 ).b;
|
float CloudLarge = texture2D(noisetex, (samplePos.xz + cloud_movement) / 5000 ).b;
|
||||||
|
|
||||||
|
|
||||||
vec2 windshift = pow( max(pos.y-CumulusHeight, 0.0) / 5,1.5) * vec2(1) * (CloudLarge*2-1.15);
|
|
||||||
float CloudSmall = texture2D(noisetex, (samplePos.xz - cloud_movement) / 500 ).r;
|
float CloudSmall = texture2D(noisetex, (samplePos.xz - cloud_movement) / 500 ).r;
|
||||||
|
|
||||||
float coverage = abs(pow(CloudLarge,1)*2.0 - 1.2)*0.5 - (1.0-CloudSmall) + 0.3;
|
|
||||||
|
|
||||||
float Topshape = max(pos.y - (MaxCumulusHeight + CumulusHeight)*0.46, 0.0) / 200;
|
float Topshape = max(pos.y - (MaxCumulusHeight + CumulusHeight)*0.46, 0.0) / 200;
|
||||||
|
|
||||||
Topshape += max(exp((pos.y - MaxCumulusHeight) / 10.0 ), 0.0) ;
|
Topshape += max(exp((pos.y - MaxCumulusHeight) / 10.0 ), 0.0) ;
|
||||||
|
|
||||||
float FinalShape = DailyWeather_LowAltitude(coverage) - Topshape;
|
float coverage = abs(pow(CloudLarge,1)*2.0 - 1.2)*0.5 - (1.0-CloudSmall);
|
||||||
|
|
||||||
|
float FinalShape = DailyWeather_Cumulus(coverage) - Topshape;
|
||||||
|
|
||||||
// cap the top and bottom for reasons
|
// cap the top and bottom for reasons
|
||||||
float capbase = sqrt(max(CumulusHeight*1.05 - pos.y, 0.0)/50) ;
|
float capbase = sqrt(max(CumulusHeight*1.05 - pos.y, 0.0)/50) ;
|
||||||
float captop = max(pos.y - MaxCumulusHeight, 0.0);
|
float captop = max(pos.y - MaxCumulusHeight, 0.0);
|
||||||
|
|
||||||
FinalShape = FinalShape - capbase - captop ;
|
FinalShape = max(FinalShape - capbase - captop, 0.0);
|
||||||
|
|
||||||
return max(FinalShape,0.0);
|
return FinalShape;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Erode cloud with 3d Perlin-worley noise, actual cloud value
|
//Erode cloud with 3d Perlin-worley noise, actual cloud value
|
||||||
@ -114,8 +106,12 @@ float GetAltostratusDensity(vec3 pos){
|
|||||||
float small = texture2D(noisetex, (pos.xz - cloud_movement)/10000. - vec2(-large,1-large)/5).b;
|
float small = texture2D(noisetex, (pos.xz - cloud_movement)/10000. - vec2(-large,1-large)/5).b;
|
||||||
|
|
||||||
float shape = (small + pow((1.0-large),2.0))/2.0;
|
float shape = (small + pow((1.0-large),2.0))/2.0;
|
||||||
|
|
||||||
|
float Coverage; float Density;
|
||||||
|
DailyWeather_Alto(Coverage,Density);
|
||||||
|
|
||||||
shape = pow(max(shape + Alto_coverage - 0.5,0.0),2.0);
|
shape = pow(max(shape + Coverage - 0.5,0.0),2.0);
|
||||||
|
shape *= Density;
|
||||||
|
|
||||||
return shape;
|
return shape;
|
||||||
}
|
}
|
||||||
@ -134,7 +130,8 @@ vec3 Cloud_lighting(
|
|||||||
vec3 moonContribution,
|
vec3 moonContribution,
|
||||||
float AmbientShadow,
|
float AmbientShadow,
|
||||||
int cloudType,
|
int cloudType,
|
||||||
vec3 pos
|
vec3 pos,
|
||||||
|
float altoShadow
|
||||||
){
|
){
|
||||||
float coeeff = -30;
|
float coeeff = -30;
|
||||||
// float powder = 1.0 - exp((CloudShape*CloudShape) * -800);
|
// float powder = 1.0 - exp((CloudShape*CloudShape) * -800);
|
||||||
@ -143,14 +140,20 @@ vec3 Cloud_lighting(
|
|||||||
|
|
||||||
|
|
||||||
vec3 skyLighting = SkyColors;
|
vec3 skyLighting = SkyColors;
|
||||||
|
|
||||||
#ifdef Altostratus
|
#ifdef Altostratus
|
||||||
skyLighting += sunContributionMulti * 5.0 * exp(SunShadowing * -3) * clamp(Alto_coverage * (1-Alto_density),0,1);
|
float Coverage; float Density;
|
||||||
|
DailyWeather_Alto(Coverage,Density);
|
||||||
|
skyLighting += sunContributionMulti * exp(SunShadowing * -3) * clamp(Coverage * (1-Density),0,1);
|
||||||
|
|
||||||
|
// skyLighting += (sunContributionMulti * 5.0 * exp(SunShadowing * -3)) * exp(altoShadow * -0.1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
skyLighting *= exp(SkyShadowing * AmbientShadow * coeeff/2 ) * lesspowder ;
|
skyLighting *= exp(SkyShadowing * AmbientShadow * coeeff/2 ) * lesspowder ;
|
||||||
|
|
||||||
|
|
||||||
if(cloudType == 1){
|
if(cloudType == 1){
|
||||||
coeeff = -3;
|
coeeff = -10;
|
||||||
skyLighting = SkyColors * exp(SkyShadowing * coeeff/15) * lesspowder;
|
skyLighting = SkyColors * exp(SkyShadowing * coeeff/15) * lesspowder;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -160,7 +163,7 @@ vec3 Cloud_lighting(
|
|||||||
vec3 moonLighting = exp(MoonShadowing * coeeff / 3) * moonContribution * powder;
|
vec3 moonLighting = exp(MoonShadowing * coeeff / 3) * moonContribution * powder;
|
||||||
|
|
||||||
return skyLighting + moonLighting + sunLighting ;
|
return skyLighting + moonLighting + sunLighting ;
|
||||||
// return sunLighting;
|
// return skyLighting;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Mie phase function
|
//Mie phase function
|
||||||
@ -272,12 +275,12 @@ vec4 renderClouds(
|
|||||||
#ifdef Altostratus
|
#ifdef Altostratus
|
||||||
// cast a shadow from higher clouds onto lower clouds
|
// cast a shadow from higher clouds onto lower clouds
|
||||||
vec3 HighAlt_shadowPos = progress_view + dV_Sun/abs(dV_Sun.y) * max(AltostratusHeight - progress_view.y,0.0);
|
vec3 HighAlt_shadowPos = progress_view + dV_Sun/abs(dV_Sun.y) * max(AltostratusHeight - progress_view.y,0.0);
|
||||||
float HighAlt_shadow = GetAltostratusDensity(HighAlt_shadowPos) * Alto_density ;
|
float HighAlt_shadow = GetAltostratusDensity(HighAlt_shadowPos);
|
||||||
Sunlight += HighAlt_shadow;
|
Sunlight += HighAlt_shadow;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
float ambientlightshadow = 1.0-clamp(exp((progress_view.y - (MaxCumulusHeight + CumulusHeight)*0.5) / 100.0),0.0,1.0);
|
float ambientlightshadow = 1.0-clamp(exp((progress_view.y - (MaxCumulusHeight + CumulusHeight)*0.5) / 100.0),0.0,1.0);
|
||||||
vec3 S = Cloud_lighting(muE, cumulus*Cumulus_density, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, ambientlightshadow, 0, progress_view);
|
vec3 S = Cloud_lighting(muE, cumulus*Cumulus_density, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, ambientlightshadow, 0, progress_view, HighAlt_shadow);
|
||||||
|
|
||||||
vec3 Sint = (S - S * exp(-mult*muE)) / muE;
|
vec3 Sint = (S - S * exp(-mult*muE)) / muE;
|
||||||
color += max(muE*Sint*total_extinction,0.0);
|
color += max(muE*Sint*total_extinction,0.0);
|
||||||
@ -294,7 +297,7 @@ vec4 renderClouds(
|
|||||||
if (max(AltostratusHeight-cameraPosition.y,0.0)/max(normalize(dV_view).y,0.0) / 100000.0 < AltostratusHeight) {
|
if (max(AltostratusHeight-cameraPosition.y,0.0)/max(normalize(dV_view).y,0.0) / 100000.0 < AltostratusHeight) {
|
||||||
|
|
||||||
vec3 progress_view_high = dV_view2 + cameraPosition + dV_view2/dV_view2.y * max(AltostratusHeight-cameraPosition.y,0.0);
|
vec3 progress_view_high = dV_view2 + cameraPosition + dV_view2/dV_view2.y * max(AltostratusHeight-cameraPosition.y,0.0);
|
||||||
float altostratus = GetAltostratusDensity(progress_view_high) * Alto_density;
|
float altostratus = GetAltostratusDensity(progress_view_high);
|
||||||
|
|
||||||
float Sunlight = 0.0;
|
float Sunlight = 0.0;
|
||||||
float MoonLight = 0.0;
|
float MoonLight = 0.0;
|
||||||
@ -302,10 +305,10 @@ vec4 renderClouds(
|
|||||||
if(altostratus > 1e-5){
|
if(altostratus > 1e-5){
|
||||||
for (int j = 0; j < 2; j++){
|
for (int j = 0; j < 2; j++){
|
||||||
vec3 shadowSamplePos_high = progress_view_high + dV_Sun * float(j+Dither.y);
|
vec3 shadowSamplePos_high = progress_view_high + dV_Sun * float(j+Dither.y);
|
||||||
float shadow = GetAltostratusDensity(shadowSamplePos_high) * Alto_density;
|
float shadow = GetAltostratusDensity(shadowSamplePos_high);
|
||||||
Sunlight += shadow;
|
Sunlight += shadow;
|
||||||
}
|
}
|
||||||
vec3 S = Cloud_lighting(altostratus, altostratus, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, 1, 1, progress_view_high);
|
vec3 S = Cloud_lighting(altostratus, altostratus, Sunlight, MoonLight, SkyColor, sunContribution, sunContributionMulti, moonContribution, 1, 1, progress_view_high, 0);
|
||||||
|
|
||||||
vec3 Sint = (S - S * exp(-20*altostratus)) / altostratus;
|
vec3 Sint = (S - S * exp(-20*altostratus)) / altostratus;
|
||||||
color += max(altostratus*Sint*total_extinction,0.0);
|
color += max(altostratus*Sint*total_extinction,0.0);
|
||||||
@ -339,7 +342,7 @@ float GetCloudShadow(vec3 eyePlayerPos){
|
|||||||
|
|
||||||
#ifdef Altostratus
|
#ifdef Altostratus
|
||||||
vec3 highShadowStart = playerPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - playerPos.y,0.0);
|
vec3 highShadowStart = playerPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - playerPos.y,0.0);
|
||||||
shadow += GetAltostratusDensity(highShadowStart) * Alto_density;
|
shadow += GetAltostratusDensity(highShadowStart);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
shadow = shadow/2.0; // perhaps i should average the 2 shadows being added....
|
shadow = shadow/2.0; // perhaps i should average the 2 shadows being added....
|
||||||
@ -359,7 +362,7 @@ float GetCloudShadow_VLFOG(vec3 WorldPos){
|
|||||||
|
|
||||||
#ifdef Altostratus
|
#ifdef Altostratus
|
||||||
vec3 highShadowStart = WorldPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - WorldPos.y,0.0);
|
vec3 highShadowStart = WorldPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - WorldPos.y,0.0);
|
||||||
shadow += GetAltostratusDensity(highShadowStart) * Alto_density;
|
shadow += GetAltostratusDensity(highShadowStart);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// shadow = shadow/2.0; // perhaps i should average the 2 shadows being added....
|
// shadow = shadow/2.0; // perhaps i should average the 2 shadows being added....
|
||||||
|
@ -201,40 +201,39 @@ screen = [Direct_Light] [World] [Ambient_light] [Fog] [Post_Processing] [Clouds]
|
|||||||
screen.Advanced = Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B
|
screen.Advanced = Dirt_Scatter_R Dirt_Scatter_G Dirt_Scatter_B Dirt_Absorb_R Dirt_Absorb_G Dirt_Absorb_B Water_Absorb_R Water_Absorb_G Water_Absorb_B
|
||||||
|
|
||||||
######## moonphase based weather
|
######## moonphase based weather
|
||||||
|
uniform.float.Cumulus_Cov = smooth( if( \
|
||||||
uniform.float.CumulusCoverage = smooth(1, if( \
|
moonPhase == 0, 0.9, \
|
||||||
moonPhase == 0, 0.3, \
|
moonPhase == 1, 0.0, \
|
||||||
moonPhase == 1, 0.8, \
|
moonPhase == 2, 0.0, \
|
||||||
moonPhase == 2, 0.2, \
|
|
||||||
moonPhase == 3, 0.0, \
|
|
||||||
moonPhase == 4, 0.8, \
|
|
||||||
moonPhase == 5, 0.5, \
|
|
||||||
moonPhase == 6, -0.5, \
|
|
||||||
0.6 ), 60, 60)
|
|
||||||
|
|
||||||
uniform.float.CirrusCoverage = smooth(2, if( \
|
|
||||||
moonPhase == 0, 0.5, \
|
|
||||||
moonPhase == 1, 0.65, \
|
|
||||||
moonPhase == 2, 0.6, \
|
|
||||||
moonPhase == 3, 0.0, \
|
|
||||||
moonPhase == 4, 0.5, \
|
|
||||||
moonPhase == 5, 0.5, \
|
|
||||||
moonPhase == 6, 0.6, \
|
|
||||||
0.5 ), 60, 60)
|
|
||||||
|
|
||||||
uniform.float.CirrusThickness = smooth(3, if( \
|
|
||||||
moonPhase == 0, 0.05, \
|
|
||||||
moonPhase == 1, 0.2, \
|
|
||||||
moonPhase == 2, 0.2, \
|
|
||||||
moonPhase == 3, 0.0, \
|
moonPhase == 3, 0.0, \
|
||||||
moonPhase == 4, 0.0, \
|
moonPhase == 4, 0.0, \
|
||||||
moonPhase == 5, 0.05, \
|
moonPhase == 5, 0.0, \
|
||||||
moonPhase == 6, 0.2, \
|
moonPhase == 6, 0.0, \
|
||||||
0.1 ), 60, 60)
|
0.0 ), 5, 5)
|
||||||
|
|
||||||
|
uniform.float.Alto_Cov = smooth( if( \
|
||||||
|
moonPhase == 0, 1.0, \
|
||||||
|
moonPhase == 1, 0.0, \
|
||||||
|
moonPhase == 2, 0.0, \
|
||||||
|
moonPhase == 3, 0.0, \
|
||||||
|
moonPhase == 4, 0.0, \
|
||||||
|
moonPhase == 5, 0.0, \
|
||||||
|
moonPhase == 6, 0.0, \
|
||||||
|
0.0 ), 5, 5)
|
||||||
|
|
||||||
|
uniform.float.Alto_Den = smooth( if( \
|
||||||
|
moonPhase == 0, 0.1, \
|
||||||
|
moonPhase == 1, 0.0, \
|
||||||
|
moonPhase == 2, 0.0, \
|
||||||
|
moonPhase == 3, 0.0, \
|
||||||
|
moonPhase == 4, 0.0, \
|
||||||
|
moonPhase == 5, 0.0, \
|
||||||
|
moonPhase == 6, 0.0, \
|
||||||
|
0.0 ), 5, 5)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uniform.float.Day = smooth(4, if( \
|
uniform.float.Day = smooth( if( \
|
||||||
moonPhase == 0, 1, \
|
moonPhase == 0, 1, \
|
||||||
moonPhase == 1, 2, \
|
moonPhase == 1, 2, \
|
||||||
moonPhase == 2, 3, \
|
moonPhase == 2, 3, \
|
||||||
|
Loading…
Reference in New Issue
Block a user