Ray Tracing in One Weekend Book Series

RT in One Weekend RT The Next Week RT The Rest of Your Life
In One Weekend The Next Week The Rest of Your Life

Getting the Books

The Ray Tracing in One Weekend series of books are now available to the public for free directly from the web:

These books have been formatted for both screen and print. For printed copies, or to create PDF versions, use the print function in your browser.

Source Code

Intent

This repository is not meant to act as its own tutorial. The source is provided so you can compare your work when progressing through the book. We strongly recommend reading and following along with the book to understand the source. Ideally, you'll be developing your own implmentation as you go, in order to deeply understand how a raytracer works.

Downloading The Source Code

The GitHub home for this project contains all source and documentation associated with the Ray Tracing in One Weekend book series. To clone or download the source code, see the green "Clone or download" button in the upper right of the project home page.

Programming Language

This book is written in C++, and uses some modern features of C++11. The language and features were chosen to be broadly understood by the largest collection of programmers. It is not meant to represent ideal (or optimized) C++ code.

Building and Running

Copies of source are provided for you to check your work and compare against. If you wish to build the provided source, this project uses CMake. To build, go to the root of the project directory and run the following commands to create the debug version of every executable:

$ cmake -B build
$ cmake --build build

You can specify the target with the --target <program> option, where the program may be inOneWeekend, theNextWeek, theRestOfYourLife, or any of the demonstration programs. By default (with no --target option), CMake will build all targets.

On Windows, you can build either debug (the default) or release (the optimized version). To specify this, use the --config <debug|release> option.

If the project is succesfully cloned and built, you can then use the native terminal of your operating system to simply print the image to file.

Running The Programs

On Linux or OSX, from the terminal, run like this:

$ build/inOneWeekend > image.ppm

On Windows, run like this:

build\debug\inOneWeekend > image.ppm

or, run the optimized version (if you've built with --config release):

build\release\inOneWeekend > image.ppm