Search across packages, versions, files, declarations, and comments. Use multiple terms to narrow results (AND), and add @vertex, @fragment, or @compute to filter by shader stage.
1// MIT License. © Inigo Quilez, Munrocket
2// noise2() is any noise here: Value, Perlin, Simplex, Worley
3//
4#define_import_path bevy_water::noise::fbm
6#import bevy_water::noise::vnoise::vnoise2d
8fn fbm(v2: vec2<f32>) -> f32 {
9 let m2 = mat2x2<f32>(vec2<f32>(0.8, 0.6), vec2<f32>(-0.6, 0.8));
10 var p = v2;
11 var f = 0.5000 * vnoise2d(p); p = m2 * p * 2.02;
12 f = f + 0.2500 * vnoise2d(p); p = m2 * p * 2.03;
13 f = f + 0.1250 * vnoise2d(p); p = m2 * p * 2.01;
14 f = f + 0.0625 * vnoise2d(p);
15 return f / 0.9375;
18fn fbm_half(v2: vec2<f32>) -> f32 {
19 let m2 = mat2x2<f32>(vec2<f32>(0.8, 0.6), vec2<f32>(-0.6, 0.8));
20 var p = v2;
21 var f = 0.5000 * vnoise2d(p); p = m2 * p * 2.02;
22 f = f + 0.2500 * vnoise2d(p);
23 return f / 0.9375;
Contents