3 ms·
So, specifically, he is ray-marching a signed-distance field. Which has some interesting properties. One of the major down-sides is it's often more difficult t
by Arelius 7y ago
So, specifically, he is ray-marching a signed-distance field. Which has some interesting properties.
One of the major down-sides is it's often more difficult to create the boundary surface, fewer editors and the like. More common methods are polygons, subdivision surfaces, and nurbs.
So, one common technique as you mentioned is ray-tracing, the key difference is ray-marching samples the world at intervals (often regularly spaced, but in SDFs you can search for the boundary since given any location, you know the distance to the closest surface) where ray-tracing you intersect each primitive directly, and normally build up data structures (BVH, for example) to minimize the amount of individual tests you need to do.
Another common technique, used almost exclusively in every real-time case (games, CAD tools, etc) Is rasterization, where you project the triangles into screenspace and intersect them with the pixels, the main difference being that your outer loop is now "for each triangle" rather than "for each pixel"
The differences might seem pretty subtle, and in a sense they are. But they have pretty enormous ramifications on the design of a renderer, how they handle content and their performance characteristics.