Merging
Forged Thoughts supports merging SDF primitives with the use of the smin() and smax() functions.
smin
The smin() function in Forged Thoughts is based on the cubic polynomial smin function described by Inigo Quilez here.
Given we have two shapes:
let sphere = Sphere();
sphere.material.rgb = F3(0.2, 0.4, 0.6);
sphere.material.roughness = 1.0;
sphere.material.subsurface = 1.0;
let cone = Cone();
cone.material = sphere.material;
We can merge them with smin()
into a new shape.
let result = smin(sphere, cone, 0.5);
where 0.5 is the weight between the two shapes.