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...


スポンサーリンク

関連記事

Oculus Goを購入!
Texturing & Modeling A Procedural ApproachをGoo...
ZBrushと液晶ペンタブレットでドラゴンをモデリングするチュートリアル動画
Pix2Pix:CGANによる画像変換
Unityからkonashiをコントロールする
PythonのStructure from Motionライブラリ『OpenSfM』
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
Model View Controller
網元AMIで作ったWordpressサイトのインスタンスをt1microからt2microへ移行した
Faster R-CNN:ディープラーニングによる一般物体検出手法
PythonでMayaのShapeノードプラグインを作る
CreativeCOW.net
CGWORLD CHANNEL 第21回ニコ生配信は『シン・ゴジラ』メイキングスペシャル!
OpenCVベースの背景差分ライブラリ『BGSLibrary』
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
オープンソースの顔の動作解析ツールキット『OpenFace』
ドットインストールのWordPress入門レッスン
Unityの各コンポーネント間でのやり取り
Photoshopで作る怪獣特撮チュートリアル
なんかすごいサイト
Google App Engineのデプロイ失敗
Russian3DScannerのトポロジー転送ツール『WrapX』
After Effects全エフェクトの解説(6.5)
SONYの自律型エンタテインメントロボット『aibo』
書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読んだ
Verilog HDL
ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整
組み込み向けのWindows OS 『Windows Embedded』
バージョン管理の履歴を可視化するツール『Gource』
PythonのHTML・XMLパーサー『BeautifulSoup』
Raspberry PiでIoTごっこ
立体視を試してみた
色んな三面図があるサイト
第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』
C#で使える可読性重視のディープラーニングライブラリ『KelpNet』
clearcoat Shader
OpenCVでカメラ画像から自己位置認識 (Visual Odometry)
3Dグラフィックスの入門書
ZBrush キャラクター&クリーチャー
SegNet:ディープラーニングによるSemantic Segmentation手法
クラスの基本
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』

コメント