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

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

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

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.

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

Subsurface Scattering (SSS)

sss_dragon_pbrt.tar.gz

Stochastic Progressive Photon Mapping (SPPM)

caustic_glass.tar.gz

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

pbrt_ecosys.tar.gz

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

Hair

The hair scattering model in action:

Japanes Classroom by NovaZeeke

classroom_pbrt.tar.gz

The White Room by Jay-Artist

living-room-2_pbrt.tar.gz

Country Kitchen by Jay-Artist

kitchen_pbrt.tar.gz

The Wooden Staircase by Wig42

staircase_pbrt.tar.gz

Conference Room by Anat Grynberg and Greg Ward

conference_room_pbrt.tar.gz

Theater by Charles Ehrlich and Greg Ward

theater_pbrt.tar.gz

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

Here you find another Rust implementation:

#404

License

Licensed under either of

  • Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
  • MIT license (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.

Issues

Collection of the latest Issues

wahn

wahn

enhancement
5

On the Blender Cloud there is a project called Attic Close-up (by Gleb Alexandrov). You can download a Blender scene from there. The goal of this issue is to create a similar Blender (version 2.79) scene, which can be used to render directly with parse_blend_file (see examples folder).

Versions

Find the latest versions by id

v0.9.6 - Mar 16, 2022

I released two new versions of my crates last week. The renderer is currently not changing that much anymore. The Windows .msi installer was changed to report the dual licensing correctly (MIT & Apache 2.0), and to contain two executables, one to render .pbrt (v3) files, and one to parse and render Blender's binary .blend files (in theory independent of the Blender version using it's DNA info). Using the crate blend_info not as an executable to inspect a .blend file, but as a crate (like the example mentioned above) is now documented a little more, but I hope to improve the documentation soon, so other people get interested in using blend_info as a crate to cherry pick information they want to re-use in their own code. Examples would be OpenGL or Vulkan viewers of geometry which was modelled within any Blender version ...

v0.9.2 - Jun 04, 2021

Bug fix for the Ganesha Statue scene (see issue #135).

Add some command line options to replace the '--cropwindow' option (of the C++ counterpart):

Information - Updated Mar 20, 2022

Stars: 733
Forks: 50
Issues: 1

Repositories & Extras

Rust bindings to bgfx, a cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering...

Rust bindings to wrapper for Rust exists, the code here takes a different approach and generate high-level bindings from the BGFX API examples an how...

Rust bindings to bgfx, a cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering...

A mid-level 2D graphics library for rust

rgx is a 2D graphics library built on top of Vulkan/

A mid-level 2D graphics library for rust

Blue Engine is a general-purpose, easy-to-use, fast, extendable, secure, and portable graphics engine written in...

Blue Engine is a general-purpose, easy-to-use, fast, extendable, secure, and portable graphics engine written in rust

Blue Engine is a general-purpose, easy-to-use, fast, extendable, secure, and portable graphics engine written in...

Safe Rust bindings to the Skia Graphics Library

Safe Rust bindings to the

Safe Rust bindings to the Skia Graphics Library

A vector graphics renderer using OpenGL with a Rust & C API

A Rust example can be found in examples/quickstart

A vector graphics renderer using OpenGL with a Rust & C API

This is a Chip 8 emulator written in rust using piston for input and graphics

Chip 8 is a very simple system and is a good entrypoint to learning about emulator design

This is a Chip 8 emulator written in rust using piston for input and graphics

An experimental no-alloc Rust GUI toolkit built on top of embedded-graphics

is to provide a cross-platform, no_std, non-allocating, composable UI framework

An experimental no-alloc Rust GUI toolkit built on top of embedded-graphics

Vulkano Vulkan Graphics API for Rust

Vulkano is a Rust wrapper around Wgpu-rs or the Vulkan graphics GPU API

Vulkano Vulkan Graphics API for Rust

DAXAD is a rewrite of my older "CPP-2D-Game-Engine", in rust using wgpu as the graphics...

DAXAD is a rewrite of my older "CPP-2D-Game-Engine", in rust using wgpu as the graphics api

DAXAD is a rewrite of my older "CPP-2D-Game-Engine", in rust using wgpu as the graphics...

My implementation for chess in rust, implemented both the logic and graphics

This is a WIP graphics engine build in Rust and really meant for reference and learning

My implementation for chess in rust, implemented both the logic and graphics

Unsafe Rust bindings for the Metal 3D Graphics API

The examples directory highlights different ways of using the Metal graphics API for rendering

Unsafe Rust bindings for the Metal 3D Graphics API

This is a NES (Nintendo Entertainment System) emulator written in Rust using SDL2 for graphics...

This is a NES (Nintendo Entertainment System) emulator written in Rust using SDL2 for graphics and input

This is a NES (Nintendo Entertainment System) emulator written in Rust using SDL2 for graphics...
Facebook Instagram Twitter GitHub Dribbble
Privacy