~wahn/rs-pbrt

Physically based rendering (PBR) with Rust
Update crate dependencies.
Dual license file for sourcehut. Badge about sr.ht build.
Build without OpenEXR on Debian (stable) for sourcehut.

clone

read-only
https://git.sr.ht/~wahn/rs-pbrt
read/write
git@git.sr.ht:~wahn/rs-pbrt

You can also use your local clone with git send-email.

#rs_pbrt

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:

http://www.pbrt.org

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

#Usage

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

USAGE:
    rs_pbrt [OPTIONS] <path>

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

OPTIONS:
        --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]

ARGS:
    <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

sss_dragon_pbrt.tar.gz

#Stochastic Progressive Photon Mapping (SPPM)

SPPM CausticGlass

caustic_glass.tar.gz

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

Ecosystem

pbrt_ecosys.tar.gz

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

Landscape

#Hair

The hair scattering model in action:

Curly and straight hair rendered by Rust version ofPBRT

#Japanes Classroom by NovaZeeke

Classroom room rendered byrs_pbrt

classroom_pbrt.tar.gz

#The White Room by Jay-Artist

The White Room rendered byrs_pbrt

living-room-2_pbrt.tar.gz

#Country Kitchen by Jay-Artist

Kitchen rendered byrs_pbrt

kitchen_pbrt.tar.gz

#The Wooden Staircase by Wig42

Staircase rendered byrs_pbrt

staircase_pbrt.tar.gz

#Conference Room by Anat Grynberg and Greg Ward

Conference room rendered byrs_pbrt

conference_room_pbrt.tar.gz

#Theater by Charles Ehrlich and Greg Ward

Theater rendered byrs_pbrt

Theater rendered byrs_pbrt

theater_pbrt.tar.gz

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

Here you find another Rust implementation:

https://bitbucket.org/abusch/rustracer

#License

Licensed under either of

at your option.

#Contribution

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.