Announcing new Web Site for rs-pbrt

19 Feb 2019

New Website

On November 14th I started working on a new website about my port of an existing (C++ code) implementation of a physically based renderer to Rust, a new programming language I was interested in learning. As the about page tells you there is

  1. a book to learn from about the theory of Physically Based Rendering

  2. an accompanying website which provides further resources and links e.g. to the C++ source code or a number of interesting scenes

  3. an online edition of the same book, so there is no need to buy the book, but I do recommend it

  4. the source code of the Rust implementation, which isn’t finished yet, but does implement most of the algorithms already and can be used for rendering

  5. the online documentation of the aforementioned Rust implementation, which can also be found on this website (updated inbetween releases)


Whereas this blog is more about rendering in general and comparing different commercial and open source renderers, the blog on the new website is about releases and other topics around the Rust executable (called rs_pbrt) and how to use it. So far you can find:


I try to show an image for each release, which shows a new feature, which was added to the latest rs_pbrt executable and most likely there is a scene file which allows you to render that image yourself, after you have downloaded that scene and compiled the latest Rust source code into an executable. Which raises the question: Which features are already implemented?

Stochastic Progressive Photon Mapping (SPPM)

The last release added Stochastic Progressive Photon Mapping (SPPM), which gets activated through an Integrator "sppm" line in the scene file:

> grep sppm caustic-glass.pbrt
Integrator "sppm" "integer numiterations" [10000] "float radius" .075

Caustics created
by rippled glass.

As described here you can write out a pbrt.png file every iteration (or whatever you specify as argument):

> grep imagewritefrequency caustic-glass.pbrt
    "integer imagewritefrequency" [1]

Subsurface Scattering (SSS)

Subsurface Scattering (SSS).

See also the v0-5-0 relase notes.

Other Integrators

Ambient Occlusion (AO)

Ambient Occlusion (AO).

Direct Lighting

Direct Lighting.

Path Tracing

Path Tracing.

Bidirectional Path Tracing (BDPT)

Bidirectional Path Tracing (BDPT).

Metropolis Light Transport (MLT)

Metropolis Light Transport (MLT).

Other Features

There are other features, like motion blur, depth of field, realistic cameras etc. but those will be most likely documented with better example scenes and written about on the aforementioned website and/or blog.