Cirrus cloud tweaks and lightning boost

This commit is contained in:
Merlin1809 committed 2025-05-04 14:33:38 +02:00
1 parent 408881cdb2
commit 7f4faf5acb
4 files changed
+11 -23

No files matched your search

+1 -1
View File
@@ -470,7 +470,7 @@ if (gl_FragCoord.x * texelSize.x < 1.0 && gl_FragCoord.y * texelSize.y < 1.0 )
#endif
#if defined LIGHTNING
Albedo = vec3(1.0,1.5,4.0);
Albedo = vec3(8.0,15.0,40.0);
#endif
#ifdef ENTITIES
+1 -1
View File
@@ -379,7 +379,7 @@ uniform int moonPhase;
#define CloudLayer2_scale 1.0 // [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 CloudLayer3
#define CloudLayer3_coverage 0.3 // [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 CloudLayer3_coverage 0.1 // [0.0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3]
#define CloudLayer3_density 0.1 // [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 CloudLayer3_height 5000.0 // [-300.0 -290.0 -280.0 -270.0 -260.0 -250.0 -240.0 -230.0 -220.0 -210.0 -200.0 -190.0 -180.0 -170.0 -160.0 -150.0 -140.0 -130.0 -120.0 -110.0 -100.0 -90.0 -80.0 -70.0 -60.0 -50.0 -40.0 -30.0 -20.0 -10.0 0.0 10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0 110.0 120.0 130.0 140.0 150.0 160.0 170.0 180.0 190.0 200.0 210.0 220.0 230.0 240.0 250.0 260.0 270.0 280.0 290.0 300.0 310.0 320.0 330.0 340.0 350.0 360.0 370.0 380.0 390.0 400.0 410.0 420.0 430.0 440.0 450.0 460.0 470.0 480.0 490.0 500.0 510.0 520.0 530.0 540.0 550.0 560.0 570.0 580.0 590.0 600.0 700.0 800.0 900.0 1000.0 1250.0 1500.0 1750.0 2000.0 2250.0 2500.0 2750.0 3000.0 4000.0 5000.0]
#define CloudLayer3_scale 1.0 // [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]
+8 -20
View File
@@ -11,7 +11,7 @@ float cloud_movement = (worldTime + mod(worldDay,100)*24000.0) / 24.0 * Cloud_S
float lightningTimer = floor(frameTimeCounter * 10.0);
float randomSeed = fract(sin(dot(vec2(lightningTimer), vec2(12.9898,78.233))) * 43758.5453);
float lightningFlash = mix(0.5, 2.5, randomSeed);
float lightningFlash = 4.0 * randomSeed;
float getRainDensity(float currentDensity) {
float extraDensity = currentDensity;
@@ -96,21 +96,16 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
vec2 curl = curl2D(0.00002 * coord) * 0.5
+ curl2D(0.00005 * coord) * 0.25
+ curl2D(0.00010 * coord) * 0.125;
largeCloud = texture2D(noisetex, (position.xz + cloud_movement*2)/80000. * CloudLayer3_scale).b;
float smallCloud = texture(noisetex, (0.000005 / CloudLayer3_scale) * (coord)).r;
vec2 detail_coord = coord;
smallCloud = texture(noisetex, (0.000005 / CloudLayer3_scale) * coord).r;
float detail_amplitude = 0.3;
float detail_frequency = 0.00002;
float curl_strength = 1.3;
for (int i = 0; i < 3; ++i) {
float detail = texture(noisetex, detail_coord * detail_frequency + curl * curl_strength).r;
float detail = texture(noisetex, coord * detail_frequency + curl * curl_strength).r;
smallCloud -= detail * detail_amplitude;
@@ -131,7 +126,7 @@ float getCloudShape(int LayerIndex, int LOD, in vec3 position, float minHeight,
coverage = parameters.altostratus.x;
largeCloud = texture2D(noisetex, (position.xz + cloud_movement)/100000. * CloudLayer2_scale).b;
smallCloud = 1.0 - texture2D(noisetex, ((position.xz - cloud_movement)/7500.) * CloudLayer2_scale).b;
smallCloud = 1.0 - texture2D(noisetex, ((position.xz - cloud_movement)/7500. - vec2(1.0-largeCloud, -largeCloud)/7.0) * CloudLayer2_scale).b;
smallCloud = largeCloud + smallCloud * 0.4 * clamp(0.9-largeCloud,0.0,1.0);
@@ -490,9 +485,9 @@ vec4 raymarchCloud(
lighting = lighting * distancefog + atmosphereHaze;
float horizontalDist = length((rayPosition.xz - cameraPosition.xz) - lightningBoltPosition.xz);
if (horizontalDist < 2500.0 && lightningBoltPosition.xyz != vec3(0.0)) {
float lightningIntensity = exp(-horizontalDist * 0.04) * density * smoothstep(0.0, 0.02, fract(frameTimeCounter)) * lightningFlash;
lighting = mix(lighting, vec3(15.0,15.0,25.0), lightningIntensity);
if (horizontalDist < 5500.0 && lightningBoltPosition.xyz != vec3(0.0)) {
float lightningIntensity = exp(-horizontalDist * 0.012) * density * smoothstep(0.0, 0.02, fract(frameTimeCounter)) * lightningFlash;
lighting = mix(lighting, vec3(10.0,10.0,20.0), lightningIntensity);
}
float densityCoeff = exp(-distanceFactor*shapeWithDensityFaded);
@@ -507,8 +502,6 @@ vec4 raymarchCloud(
rayPosition += rayDirection;
}
return vec4(color, totalAbsorbance);
}
@@ -740,11 +733,6 @@ vec4 GetVolumetricClouds(
cloudPlaneDistance = cloudLayer0_Distance.x;
#endif
#if defined CloudLayer0 && defined CloudLayer1 && !defined CloudLayer2 && defined CloudLayer3
cloudPlaneDistance = mix(cloudLayer3_Distance.x, cloudLayer1_Distance.x, cloudLayer3_Distance.y);
cloudPlaneDistance = mix(cloudLayer0_Distance.x, cloudPlaneDistance, cloudLayer0_Distance.y);
#endif
#ifdef CloudLayer3
cloudColor = cirrusClouds;
#endif
+1 -1
View File
@@ -270,7 +270,7 @@ SHADER_VERSION_LABEL <empty> \
CloudLayer0_scale CloudLayer1_scale
screen.HighAltitudeClouds.columns = 2
screen.HighAltitudeClouds = CloudLayer2 CloudLayer3 \
screen.HighAltitudeClouds = CloudLayer2 CloudLayer3 \
CloudLayer2_coverage CloudLayer3_coverage \
CloudLayer2_density CloudLayer3_density \
CloudLayer2_height CloudLayer3_height \