An open API service indexing awesome lists of open source software.

https://github.com/wahn/rs_pbrt

Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code. See also https://www.rs-pbrt.org/about ...
https://github.com/wahn/rs_pbrt

graphics pathtracer pathtracing pbrt physically-based-rendering raytracer rendering rust

Last synced: 5 months ago
JSON representation

Rust crate to implement a counterpart to the PBRT book's (3rd edition) C++ code. See also https://www.rs-pbrt.org/about ...

Awesome Lists containing this project

README

        

# rs_pbrt

[![crates.io](https://img.shields.io/crates/v/rs_pbrt.svg)](https://crates.io/crates/rs_pbrt)
[![Documentation Status](https://readthedocs.org/projects/rs-pbrt/badge/?version=latest)](https://rs-pbrt.readthedocs.io/en/latest/?badge=latest)
[![dependency status](https://deps.rs/repo/github/wahn/rs_pbrt/status.svg)](https://deps.rs/repo/github/wahn/rs_pbrt)
[![builds.sr.ht status](https://builds.sr.ht/~wahn/rs-pbrt.svg)](https://builds.sr.ht/~wahn/rs-pbrt?)

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

```shell
> cargo build --release --no-default-features
> ./target/release/rs_pbrt --help
rs_pbrt version 0.9.12 (unknown) [Detected 28 cores]

Physically based rendering (PBR) with Rust

Usage: rs_pbrt [OPTIONS] --path

Options:
--cropx0 Specify an image crop window [default: 0.0]
--cropx1 Specify an image crop window [default: 1.0]
--cropy0 Specify an image crop window [default: 0.0]
--cropy1 Specify an image crop window [default: 1.0]
-i, --integrator ao, directlighting, whitted, path, bdpt, mlt, sppm, volpath
-t, --nthreads use specified number of threads for rendering [default: 0]
-s, --samples pixel samples [default: 0]
-p, --path The path to the file to read
-h, --help Print help information
-V, --version Print version information
```

## Test Scenes

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

## Ganesha Statue

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

![Ganesha Statue](https://www.janwalter.org/assets/ganesha.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`pbrt_ganesha.tar.gz`).

## Subsurface Scattering (SSS)

![SSS Dragon](https://www.janwalter.org/assets/sss_dragon.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`sss_dragon.tar.gz`).

## Stochastic Progressive Photon Mapping (SPPM)

![SPPM Caustic
Glass](https://www.janwalter.org/assets/caustic_glass_pbrt_rust_sppm.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`caustic_glass.tar.gz`).

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

![Ecosystem](https://www.janwalter.org/assets/ecosys.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`pbrt_ecosys.tar.gz`).

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

![Landscape](https://www.janwalter.org/assets/landscape_rust_pbrt_view_0.png)

## Hair

The [hair scattering][hair-scattering] model in action:

![Curly and straight hair rendered by Rust version of
PBRT](https://www.janwalter.org/assets/hair_rust_pbrt.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`pbrt_hair.tar.gz`).

## Japanes Classroom by NovaZeeke

![Classroom room rendered by
rs_pbrt](https://www.janwalter.org/assets/classroom_pbrt_rust.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`bitterli_classroom.tar.gz`).

## The White Room by [Jay-Artist][jay-artist]

![The White Room rendered by
rs_pbrt](https://www.janwalter.org/assets/living-room-2_pbrt_rust_mlt.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`bitterli_living-room-2.tar.gz`).

## Country Kitchen by [Jay-Artist][jay-artist]

![Kitchen rendered by
rs_pbrt](https://www.janwalter.org/assets/kitchen_pbrt_rust.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`bitterli_kitchen.tar.gz`).

## The Wooden Staircase by [Wig42][wig42]

![Staircase rendered by
rs_pbrt](https://www.janwalter.org/assets/staircase_pbrt_rust.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`bitterli_staircase.tar.gz`).

## Conference Room by Anat Grynberg and Greg Ward

![Conference room rendered by
rs_pbrt](https://www.janwalter.org/assets/conference_room_pbrt_rust_current.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`radiance_conference_room` folder).

## Theater by Charles Ehrlich and Greg Ward

![Theater rendered by
rs_pbrt](https://www.janwalter.org/assets/theater_pbrt_rust_corner.png)

![Theater rendered by
rs_pbrt](https://www.janwalter.org/assets/theater_pbrt_rust_stage.png)

The scene can be found within the [GitLab repository][gitlab_pbrt]
(`radiance_theater` folder).

For more information check out the `rs-pbrt` [web page][rs-pbrt].

## License

Licensed under either of

* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license ([LICENSE-MIT](LICENSE-MIT) or
http://opensource.org/licenses/MIT)

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.

[test-scenes]: https://gitlab.com/jdb-walter/rs-pbrt-test-scenes/wikis/home
[gitlab_pbrt]: https://gitlab.com/jdb-walter/rs-pbrt-test-scenes/-/tree/master/pbrt
[jay-artist]: https://www.blendswap.com/user/Jay-Artist
[wig42]: https://www.blendswap.com/user/Wig42
[hair-scattering]: http://www.pbrt.org/hair.pdf
[rs-pbrt]: https://www.rs-pbrt.org