glsl-combine-chamfer

Combine two signed distance fields with a
chamfer-like join.
view demo
This technique was derived from a
great talk at
NVScene by
Johann Korndörfer.
Usage

float combine(float d1, float d2, float radius)
Given two distances d1 and d2, merge them together
within the supplied radius.
uniform float iGlobalTime;
#pragma glslify: combine = require('glsl-combine-chamfer')
#pragma glslify: box = require('glsl-sdf-box')
vec2 doModel(vec3 p) {
vec3 off = sin(0, iGlobalTime, 0);
float dist1 = box(p, vec3(2.0));
float dist2 = box(p + off, vec3(1.0));
float radius = 0.5;
float dist = combine(dist1, dist2, radius);
return vec2(dist, 1.0);
}
Contributing
See stackgl/contributing for details.
License
MIT. See LICENSE.md for details.