Further Readings - RayTracing/raytracing.github.io GitHub Wiki

Ray Tracing in One Weekend

Chapter 1: Overview

Chapter 2: Output an image

Chapter 3: The vec3 class

Chapter 4: Rays, a simple camera, and background

Chapter 5: Adding a sphere

Chapter 6: Surface Normals and multiple objects

Chapter 8: Antialiasing

  • Implementation in the book is called "Box filtering" ("Good enough" for most situations)
  • Use a Gaussian-like filter instead
  • Can either:
    • Uniformly sample the screen and weight the samples
    • Non-uniformly sample

Chapter 9: Diffuse Materials

  • "Ideal" diffuse is also called "Lambertian" and are used 99% of the time in graphics
  • Real diffuse objects are not exactly Lambertian
    • e.g. become specular at grazing angle

Chapter 10: Metal

  • Have the color of the metal go to white at grazing angle
    • Schlick Approximation works for this
  • Can use the exact Fresnel equations. But normal incident is usually adequate.

Chapter 11: Dielectrics

Chapter 12: Positionable camera

  • Replace the camera parameter setting in the book with a camera matrix.

Chapter 13: Defocus Blur

Chapter 14: Where next?


Ray Tracing the Next Week

Chapter 2: Motion Blur

Chapter 3: A Bounding Volume Hierarchy (BVH)

  • Use the Surface Area Heuristic (SAH)
    • When choosing among potential partitions, the partition that minimizes the surface area of the sum of the volumes of the sub-trees is almost always good (and naively best)
    • SAH-Build that cuts on the longest axis

Chapter 5: Perlin Noise

Chapter 7: Lights

  • More efficient direct lighting can be implemented by
    • Sending shadow rays
    • Importance sample by sending more rays toward lights

Chapter 8: Instances

  • The more general implementation is transformation matrices
    • Collapse all composite transforms into one matrix
  • Surface normal scaling is a well-known gotcha

Chapter 9: Volumes


Ray Tracing The Rest of Your Life

Chapter 2: A Simple Monte Carlo Program

Chapter 8: Ortho-normal bases

Additional Resources:

⚠️ **GitHub.com Fallback** ⚠️