Parameters
Name | Type | Description |
---|---|---|
p | vec3<f32> | Input 3D coordinate. |
Returns
Dependencies
WGSL Code
//! requires perm4fn noise3(p: vec3f) -> f32 {let a = floor(p);var d: vec3f = p - a;d = d * d * (3. - 2. * d);let b = a.xxyy + vec4f(0., 1., 0., 1.);let k1 = perm4(b.xyxy);let k2 = perm4(k1.xyxy + b.zzww);let c = k2 + a.zzzz;let k3 = perm4(c);let k4 = perm4(c + 1.);let o1 = fract(k3 * (1. / 41.));let o2 = fract(k4 * (1. / 41.));let o3 = o2 * d.z + o1 * (1. - d.z);let o4 = o3.yw * d.x + o3.xz * (1. - d.x);return o4.y * d.y + o4.x * (1. - d.y);}