#illumination #opengl #global #real-time #gltf #scene #rendering

mallumo

Rendering library focused on real-time global illumination techniques

3 releases (breaking)

Uses old Rust 2015

0.3.0 May 27, 2018
0.2.0 Feb 28, 2018
0.1.0 Nov 15, 2017

#67 in Data formats

MIT/Apache

11MB
12K SLoC

Rust 11K SLoC // 0.0% comments C 1.5K SLoC // 0.1% comments

mallumo

Research real-time rendering engine whose end-goal is to implement and evaluate different algorithms for real-time Global Illumination.

Requirements

  • Rust
  • Cargo package manager
  • Hardware support for OpenGL 4.5

Building

All of mallumo libraries are managed by Cargo. Therefore, entire compilation is a just a 'cargo build' command.

Examples

In order to run examples, use 'cargo run --release --example example_name' command in mallumo folder. We highly advise running examples in release mode as Rust compiler has very slow debug builds. Almost all examples require 3d data as input in glTF or OBJ format. You can provide list with arbitrary number of files and combination of both formats. Good candidates for scene example with BRDF model and Image Based Lighting are examples from glTF 2.0 Samples repository such as DamagedHelmet etc. For VXGI and SVO visualization you can try Sponza from our repository.

Scene

cargo run --release --example scene -- path_to_file

Shows scene with Image Based Lighting and Cook Torrance BRDF model.

Scene with Damaged Helmet from glTF 2.0 Samples

Scene dynamic

cargo run --release --example scene_dynamic

Shows dynamicity of components. No input is needed for this example.

Scene with dynamic light and objects

Voxel Based Global Illumination

cargo run --release --example vxgi -- assets/sponza/sponza.gltf

Show Voxel Based Global Illumination. Use --help to see all the options. Alternatively, you can use h key to bring up the UI where you can change any option at run-time.

Sponza with VXGI

Documentation

Can be found at https://docs.rs/mallumo/0.2.0/mallumo/.

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.

Dependencies

~24–36MB
~431K SLoC