Ray Tracer in C++

Analytic ray–primitive intersection and a full shading pipeline, on OpenGL

A ray tracer built from first principles in C++, rendered to an OpenGL display.

It implements analytic ray–primitive intersection for five primitives — spheres, cylinders, cuboids, ellipsoids and cones — and the full pipeline on top: camera ray generation, lighting, shading and shadows.