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が登場しています↓

関連記事
iOSで使えるJetpac社の物体認識SDK『DeepBel...
DensePose:画像中の人物表面のUV座標を推定する
ラクガキの立体化 背中の作り込み・手首の移植
3Dモデルを立体視で確認できるVRアプリを作っている
OpenVDB:3Dボリュームデータ処理ライブラリ
ArUco:OpenCVベースのコンパクトなARライブラリ
SSD (Single Shot Multibox Dete...
ZBrushのUndo Historyをカメラ固定で動画化す...
第1回 3D勉強会@関東『SLAMチュートリアル大会』
C++始めようと思うんだ
Houdiniのライセンスの種類
JavaによるCGプログラミング入門サイト (日本語)
オープンソースの人体モデリングツール『MakeHuman』の...
SONY製のニューラルネットワークライブラリ『NNabla』
ZBrushでアヴァン・ガメラを作ってみる パーツ分割
hloc:SuperGlueで精度を向上させたSfM・Vis...
顔のモデリング
LuxCoreRender:オープンソースの物理ベースレンダ...
R-CNN (Regions with CNN featur...
ドラマ『ファーストクラス』のモーショングラフィックス
『パシフィック・リム: アップライジング』のVFXブレイクダ...
画像生成AI Stable Diffusionで遊ぶ
フリーのUV展開ツール Roadkill UV Tool
ZBrushで人型クリーチャー
Human Generator:Blenderの人体生成アド...
実写と実写の合成時の色の馴染ませテクニック
UnityでOpenCVを使うには?
WinSCP
映画『シン・ウルトラマン』 メイキング記事まとめ
iPhone欲しいなぁ
SIGGRAPH Asia
OpenCVの三角測量関数『cv::triangulatep...
NumSharp:C#で使えるNumPyライクな数値計算ライ...
写真から3Dメッシュの生成・編集ができる無料ツール『Auto...
BlenderのGeometry Nodeで遊ぶ
ZBrushでゴジラ2001を作ってみる 頭の概形作り
Structure from Motion (多視点画像から...
書籍『開田裕治 怪獣イラストテクニック』
ZBrushで作った3Dモデルを立体視で確認できるVRアプリ...
ROSの薄い本
ZBrush4新機能ハイライト 3DCG CAMP 2010
BlenderのRigifyでリギング




コメント