A raytracing prototype made with OpenGL.

1. Quick start

make editor && ./build/editor

Press E to export the scene to scene.h. Then:

make && ./build/main

2. Sources

3. Resources

Ray casting is used to resolve visibility/intersections for rendering, lighting, selection, collisions, etc. It can be analytical if the shape is simple enough (like in the case of a triangle or a sphere), or based on a root solver if the shape is more complex (like it is in ray marching). Ray casting is usually accelerated by bounding volumes that can be easily ray casted analytically. Besides rays, you can also cast cones or spheres.

Ray tracing is a light transport algorithm, like path tracing, radiosity or photon mapping. Ray tracing uses ray casting, which in turn can be analytical, or ray marched, or both.