Clipping Solids (SDF functions)

Yes, the box is defined in the shader:

// http://www.iquilezles.org/www/articles/distfunctions/distfunctions.htm
float udBox( vec3 p, vec3 b )
{
  return length(max(abs(p)-b,0.0));
}

Unfortunately, I have no idea of how to do that stuff with arbitrary geometries.

The only way I can imagine is that you can model complex solids by combining the primitives described with the distance functions. But the more complex the model, the more complex shaders you get :thinking:

Just have a look at the source code of the raymarching shader, there you can find all the functions for primitives:

Very cool idea! :+1:

1 Like