Ray Tracing

Ray tracing is a collection of algorithms and techniques for simulating light transport by tracing rays through a scene. It is a widely used rendering approach, alongside rasterization. Historically, ray tracing was considered too computationally expensive for real-time applications and was therefore primarily used for offline rendering. However, recent advances in GPU performance and the introduction of hardware-accelerated ray tracing have made real-time applications increasingly practical.

  • Ray Tracing in One Weekend series

    Series of online books teaching the basics of path tracing

  • Dartmouth CS87 Rendering Algorithms

    The course nicely fills the gap between a Ray Tracing in One Weekend style toy renderer and a more general and fully-fledged renderer that PBRT describes

    • Course
    • assignments
    • slides
    • c++
  • Physically Based Rendering: From Theory to Implementation

    Comprehensive reference on physically based rendering techniques

  • How to build a BVH Series

    A blog post series delving into building a BVH from scratch

    • article
    • c++
  • 7.3 Bounding Volume Hierarchies | Physically Based Rendering

    PBRT book chapter on how to build a BVH

    • article
    • c++
  • Lecture 18: Monte Carlo Rendering (CMU 15-462/662)

    An introduction to Monte Carlo ray tracing

  • Ray Tracing Gems Series

    Like other "gems" books, this series of books contains a collection of articles focused on ray tracing techniques for serious practitioners. It focuses on subjects commonly considered too advanced for introductory texts, yet rarely addressed by research papers.

    • book
  • An Improved Illumination Model for Shaded Display

    This is Turner Whitted's original Ray Tracing paper

    • paper
    • classic
  • The Graphics Codex: Ray Marching

    A good introduction of ray marching that progresses from naive ray marching to the sphere tracing algorithm. It then covers some common SDF primitives and operations, normal computation, and performance optimizations

  • Lecture 19: Variance Reduction (CMU 15-462/662)

    An overview various variance reduction techniques for Monte Carlo rendering, covering bidirectional path tracing, Metropolis-Hastings algorithm, MIS, stratified Sampling, low-discrepancy sampling, blue noise, photon mapping, and finite element radiosity

  • The rendering equation

    The classic Kajiya rendering equation paper introduced the "rendering equation" and the path tracing algorithm

  • Scratchapixel Volume Rendering

    Scratchapixel's in-depth introduction to volumetric rendering using ray marching

  • A Survey on Bounding Volume Hierarchies for Ray Tracing

    Excellent overview paper on BVH

    • paper
    Book cover of Learn OpenGL, featuring a smiling textured containers in OpenGL
  • Robust Monte Carlo Methods for Light Transport Simulation

    the Academy Award-winning Ph.D. thesis by Eric Veach. It starts from bidirectional light transport algorithms and introduces multiple importance sampling and Metropolis light transport

  • vk_mini_path_tracer

    A relatively small, beginner-friendly path tracing tutorial using Vulkan's ray tracing API

  • Flavors of Sampling in Ray Tracing

    An overview of different sampling strategies used in ray tracing.

  • Adventures in Hybrid Rendering (2021)

    A blog post on implementing a hybrid ray tracing rendering pipeline

    • article
  • Edge-Avoiding À-Trous Wavelet Transform for fast Global Illumination Filtering (2010)

    Classic paper introducing a fast and simple filter for ray tracing denoising.

  • What is direct lighting (next event estimation) in a ray tracer?

    An explanation of direct lighting and next event estimation in ray tracers

  • Experiments in Hybrid Raytraced Shadows

    Explores combining rasterization and ray tracing for shadow rendering

  • Megakernels Considered Harmful: Wavefront Path Tracing on GPUs (2013)

    Introduced wavefront path tracing

    • paper
    • classic
  • NVIDIA Vulkan Ray Tracing Tutorials

    This repository provides a comprehensive learning resource for Vulkan ray tracing, featuring a progressive step-by-step tutorial that transforms a rasterization application into a fully functional ray tracing implementation

  • TinyBVH

    Single-header zero-dependency BVH construction and traversal library

  • Using Blue Noise For Raytraced Soft Shadows

    Article from the "blue noise guy" talking about how to apply blue noise to raytraced soft shadows

  • The Ray Tracer Challenge

    This book challenges you to build a Whitted-style ray tracer from scratch. Unlike many tutorials, it doesn't provide code and follows a unique test-first approach, describing only test specifications and algorithms.