glsl-combine-smooth

Smoothly combine two signed distance fields. A useful alternative
to glsl-smooth-min
that provides you with an explicit radius of influence and avoids
distorting the distance fields.
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, smoothly merge them together
within the supplied radius.
uniform float iGlobalTime;
#pragma glslify: combine = require('glsl-combine-smooth')
#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.