Документация | Обучающие видео | Линукс | MacOS | Окна | ПиПИ |
---|---|---|---|---|---|
В настоящее время в master
ветке происходит большое количество недокументированной и нестабильной работы. Мы настоятельно рекомендуем вам использовать нашу последнюю версию до дальнейшего уведомления.
Если вы уже хотите опробовать предстоящие изменения, ознакомьтесь с этим руководством по портированию. Он должен охватывать большинство новых функций и предстоящих кардинальных изменений.
Mitsuba 3 — это исследовательская система рендеринга для моделирования прямого и обратного переноса света, разработанная в EPFL в Швейцарии. Он состоит из базовой библиотеки и набора плагинов, которые реализуют различные функциональные возможности: от материалов и источников света до полных алгоритмов рендеринга.
Mitsuba 3 является перенацеливаемым : это означает, что базовые реализации и структуры данных могут трансформироваться для выполнения различных задач. Например, один и тот же код может моделировать как скалярный (классический по одному лучу) транспорт RGB, так и дифференциальный спектральный транспорт на графическом процессоре. Все это основано на Dr.Jit, специализированном JIT -компиляторе, разработанном специально для этого проекта.
Кроссплатформенность : Mitsuba 3 была протестирована на Linux ( x86_64
), macOS ( aarch64
, x86_64
) и Windows ( x86_64
).
Высокая производительность : базовый компилятор Dr.Jit объединяет код рендеринга в ядра, которые обеспечивают высочайшую производительность с помощью бэкэнда LLVM, ориентированного на ЦП, и бэкэнда CUDA/OptiX, ориентированного на графические процессоры NVIDIA с аппаратным ускорением трассировки лучей.
Python прежде всего : Mitsuba 3 глубоко интегрирован с Python. Материалы, текстуры и даже полные алгоритмы рендеринга могут быть разработаны на Python, который система JIT-компилирует (и, при необходимости, дифференцирует) на лету. Это позволяет проводить эксперименты, необходимые для исследований в области компьютерной графики и других дисциплин.
Дифференциация : Mitsuba 3 является дифференцируемым средством визуализации, что означает, что он может вычислять производные всей симуляции относительно входных параметров, таких как поза камеры, геометрия, BSDF, текстуры и объемы. Он реализует последние алгоритмы дифференцируемого рендеринга, разработанные в EPFL.
Спектр и поляризация : Mitsuba 3 можно использовать в качестве монохроматического рендерера, рендерера на основе RGB или спектрального рендерера. При желании каждый вариант может дополнительно учитывать эффекты поляризации.
Мы записали на YouTube несколько видеороликов, в которых подробно рассказывается о Mitsuba 3 и Dr.Jit. Помимо этого, вы можете найти полные блокноты Juypter, охватывающие различные приложения, практические руководства и справочную документацию на readthedocs.
Мы предоставляем предварительно скомпилированные бинарные колеса через PyPI. Установить Mitsuba таким способом так же просто, как запустить
pip install mitsuba
в командной строке. Пакет Python по умолчанию включает тринадцать вариантов:
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 или спектрального цвета, а последние два можно использовать для обратного рендеринга на процессоре или графическом процессоре. Чтобы получить доступ к дополнительным вариантам, вам необходимо скомпилировать собственную версию Dr.Jit с помощью CMake. Подробную информацию об этом смотрите в документации.
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
Вот простой пример «Hello World», который показывает, насколько просто визуализировать сцену с помощью Mitsuba 3 из Python:
# 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' )
Учебные пособия и примеры блокнотов, охватывающие различные приложения, можно найти в документации.
Этот проект создал Венцель Якоб. Значительные функции и/или улучшения кода были внесены Себастьяном Шпейером, Николя Русселем, Мерлином Нимье-Давидом, Делио Вичини, Тизианом Зельтнером, Батистом Николе, Мигелем Креспо, Винсентом Леруа и Зийи Чжан.
При использовании 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
}