#照明 #OpenGL #全局 #实时 #gltf #场景 #渲染

mallumo

专注于实时全局照明技术的渲染库

3 个版本 (破坏性更新)

使用旧的 Rust 2015

0.3.0 2018年5月27日
0.2.0 2018年2月28日
0.1.0 2017年11月15日

#67 in 数据格式

MIT/Apache

11MB
12K SLoC

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

mallumo

研究实时渲染引擎,其最终目标是实现和评估实时全局照明的不同算法。

要求

  • Rust
  • Cargo 软件包管理器
  • 支持 OpenGL 4.5 的硬件

构建

mallumo 的所有库都由 Cargo 管理。因此,整个编译过程只需一个 'cargo build' 命令。

示例

为了运行示例,请在 mallumo 文件夹中使用 'cargo run --release --example example_name' 命令。我们强烈建议以发布模式运行示例,因为 Rust 编译器的调试构建非常慢。几乎所有示例都需要以 glTF 或 OBJ 格式的 3D 数据作为输入。您可以为任意数量的文件和两种格式的组合提供列表。BRDF 模型和基于图像的照明的场景示例的合适候选者来自 glTF 2.0 样例仓库 的示例,如 DamagedHelmet 等。对于 VXGI 和 SVO 可视化,您可以尝试我们仓库中的 Sponza。

场景

cargorun --release --examplescene --path_to_file

显示具有基于图像的照明和 Cook Torrance BRDF 模型的场景。

Scene with Damaged Helmet from glTF 2.0 Samples

场景动态

cargorun --release --examplescene_dynamic

显示组件的动态性。此示例不需要输入。

Scene with dynamic light and objects

基于体素的全球照明

cargorun --release --examplevxgi --assets/sponza/sponza.gltf

显示基于体素的全球照明。使用 --帮助 查看所有选项。或者,您可以使用 h 键打开 UI,在那里您可以在运行时更改任何选项。

Sponza with VXGI

文档

可在 https://docs.rs/mallumo/0.2.0/mallumo/ 找到。

许可

许可协议为以下之一

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义的,您有意提交以包含在作品中的任何贡献,应按上述方式双许可,不附加任何额外条款或条件。

依赖关系

~24–36MB
~431K SLoC