Mitsuba 2:オープンソースの物理ベースレンダラ

5年前にオープンソースの物理ベースレンダラ「Mitsuba」でちょっと遊んでみたことがあった↓



Siggraph Asia 2019Mitsuba 2が発表されたらしい↓

Mitsuba 2: A Retargetable Forward and Inverse Renderer



現代のレンダリングシステムは、増大し続ける様々な要求に直面しています:
写実性を追求するための物理ベーステクニックでは、スペクトル構成や偏光など光の複雑な特性をますます考慮しなければなりません。
レンダリング時間を短縮するためのベクトル化レンダラでは、CPU、GPU命令レベルで一貫した並列処理が必要です。
Differentiable Rendering(微分可能なレンダリング)アルゴリズムでは、目的関数を最適化するためにシミュレーションの微分値を伝播させる必要があります。(例:参照画像からシーンを再構築するなど)

これらの多様なユースケースに対応するのは困難であり、多くの専用システムが別々に開発されてきました。困難な理由は、これらの複雑な機能を既存のレンダラーに後付けしようとするとエラーが発生したり、基本データ構造、コンポーネント間のインターフェイス、その実装(つまり全て)に侵入的変換を伴うからです。

そこで、前述した様々な用途に対応可能な汎用的なレンダラ Mituba 2を提案します。
Mitsuba 2は最新のC ++で実装されており、テンプレートメタプログラミングを活用し、型の置き換えやコンポーネント(BSDF、ボリューム、エミッター、レンダリングアルゴリズムなど)の制御フローを計測します。そしてコンパイル時に、算術、データ構造、関数ディスパッチを自動的に変換し、汎用アルゴリズムを手作業による再設計無しでそれぞれに効率的な実装に変換します。
変換可能なのは、色の表現の変更、ライトパスのバンドルで動作する「ワイド」レンダラーの生成、GPUで実行される計算カーネルを作成するジャストインタイムコンパイル、自動微分のフォワード/リバースモードです。これらの変換は連鎖させることができ、 単一の汎用実装からアルゴリズムを派生させてさらに充実させることができます。

Mitsuba 2のバイナリやコード自体はまだ公開されていないみたい。

2020年3月 追記新しい公式ページソースコードドキュメントが公開されたぞ↓

Mitsuba 2



Mitsuba 2は、研究指向のリターゲティング可能なレンダリングシステムで、EnokiライブラリをベースにポータブルC++17で記述されています。EPFL(スイス連邦工科大学)Realistic Graphics Labが開発しています。

Mitsuba 2は、色の扱い(RGB、スペクトル、モノクロ)、ベクトル化(scalar, SIMD, CUDA)、Differentiable Rendering(微分可能なレンダリング)など、様々な形態でコンパイルできます。

Mitsuba 2は、小さなコアライブラリセットと、マテリアルと光源、レンダリングアルゴリズムまで幅広く実装した様々なプラグインで構成されています。Mitsuba 2は、以前のバージョンMitsuba 0.6のシーンとの互換性を維持するよう努めています。


スポンサーリンク

以前のMitsubaはバージョン0.6という扱いなのね。
ソースコードはGitHubにある↓
https://github.com/mitsuba-renderer/mitsuba2

ドキュメントはこちら
https://mitsuba2.readthedocs.io/en/latest/src/getting_started/intro/

Mitsuba 0.6との違いのページを読むと理解が早いかもしれん。
Pythonバインディングもあり、PyTorchと組み合わせることもできるみたい。
differentiable rendering (微分可能レンダリング)で早く遊びたいぞ。


スポンサーリンク


Mitsuba 2のプロジェクトページが公開された直後に皆さん反応されていてすごいですね↓
https://qiita.com/syoyo/items/1afb885092d1768c66f8
http://masafumi.cocolog-nifty.com/masafumis_diary/2019/09/post-1677e3.html

追記:Siggraph Asia 2019のセッション動画が公開された↓

Mitsuba 2: A Retargetable Forward and Inverse Renderer

だいぶレンダラのパラダイムも変わってきたな。CGもあらゆるプロセスがDifferentiable(微分可能)になっていく感じがする。
Siggraph Asia 2019ではDifferentiable Renderingというセッションが設けられているみたい。

追記:BlenderからMitsubaフォーマットのシーンファイルをエクスポートするアドオンもある↓

Mitsuba 2 Blender Add-On



BlenderのシーンをMitsuba 2のファイルフォーマットにエクスポートするアドオンです。

個人的に、2019年はCG関連のディープラーニング(というか微分可能)の動向が熱かった。


CGのためのディープラーニング
もう半年前のことですが、昨年12月に東京国際フォーラムで開催されたSiggraph Asia 2018 Tokyoで聴講したCourse CreativeAI:Deep Learning for Graphicsの復習を(今頃)しておこうか...

Kaolin:3Dディープラーニング用のPyTorchライブラリ
NVIDIAから3D系のディープラーニング研究のためのPyTorchライブラリが公開された。まだベータ版だから、これからどんどん充実していくんでしょうね。読み方はカオリンで良いのかな?(なんかかわいい)KaolinKaol...


スポンサーリンク

関連記事

3Dボリュームデータ処理ライブラリ『OpenVDB』
ZBrush4新機能ハイライト 3DCG CAMP 2010
Python for Unity:UnityEditorでPythonを使えるパッケージ
Zbrushでメカ物を作るチュートリアル動画
フリーで使えるスカルプト系モデリングツール『Sculptris 』
ZBrushでリメッシュとディティールの転送
ZBrushCoreのTransposeとGizmo 3D
Deep Neural Networkによる顔の個人識別フレームワーク『OpenFace』
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
PythonでMayaのShapeノードプラグインを作る
Mayaのレンダリング アトリビュート
AfterEffectsプラグイン開発
OpenCVの超解像(SuperResolution)モジュールを試す
オープンソースのIT資産・ライセンス管理システム『Snipe-IT』
プログラミングスキルとは何か?
オープンソースの物理ベースGIレンダラ『appleseed』
Maya LTのQuick Rigを試す
SDカードサイズのコンピューター『Intel Edison』
UnrealCLR:Unreal Engineで.NET Coreを利用できるプラグイン
書籍『イラストで学ぶ ディープラーニング』
Raspberry Pi 2のGPIOピン配置
グローバルイルミネーションに手を出す前に、やり残したことがあるんじゃない?
単純に遊びに行くのはだめなのか?
SIGGRAPH論文へのリンクサイト
ゴジラ(2014)のディティール制作の舞台裏
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が公開された
HD画質の無駄遣い その2
adskShaderSDK
ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
Python2とPython3
MFnMeshクラスのsplit関数
注文してた本が届いた
物理ベースレンダリングのためのマテリアル設定チートシート
Mayaのポリゴン分割ツールの進化
フリーのUV展開ツール Roadkill UV Tool
海外ドラマのChromaKey
機械学習で流体シミュレーションを近似する『Physics Forests』
FCN (Fully Convolutional Network):ディープラーニングによるSema...
ZBrushで仮面ライダー3号を造る 仮面編 失敗のリカバー
Kaolin:3Dディープラーニング用のPyTorchライブラリ
顔追跡による擬似3D表示『Dynamic Perspective』
TeleSculptor:空撮動画からPhotogrammetryするツール

コメント