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 dynamic
cargo run --release --example scene_dynamic
Shows dynamicity of components. No input is needed for this example.
Voxel Based Global Illumination
cargo run --release --example vxgi -- assets/sponza/sponza.gltf
Show Voxel Based Global Illumination.
Sparse Voxel Octagonal Tree visualization
cargo run --release --example svo_visualization -- assets/sponza/sponza.gltf
You can see how scene is deconstructed into SVO in this example. You can take a look at produced sparse nodepool as well as brickpool with all the values mipmapped.
Controls:
- S/B - show loaded Scene or Brickpool
- Numpad 1-9 - choose the hiearchy level of brickpool pyramid
- 1-9 - toggles levels of nodepool
Documentation
License
mallumo is licensed under GPLv3