3.8 KB

codecov Codacy Badge Coverage Status CMake


A Quick and dirty raytracer.

This raytracer is made following the book «The Ray Tracer Challenge» by Jamis Buck.

It is writen in C++ with no STL and use LodePNG to output PNG file and use them as texture, also use NanoJPEG to use jpeg file as texture, and can use use Lua 5.3 for 3D pattern definition and more to come on the Lua side later..

Examples outputs

From chapter 05 - Sphere intersections:

Chapter 5 rendering test

From Chapter 06 - Phong shading:

Chapter 6 rendering test

From Chapter 07 - World / Camera / Scenes:

Chapter 7 rendering test

From Chapter 08 - Shadows:

Chapter 8 rendering test

From Chapter 09 - Planes:

Chapter 9 rendering test

From Chapter 10 - Patterns:

Chapter 10 rendering test

From Chapter 11 - Reflections, Transparency & Refractions:

Chapter 11 reflections rendering test

Bonus: Zooming on a reflective ball:

Chapter 11 zooming on a ball

Zooming on a reflection on that ball:

Chapter 11 zooming on a reflection

Chapter 11 refraction rendering test

Chapter 11 rendering test

From Chapter 12 - Cubes:

Chapter 12 rendering test

From Chapter 13 - Cylinders:

Chapter 13 rendering test


Chapter 13 cone test

From Chapter 14 - Groups & Bounding boxes:

Chapter 14 rendering test

From Chapter 15 - Triangles, Wavefrom OBJ files - Smooth trianges:

Chapter 15 Triangles and teapots

From Chapter 16 - Constructive Solid Geomety:

Chapter 16 CSG

Bonus (from the forum):

Merry Christmas Merry Christmas (about 1min render time using OpenMP on a 2.6Ghz Core i7 3720QM)

Bonus chapter - Soft shadow / Area light

Without jitter:

Area light without jitter

With jitter:

Area light witht jitter

Bonus chapter - Texture mapping

Spherical mapping:

Spherical mapping

Planar mapping:

Planar mapping

Cylindrical mapping:

Cylindrical mapping

Aligncheck plane:

Aligncheck plane

Cubical mapping:

Cubical mapping

Image mapping:

Image mapping



Large OBJ file: