More noise options?

This commit is contained in:
numzero 2024-12-23 22:51:49 +03:00
parent f051b812f5
commit e45f41f2e9

View File

@ -24,12 +24,14 @@ fn on_vertex(in: Vertex) -> Varying {
@fragment
fn on_fragment(in: Varying) -> @location(0) vec4f {
let point = in.world;
// let point = 10. * normalize(in.world - vec3f(0., 0., -10.));
var result = 0.0;
var hscale = 1.0;
var vscale = 1.0;
var seed = params.seed;
for (var layer = 0u; layer < params.layers; layer++) {
result += vscale * noise(seed, hscale * in.world);
result += vscale * noise(seed, hscale * point);
hscale *= params.scale;
vscale *= params.roughness;
seed = hash(seed);
@ -37,6 +39,21 @@ fn on_fragment(in: Varying) -> @location(0) vec4f {
return vec4(0.5 + 0.25 * result);
}
// @fragment
// fn on_fragment(in: Varying) -> @location(0) vec4f {
// let point = in.world;
// var result = 1.0;
// var hscale = 1.0;
// var seed = params.seed;
// for (var layer = 0u; layer < params.layers; layer++) {
// result *= pow(4.0 * abs(noise(seed, hscale * point)), 0.2);
// result *= pow(clamp(1. + noise(seed, hscale * point), 0., 1.), 3.0);
// hscale *= params.scale;
// seed = hash(seed);
// }
// return vec4(result);
// }
fn noise(seed: u32, coords: vec3f) -> f32 {
let s = split(coords);
var ret = 0.0;