More noise options?
This commit is contained in:
parent
f051b812f5
commit
e45f41f2e9
|
|
@ -24,12 +24,14 @@ fn on_vertex(in: Vertex) -> Varying {
|
||||||
|
|
||||||
@fragment
|
@fragment
|
||||||
fn on_fragment(in: Varying) -> @location(0) vec4f {
|
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 result = 0.0;
|
||||||
var hscale = 1.0;
|
var hscale = 1.0;
|
||||||
var vscale = 1.0;
|
var vscale = 1.0;
|
||||||
var seed = params.seed;
|
var seed = params.seed;
|
||||||
for (var layer = 0u; layer < params.layers; layer++) {
|
for (var layer = 0u; layer < params.layers; layer++) {
|
||||||
result += vscale * noise(seed, hscale * in.world);
|
result += vscale * noise(seed, hscale * point);
|
||||||
hscale *= params.scale;
|
hscale *= params.scale;
|
||||||
vscale *= params.roughness;
|
vscale *= params.roughness;
|
||||||
seed = hash(seed);
|
seed = hash(seed);
|
||||||
|
|
@ -37,6 +39,21 @@ fn on_fragment(in: Varying) -> @location(0) vec4f {
|
||||||
return vec4(0.5 + 0.25 * result);
|
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 {
|
fn noise(seed: u32, coords: vec3f) -> f32 {
|
||||||
let s = split(coords);
|
let s = split(coords);
|
||||||
var ret = 0.0;
|
var ret = 0.0;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user