Building a simple raytracer: step-by-step from scratch; zero dependencies; 100% pure C++
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
code
img
slides
.gitignore
LICENSE
README.md

README.md

Let's Build a Raytracer, From Scratch

Final render animation

This repository contains code, assets, and presentation slides from an introductory course on raytracing.

Note: This repository will NOT accept pull requests.

Presentation slides

  • Based on revealJS
  • Best viewed in Chromium browser at 1024x768
  • The version in this repo requires internet connection to load JS dependencies

first slide

Errata

This course is certainly not perfect. One known "issue" is that the Phong-like illumination model does not have a correct diffuse component, although this is not immediately noticeable.

Code

The code is split into "levels" which follow the structure of the course. Each level introduces a new concept and builds on the foundation of the prior levels.

Licenses

  • The course slides are under CC-BY-NC license.
  • Original non-content sources are MIT-licensed.
  • The course builds upon third-party elements (frameworks such as reveal.js, libraries such as MathJax, fonts etc.). Each such element may have its own license.