Repolode
mmp

mmp/pbrt-v4

pbrt-v4 is the physically based ray tracer from the 4th edition of the Physically Based Rendering book, written in C++.

Stars
3,732
Forks
648
Open issues
97
Last commit
last month

What is it?

pbrt-v4 is the source code of pbrt, a physically based ray tracer that accompanies the fourth edition of the book Physically Based Rendering: From Theory to Implementation. It uses spectral rendering, performing computations on point-sampled spectra and limiting RGB color to scene inputs such as image textures and final output.

The release adds a volumetric path integrator based on null-scattering, light BVH sampling for many-light scenes, and redesigned BxDFs and materials modeled on physical scattering processes. A GBuffer film exports per-pixel position, normal and albedo, which is useful for denoising and ML training. The project also includes an upgrade tool for pbrt-v3 scene files.

An optional GPU path runs on CUDA and OptiX on NVIDIA hardware, and the build uses CMake with C++17. Rendering progress can be streamed to the tev or hdrview image viewers.

Key features

  • 01Spectral rendering with point-sampled spectra
  • 02Volumetric path integrator based on null-scattering
  • 03Light BVH sampling for many-light scenes
  • 04Redesigned BxDFs and materials tied to physical scattering
  • 05GBuffer film exporting position, normal and albedo for denoising
  • 06Optional CUDA/OptiX GPU rendering path

Use cases

  • Producing physically accurate images from 3D scenes in research or film pipelines
  • Studying the implementation of modern rendering algorithms alongside the PBR book
  • Generating training data such as normals and albedo for denoisers or ML models
  • Rendering scenes on NVIDIA GPUs with the OptiX denoiser

Quick start

  1. 1

    Clone the repository with submodules

    git clone --recursive https://github.com/mmp/pbrt-v4.git
  2. 2

    Build the code with cmake (release build by default)

  3. 3

    Render a scene by running pbrt on a scene file

    pbrt --display-server localhost:14158 scene.pbrt

Things to know

  • The GPU path works only on NVIDIA GPUs with CUDA and OptiX.
  • Building requires a C++17 compiler and cmake, and the repository needs git submodules fetched.

Topics

FAQ

What is pbrt-v4?
pbrt-v4 is the physically based ray tracer from the 4th edition of the Physically Based Rendering book, written in C++. pbrt-v4 is the source code of pbrt, a physically based ray tracer that accompanies the fourth edition of the book Physically Based Rendering: From Theory to Implementation. It uses spectral rendering, performing computations on point-sampled spectra and limiting RGB color to scene inputs such as image textures and final output.
Is pbrt-v4 free to use? What license does it have?
pbrt-v4 is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is pbrt-v4 still maintained?
Updated within 6 months. The last commit to pbrt-v4 was on Sep 8, 2026.
What can I use pbrt-v4 for?
Producing physically accurate images from 3D scenes in research or film pipelines Studying the implementation of modern rendering algorithms alongside the PBR book Generating training data such as normals and albedo for denoisers or ML models Rendering scenes on NVIDIA GPUs with the OptiX denoiser
How do I install pbrt-v4?
Clone the repository with submodules: git clone --recursive https://github.com/mmp/pbrt-v4.git Build the code with cmake (release build by default) Render a scene by running pbrt on a scene file: pbrt --display-server localhost:14158 scene.pbrt
Where can I get pbrt-v4?
The source code and installation instructions are on GitHub: https://github.com/mmp/pbrt-v4

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects