There are a number of terms for rendering techniques based on the particle model of light: forward ray-tracing, reverse ray-tracing, ray-casting, ray-marching, and possibly others. What's the difference between them?


closed as too broad by Nathan Reed, Nero, Martin Ender, joojaa, ratchet freak Aug 26 '15 at 10:41

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • $\begingroup$ Some others: photon mapping, sphere tracing, cone tracing $\endgroup$ – Alan Wolfe Aug 12 '15 at 20:11
  • 4
    $\begingroup$ I vote to close this question, because it is too broad. There are simply too many variants, especially when including possibly others like the ones Alan Wolfe named in his comment. More specific/narrow questions that compare a few techniques e.g. to achieve a specific goal could very well be suited for this format. $\endgroup$ – Nero Aug 25 '15 at 20:29
  • 1
    $\begingroup$ I would split this question to a few more questions.. We already have a pretty good answer for ray-marching. $\endgroup$ – joojaa Aug 26 '15 at 10:27

Forward ray-tracing means that rays starts from the light source and are traced towards the eye (light-surface-eye), this is a highly inefficient but accurate method. Reverse raytracing is simply starting in the eye and then trace them towards the light source. These are two classes of ray tracers.

Ray casting is the use of ray-surface intersection tests to solve a variety of problems in computer graphics and computational geometry. The distinction is that ray casting is a rendering algorithm that never recursively traces secondary rays, whereas other ray tracing-based rendering algorithms may do so.

Ray-marching is an implementation of a ray tracer, often used to visualize volumes. Normally ray casting uses a formulae to determine the point of intersection with the surface. In ray marching such a function is not required, instead the intersection is evaluated at several points along the ray. Either these points have a fixed distance between them or every iteration the distance to the next point is based on the distance to the closest surface.

The difference between those are that ray-tracing is a concept to solve the rendering equation, in the end resulting in a certain color for each pixel. Forward and reverse ray-tracing are classes of ray-tracers, ray-casting is a simple algorithm to do ray-tracing and ray-marching is another algorithm to do ray-tracing. As by the comment many other algorithms have been developed to solve the problem with different advantages and disadvantages.


Not the answer you're looking for? Browse other questions tagged or ask your own question.