ドキュメント | チュートリアルビデオ | Linux | MacOS | 窓 | PyPI |
---|---|---|---|---|---|
現在、 master
ブランチでは大量の文書化されていない不安定な作業が進行しています。追って通知があるまで、最新リリースを使用することを強くお勧めします。
今後の変更をすでに試してみたい場合は、この移植ガイドをご覧ください。今後の新機能と重大な変更のほとんどがカバーされているはずです。
ミツバ 3 は、スイスの EPFL で開発された順光および逆光輸送シミュレーションのための研究指向のレンダリング システムです。これは、コア ライブラリと、マテリアルや光源から完全なレンダリング アルゴリズムに至るまでの機能を実装するプラグインのセットで構成されます。
ミツバ 3 は再ターゲット可能です。これは、基礎となる実装とデータ構造を変換して、さまざまな異なるタスクを実行できることを意味します。たとえば、同じコードで、GPU 上でスカラー (古典的な一度に 1 レイずつ) RGB トランスポートと差分スペクトル トランスポートの両方をシミュレートできます。これはすべて、このプロジェクトのために特別に開発された特殊なジャストインタイム(JIT) コンパイラーである Dr.Jit 上に構築されています。
クロスプラットフォーム: ミツバ 3 は、Linux ( x86_64
)、macOS ( aarch64
、 x86_64
)、および Windows ( x86_64
) でテストされています。
ハイパフォーマンス: 基盤となる Dr.Jit コンパイラーは、CPU をターゲットとする LLVM バックエンドと、レイ トレーシング ハードウェア アクセラレーションを備えた NVIDIA GPU をターゲットとする CUDA/OptiX バックエンドを使用して、最先端のパフォーマンスを実現するカーネルにレンダリング コードを融合します。
Python ファースト: ミツバ 3 は Python と深く統合されています。マテリアル、テクスチャ、さらには完全なレンダリング アルゴリズムさえも Python で開発でき、システムはオンザフライで JIT コンパイル (およびオプションで微分) します。これにより、コンピューター グラフィックスやその他の分野の研究に必要な実験が可能になります。
微分:Mitsuba 3 は微分可能なレンダラーです。つまり、カメラのポーズ、ジオメトリ、BSDF、テクスチャ、ボリュームなどの入力パラメータに関してシミュレーション全体の導関数を計算できます。 EPFL で開発された最近の微分可能レンダリング アルゴリズムを実装しています。
スペクトルと偏光:Mitsuba 3 は、単色レンダラー、RGB ベースのレンダラー、またはスペクトル レンダラーとして使用できます。各バリアントは、必要に応じて、偏光の影響をオプションで考慮することができます。
私たちは、Mitsuba 3 と Dr.Jit を優しく紹介する YouTube ビデオをいくつか録画しました。さらに、readthedocs では、さまざまなアプリケーション、ハウツー ガイド、リファレンス ドキュメントをカバーする完全な Juypter ノートブックを見つけることができます。
PyPI 経由でコンパイル済みのバイナリ ホイールを提供します。この方法でのMitsubaのインストールは、実行するのと同じくらい簡単です
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
最初の 2 つは、RGB またはスペクトル カラー表現を使用して、一度に 1 レイずつの古典的なシミュレーションを実行します。一方、後の 2 つは、CPU または GPU での逆レンダリングに使用できます。追加のバリアントにアクセスするには、CMake を使用して Dr.Jit のカスタム バージョンをコンパイルする必要があります。詳細についてはドキュメントを参照してください。
Python >= 3.8
Nvidia driver >= 495.89
LLVM >= 11.1
以下は、Python から Mitoba 3 を使用してシーンをレンダリングすることがいかに簡単かを示す、単純な「Hello World」の例です。
# 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 Zhang によって貢献されました。
学術プロジェクトで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
}