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

Siggraph Asia 2019でMitsuba 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のセッション動画が公開された↓
だいぶレンダラのパラダイムも変わってきたな。CGもあらゆるプロセスがDifferentiable(微分可能)になっていく感じがする。
Siggraph Asia 2019ではDifferentiable Renderingというセッションが設けられているみたい。
追記:BlenderからMitsubaフォーマットのシーンファイルをエクスポートするアドオンもある↓
Mitsuba 2 Blender Add-On
個人的に、2019年はCG関連のディープラーニング(というか微分可能)の動向が熱かった。



追記:Mitsubaは現在バージョン3が登場しています↓

関連記事
Transformers ”Reference & Buli...
Faster R-CNN:ディープラーニングによる一般物体検...
ZBrushで仮面ライダー3号を造る 仮面編 PolyGro...
Dlib:C++の機械学習ライブラリ
ZBrushでゴジラ2001を作ってみる 身体のバランスを探...
オープンソースの顔の動作解析ツールキット『OpenFace』
OpenCVの顔検出過程を可視化した動画
CGAN (Conditional GAN):条件付き敵対的...
映画『ゴジラ-1.0』 メイキング情報まとめ
NVIDIA GeForce RTX 3080を購入
ZBrushでアヴァン・ガメラを作ってみる 歯茎を別パーツへ...
viser:Pythonで使える3D可視化ライブラリ
ZBrushで仮面ライダー3号を造る 仮面編 ZRemesh...
Amazon EC2ログイン用の秘密鍵を無くした場合の対処方...
書籍『ゼロから作るDeep Learning』で自分なりに学...
立体視を試してみた
ZBrushでゴジラ2001を作ってみる 身体のシルエット出...
GoogleのDeep Learning論文
KelpNet:C#で使える可読性重視のディープラーニングラ...
Unityの薄い本
ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整
Windows Server 2008にAutodesk M...
ZBrushでゴジラ2001を作ってみる 側頭部のボリューム...
ZBrushでアヴァン・ガメラを作ってみる 頭頂部と首周りを...
自前のShaderがおかしい件
顔のモデリング
Subsurface scatteringの動画
Raspberry Pi 2を買いました
SIGGRAPH ASIAのマスコット
Unity ARKitプラグインサンプルのチュートリアルを読...
Iterator
ZBrush 4R8 リリース!
UnityのGlobal Illumination
Point Cloud Utils:Pythonで3D点群・...
ラクガキの立体化 反省
Unity ARKitプラグインサンプルのドキュメントを読む
ZBrushで仮面ライダー3号を造る 仮面編 Clay Po...
動的なメモリの扱い
ブログをGoogle App EngineからAmazon ...
映画『ブレードランナー 2049』のVFX
ZBrushでアヴァン・ガメラを作ってみる モールドの彫り込...
UnityでShaderの入力パラメータとして行列を渡す




コメント