Parameters
Name | Type | Description |
---|---|---|
position | vec3<f32> | 3D position to evaluate. |
dimensions | vec3<f32> | Dimensions of the rhombus. |
sharpness | f32 | Sharpness factor for the edges. |
Returns
WGSL Code
fn sdfRhombus(position: vec3<f32>, dimensions: vec3<f32>, sharpness: f32) -> f32 {var p = abs(position);let b = dimensions;let e = sharpness;// Calculate distance to rhombusp = p - b;let q = abs(p.x + p.y + p.z) + e;let h = max(vec3<f32>(q) - vec3<f32>(e), vec3<f32>(0.0));return min(max(p.x, max(p.y, p.z)), 0.0) + length(h);}