mallumo 0.1.0

Rendering engine focused on PBR and real-time Global Illumination techniques
Documentation

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.

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.

sparse Voxel Octree with 9th level of nodepol and brickpool

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