A lot of ShaderToy demos share the Ray Marching algorithm to render the scene, but they are often written with a very compact style and i can't find any straightforward examples or explanation.
So what is Ray Marching? Some comments suggests that it is a variation of Sphere Tracing. What are the computational advantages of a such approach?
How do you write a raymarching shader?

Ray marching is a ray tracing variant that approximate intersection points using iterative steps instead of a lookup table. This method is computationally cheaper than exact ray tracing because it doesn't store pre-computed collision results for every object as ray tracing does. Each ray is marched iteratively towards the intersection point, and the process stops when the ray intersects a geometry or reaches a maximum iterations limit.
Regards,
Luca
--------------------------------------------
Ray marching is a type of ray tracing technique that calculates intersections with geometric objects by iteratively stepping forward along a ray until an object is hit, or a maximum limit is reached. This allows for real-time rendering of complex scenes because the computations can be simplified and parallelized effectively.
Compared to traditional ray tracing methods that use bounded tree structures such as kd-trees or BVHs to