![Build Status](https://travis-ci.org/Godzil/DoRayMe.svg?branch=master)
DoRayMe
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](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch5_test.png)
From Chapter 06 - Phong shading:
![Chapter 6 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch6_test.png)
From Chapter 07 - World / Camera / Scenes:
![Chapter 7 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch7_test.png)
From Chapter 08 - Shadows:
![Chapter 8 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch8_test.png)
From Chapter 09 - Planes:
![Chapter 9 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch9_test.png)
From Chapter 10 - Patterns:
![Chapter 10 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch10_test.png)
From Chapter 11 - Reflections, Transparency & Refractions:
![Chapter 11 reflections rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch11_reflection.png)
Bonus: Zooming on a reflective ball:
![Chapter 11 zooming on a ball](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch11_zooming_on_reflective_ball.png)
Zooming on a reflection on that ball:
![Chapter 11 zooming on a reflection](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch11_reflection_on_ball.png)
![Chapter 11 refraction rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch11_refraction.png)
![Chapter 11 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch11_test.png)
From Chapter 12 - Cubes:
![Chapter 12 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch12_test.png)
From Chapter 13 - Cylinders:
![Chapter 13 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch13_test.png)
Bonus:
![Chapter 13 cone test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch13_cone.png)
From Chapter 14 - Groups & Bounding boxes:
![Chapter 14 rendering test](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch14_test.png)
From Chapter 15 - Triangles, Wavefrom OBJ files - Smooth trianges:
![Chapter 15 Triangles and teapots](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch15_teapot_objfile.png)
From Chapter 16 - Constructive Solid Geomety:
![Chapter 16 CSG](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/ch16_test.png)
Bonus (from the forum):
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](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/arealight_test_nojitter.png)
With jitter:
![Area light witht jitter](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/arealight_test.png)
Bonus chapter - Texture mapping
Spherical mapping:
![Spherical mapping](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_checkeredsphere.png)
######Planar mapping:
![Planar mapping](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_checkeredplane.png)
Cylindrical mapping:
![Cylindrical mapping](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_checkeredcylinder.png)
Aligncheck plane:
![Aligncheck plane](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_aligncheckplane.png)
Cubical mapping:
![Cubical mapping](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_checkeredcube.png)
Image mapping:
![Image mapping](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_earth.png)
Skybox:
![Skybox](/Godzil/DoRayMe/raw/5b6b627a437a5cd299dcfde548928da96acbff79/output/uvmap_skybox.png)