i c the light
A distance-estimating ray marcher
From Syntopia:
Classic raytracing shoots one (or more) rays per pixel and calculates where the rays intersect the geometry in the scene. Normally the geometry is described by a set of primitives, like triangles or spheres, and some kind of spatial acceleration structure is used to quickly identify which primitives intersect the rays.
Distance Estimation, on the other hand, is a ray marching technique.
Instead of calculating the exact intersection between the camera ray and the geometry, you proceed in small steps along the ray and check how close you are to the object you are rendering. When you are closer than a certain threshold, you stop. In order to do this, you must have a function that tells you how close you are to the object: a Distance Estimator. The value of the distance estimator tells you how large a step you are allowed to march along the ray, since you are guaranteed not to hit anything within this radius.
- My paper on the ray marcher I wrote
- Reference links / research sources
- Github repo
- Gallery of image output
further reading
- i c the light reference links: resources and publications that i used writing i c the light, a distance-estimating ray marching renderer