17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-10-18 05:39:19 +02:00

Leave the finest octaves out of the cloud coverage noise so the sides of the clouds get no upright grooves

This commit is contained in:
2026-10-17 18:41:15 +02:00
parent dd89aa5396
commit e1900a9cd3

View File

@@ -82,6 +82,10 @@ float worley_fbm(vec3 position, int frequency, uint seed)
+ worley(position * float(frequency * 4), frequency * 4, seed + 2U) * 0.125;
}
// octaves of the coverage noise: it only places the clouds and gives their outline. it is the same at every height, so its finer
// octaves would stand as upright grooves down the sides of the clouds; their small shapes come from the 3d noises
const int COVERAGE_OCTAVES = 4;
// the worley fbm keeps about to this range (5th and 95th percentile 0.35 and 0.61)
const float WORLEY_FBM_LOW = 0.30;
const float WORLEY_FBM_HIGH = 0.65;
@@ -105,7 +109,7 @@ void main()
if (kind == 2)
{
vec3 position = vec3((vec2(texel.xy) + 0.5) / float(size), 0.0);
float first = perlin_fbm(position, 4, 6, 11U);
float first = perlin_fbm(position, 4, COVERAGE_OCTAVES, 11U);
float second = perlin_fbm(position + vec3(0.0, 0.0, 0.5), 8, 5, 23U);
imageStore(noise_plane, texel.xy, vec4(even(first, 0.22), even(second, 0.22), 0.0, 1.0));
return;