From 3b8cc5a19acf1d3c8068ffefcb424094a1ea9178 Mon Sep 17 00:00:00 2001 From: Xonk Date: Tue, 9 May 2023 19:08:34 -0400 Subject: [PATCH] refraction TEST TESSSSSSSSSSSSSSSSSSSSST --- shaders/composite3.fsh | 4 +- shaders/lib/climate_settings.glsl | 65 ++++++++----------------------- shaders/lib/settings.glsl | 17 ++++---- shaders/lib/volumetricClouds.glsl | 53 +++++++++++++------------ shaders/shaders.properties | 57 +++++++++++++-------------- 5 files changed, 84 insertions(+), 112 deletions(-) diff --git a/shaders/composite3.fsh b/shaders/composite3.fsh index 5a7af71..8801abe 100644 --- a/shaders/composite3.fsh +++ b/shaders/composite3.fsh @@ -218,8 +218,8 @@ void main() { /// --- REFRACTION --- /// #ifdef Refraction - // refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE; - refractedCoord += tangentNormals * 0.1 * RENDER_SCALE; + refractedCoord += (tangentNormals * clamp((ld(z2) - ld(z)) * 0.5,0.0,0.15)) * RENDER_SCALE; + // refractedCoord += tangentNormals * 0.1 * RENDER_SCALE; float refractedalpha = decodeVec2(texture2D(colortex11,refractedCoord).b).g; float refractedalpha2 = texture2D(colortex7,refractedCoord).a; diff --git a/shaders/lib/climate_settings.glsl b/shaders/lib/climate_settings.glsl index 7045ed4..ea4553c 100644 --- a/shaders/lib/climate_settings.glsl +++ b/shaders/lib/climate_settings.glsl @@ -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 - uniform float CumulusCoverage; + uniform float Cumulus_Cov; + + uniform float Alto_Cov; + uniform float Alto_Den; + uniform float CirrusCoverage; uniform float CirrusThickness; - float DailyWeather_LowAltitude( + float DailyWeather_Cumulus( 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 - 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 Coverage += mix(Cumulus_coverage, Rain_coverage, rainStrength); // Coverage = mix(Coverage, Rain_coverage, rainStrength); #endif return Coverage; - - } - void DailyWeather_HighAltitude( + void DailyWeather_Alto( inout float Coverage, - inout float Thickness + inout float Density ){ #ifdef Daily_Weather - float W_DAY = WeatherDay; - - 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; - } + Coverage = Alto_Cov; + Density = Alto_Den; #else - Coverage = 0.7; - Thickness = 0.05; + Coverage = Alto_coverage; + Density = Alto_density; #endif - - Coverage = pow(1.0-Coverage,3) * 50; - Thickness = Thickness * 10; } + #endif #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); - UniformDensity += FoggyDay_U*day1 + MistyDay_U*day4; - CloudyDensity += FoggyDay_C*day1; + // UniformDensity += FoggyDay_U*day1 + MistyDay_U*day4; + // CloudyDensity += FoggyDay_C*day1; } #endif diff --git a/shaders/lib/settings.glsl b/shaders/lib/settings.glsl index 5ee3ed9..f2d3a6d 100644 --- a/shaders/lib/settings.glsl +++ b/shaders/lib/settings.glsl @@ -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_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 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) 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 ] @@ -247,8 +244,8 @@ const float shadowDistanceRenderMul = -1.0; //[-1.0 1.0] Can help to increase sh // --- REFLECTIONS --- //#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 Sky_reflection // just in case you dont want it i guess +// #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 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 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_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 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 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_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] diff --git a/shaders/lib/volumetricClouds.glsl b/shaders/lib/volumetricClouds.glsl index b3cfa3c..ac93de8 100644 --- a/shaders/lib/volumetricClouds.glsl +++ b/shaders/lib/volumetricClouds.glsl @@ -46,31 +46,23 @@ float densityAtPos(in vec3 pos){ 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; - - - 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 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; - 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 float capbase = sqrt(max(CumulusHeight*1.05 - pos.y, 0.0)/50) ; 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 @@ -114,8 +106,12 @@ float GetAltostratusDensity(vec3 pos){ 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 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; } @@ -134,7 +130,8 @@ vec3 Cloud_lighting( vec3 moonContribution, float AmbientShadow, int cloudType, - vec3 pos + vec3 pos, + float altoShadow ){ float coeeff = -30; // float powder = 1.0 - exp((CloudShape*CloudShape) * -800); @@ -143,14 +140,20 @@ vec3 Cloud_lighting( vec3 skyLighting = SkyColors; + #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 + skyLighting *= exp(SkyShadowing * AmbientShadow * coeeff/2 ) * lesspowder ; if(cloudType == 1){ - coeeff = -3; + coeeff = -10; skyLighting = SkyColors * exp(SkyShadowing * coeeff/15) * lesspowder; } @@ -160,7 +163,7 @@ vec3 Cloud_lighting( vec3 moonLighting = exp(MoonShadowing * coeeff / 3) * moonContribution * powder; return skyLighting + moonLighting + sunLighting ; - // return sunLighting; + // return skyLighting; } //Mie phase function @@ -272,12 +275,12 @@ vec4 renderClouds( #ifdef Altostratus // 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); - float HighAlt_shadow = GetAltostratusDensity(HighAlt_shadowPos) * Alto_density ; + float HighAlt_shadow = GetAltostratusDensity(HighAlt_shadowPos); Sunlight += HighAlt_shadow; #endif 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; 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) { 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 MoonLight = 0.0; @@ -302,10 +305,10 @@ vec4 renderClouds( if(altostratus > 1e-5){ for (int j = 0; j < 2; j++){ 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; } - 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; color += max(altostratus*Sint*total_extinction,0.0); @@ -339,7 +342,7 @@ float GetCloudShadow(vec3 eyePlayerPos){ #ifdef Altostratus vec3 highShadowStart = playerPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - playerPos.y,0.0); - shadow += GetAltostratusDensity(highShadowStart) * Alto_density; + shadow += GetAltostratusDensity(highShadowStart); #endif shadow = shadow/2.0; // perhaps i should average the 2 shadows being added.... @@ -359,7 +362,7 @@ float GetCloudShadow_VLFOG(vec3 WorldPos){ #ifdef Altostratus vec3 highShadowStart = WorldPos + WsunVec/abs(WsunVec.y) * max(AltostratusHeight - WorldPos.y,0.0); - shadow += GetAltostratusDensity(highShadowStart) * Alto_density; + shadow += GetAltostratusDensity(highShadowStart); #endif // shadow = shadow/2.0; // perhaps i should average the 2 shadows being added.... diff --git a/shaders/shaders.properties b/shaders/shaders.properties index 32fada2..5d62592 100644 --- a/shaders/shaders.properties +++ b/shaders/shaders.properties @@ -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 ######## moonphase based weather - -uniform.float.CumulusCoverage = smooth(1, if( \ - moonPhase == 0, 0.3, \ - moonPhase == 1, 0.8, \ - 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, \ +uniform.float.Cumulus_Cov = smooth( if( \ + moonPhase == 0, 0.9, \ + moonPhase == 1, 0.0, \ + moonPhase == 2, 0.0, \ moonPhase == 3, 0.0, \ moonPhase == 4, 0.0, \ - moonPhase == 5, 0.05, \ - moonPhase == 6, 0.2, \ - 0.1 ), 60, 60) + moonPhase == 5, 0.0, \ + moonPhase == 6, 0.0, \ + 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 == 1, 2, \ moonPhase == 2, 3, \