Parameters
| Name | Type | Description |
|---|---|---|
| p | vec3<f32> | Input 3D coordinate. |
Returns
Dependencies
WGSL Code
//! requires perm4 fn 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); }