Physically based rendering (PBR) with Rust

8d4ec08 Use blend_info version 0.2.2, which fixes the ID.names (e.g. cameras).

~wahn pushed to ~wahn/rs-pbrt git

a day ago

356e30b Cleanup.

~wahn pushed to ~wahn/rs-pbrt git

a day ago


crates.io Build Status Documentation Status dependency status builds.sr.ht status

You can find more information about rs_pbrt at https://www.rs-pbrt.org/about ...

Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code:


Current Rust (development) documentation:

https://www.janwalter.org/doc/rust/rs_pbrt/index.html or https://www.rs-pbrt.org/doc/crates/rs_pbrt/index.html


> cargo build --release --no-default-features
> ./target/release/rs_pbrt --help
rs_pbrt 0.9.4
Parse a PBRT scene file (extension .pbrt) and render it

    rs_pbrt [OPTIONS] <path>

    -h, --help       Prints help information
    -V, --version    Prints version information

        --cropx0 <cropx0>            Specify an image crop window <x0 x1 y0 y1> [default: 0.0]
        --cropx1 <cropx1>            Specify an image crop window <x0 x1 y0 y1> [default: 1.0]
        --cropy0 <cropy0>            Specify an image crop window <x0 x1 y0 y1> [default: 0.0]
        --cropy1 <cropy1>            Specify an image crop window <x0 x1 y0 y1> [default: 1.0]
    -i, --integrator <integrator>    ao, directlighting, whitted, path, bdpt, mlt, sppm, volpath
    -t, --nthreads <nthreads>        use specified number of threads for rendering [default: 0]
    -s, --samples <samples>          pixel samples [default: 0]

    <path>    The path to the file to read

#Test Scenes

Some images of the test scenes are shown below, but you can find more test scenes on GitLab.

#Ganesha Statue

Very detailed scan of a small statue with over 4.3 million triangles, illuminated by a few area light sources.

Ganesha Statue

The scene can be found within the repository (assets/scenes/ganesha.tar.gz).

#Subsurface Scattering (SSS)

SSS Dragon


#Stochastic Progressive Photon Mapping (SPPM)

SPPM CausticGlass


#Ecosystem (Cover image for the first edition of the PBRT book)



#Landscape (Cover image for the third edition of the PBRT book)



The hair scattering model in action:

Curly and straight hair rendered by Rust version ofPBRT

#Japanes Classroom by NovaZeeke

Classroom room rendered byrs_pbrt


#The White Room by Jay-Artist

The White Room rendered byrs_pbrt


#Country Kitchen by Jay-Artist

Kitchen rendered byrs_pbrt


#The Wooden Staircase by Wig42

Staircase rendered byrs_pbrt


#Conference Room by Anat Grynberg and Greg Ward

Conference room rendered byrs_pbrt


#Theater by Charles Ehrlich and Greg Ward

Theater rendered byrs_pbrt

Theater rendered byrs_pbrt


For more info look at the Wiki page or the release notes.

Here you find another Rust implementation:



Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.