文档 | 教程视频 | Linux | 苹果系统 | 视窗 | 皮伊 |
---|---|---|---|---|---|
目前master
分支中正在进行大量未记录且不稳定的工作。我们强烈建议您使用我们的最新版本,直至另行通知。
如果您已经想尝试即将发生的更改,请查看此移植指南。它应该涵盖大部分新功能和即将到来的重大变化。
Mitsuba 3 是瑞士洛桑联邦理工学院 (EPFL) 开发的用于前向和逆向光传输模拟的研究型渲染系统。它由一个核心库和一组插件组成,这些插件实现了从材质和光源到完整渲染算法的功能。
Mitsuba 3 是可重定向的:这意味着底层实现和数据结构可以转换以完成各种不同的任务。例如,相同的代码可以在 GPU 上模拟标量(经典的一次一束光线)RGB 传输或差分光谱传输。这一切都建立在 Dr.Jit 的基础上,Dr.Jit 是专门为此项目开发的专用即时(JIT) 编译器。
跨平台:Mitsuba 3 已在 Linux ( x86_64
)、macOS ( aarch64
、 x86_64
) 和 Windows ( x86_64
) 上进行了测试。
高性能:底层的 Dr.Jit 编译器将渲染代码融合到内核中,使用针对 CPU 的 LLVM 后端和针对 NVIDIA GPU 的 CUDA/OptiX 后端(具有光线追踪硬件加速功能)实现最先进的性能。
Python优先:Mitsuba 3与Python深度集成。材质、纹理,甚至完整的渲染算法都可以用 Python 开发,系统会即时进行 JIT 编译(并可选择区分)。这使得计算机图形学和其他学科研究所需的实验成为可能。
微分:Mitsuba 3 是一个可微渲染器,这意味着它可以计算整个模拟相对于输入参数(例如相机姿态、几何形状、BSDF、纹理和体积)的导数。它实现了 EPFL 最近开发的可微分渲染算法。
光谱和偏振:Mitsuba 3 可用作单色渲染器、基于 RGB 的渲染器或光谱渲染器。如果需要,每个变体都可以选择考虑偏振的影响。
我们录制了几个 YouTube 视频,对 Mitsuba 3 和 Dr.Jit 进行了温和的介绍。除此之外,您还可以在 readthedocs 上找到涵盖各种应用程序、操作指南和参考文档的完整 Juypter 笔记本。
我们通过 PyPI 提供预编译的二进制轮。以这种方式安装三叶就像运行一样简单
pip install mitsuba
在命令行上。 Python 包默认包含 13 个变体:
scalar_rgb
scalar_spectral
scalar_spectral_polarized
llvm_ad_rgb
llvm_ad_mono
llvm_ad_mono_polarized
llvm_ad_spectral
llvm_ad_spectral_polarized
cuda_ad_rgb
cuda_ad_mono
cuda_ad_mono_polarized
cuda_ad_spectral
cuda_ad_spectral_polarized
前两者使用 RGB 或光谱颜色表示执行经典的一次一条光线模拟,而后两者可用于 CPU 或 GPU 上的逆渲染。要访问其他变体,您需要使用 CMake 编译 Dr.Jit 的自定义版本。有关详细信息,请参阅文档。
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
下面是一个简单的“Hello World”示例,展示了使用 Python 中的 Mitsuba 3 渲染场景是多么简单:
# Import the library using the alias "mi"
import mitsuba as mi
# Set the variant of the renderer
mi . set_variant ( 'scalar_rgb' )
# Load a scene
scene = mi . load_dict ( mi . cornell_box ())
# Render the scene
img = mi . render ( scene )
# Write the rendered image to an EXR file
mi . Bitmap ( img ). write ( 'cbox.exr' )
文档中可以找到涵盖各种应用程序的教程和示例笔记本。
该项目由 Wenzel Jakob 创建。对代码的重要功能和/或改进由 Sébastien Speierer、Nicolas Roussel、Merlin Nimier-David、Delio Vicini、Tizian Zeltner、Baptiste Nicolet、Miguel Crespo、Vincent Leroy 和 Ziyi Zhu 贡献。
在学术项目中使用 Mitsuba 3 时,请引用:
@software { Mitsuba3 ,
title = { Mitsuba 3 renderer } ,
author = { Wenzel Jakob and Sébastien Speierer and Nicolas Roussel and Merlin Nimier-David and Delio Vicini and Tizian Zeltner and Baptiste Nicolet and Miguel Crespo and Vincent Leroy and Ziyi Zhang } ,
note = { https://mitsuba-renderer.org } ,
version = { 3.1.1 } ,
year = 2022
}