サイトアイコン NegativeMindException

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のセッション動画が公開された↓



だいぶレンダラのパラダイムも変わってきたな。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ライブラリが公開された。 まだベータ版だから、これからどんどん充実していくんでしょうね。読み方はカオリンで良いのかな?(なんかかわいい) Kaolin Kaolinは3Dデ...


追記:Mitsubaは現在バージョン3が登場しています↓
Mitsuba 3:オープンソースの研究向けレンダラ
オープンソースの研究用レンダラMitsubaのバージョン2が発表されたのが3年ほど前。 次のバージョンのMistuba 3が発表されました↓ Mitsuba 3: A Retargetable Forward and Inverse Ren...


スポンサーリンク

関連記事

  • OpenCV 3.1のsfmモジュールのビルド再び
  • ZBrushでアヴァン・ガメラを作ってみる 頬の突起を作り始める
  • ZBrushでゴジラ2001を作ってみる 身体のバランスを探る
  • トランスフォーマー/ロストエイジのメイキング
  • GeoGebra:無料で使える数学アプリ
  • cvui:OpenCVのための軽量GUIライブラリ
  • 写真から3Dメッシュの生成・編集ができる無料ツール『Autodesk Memento』
  • DensePose:画像中の人物表面のUV座標を推定する
  • Python for Unity:UnityEditorでPythonを使えるパッケージ
  • マイケル・ベイの動画の感覚
  • OpenCV 3.1から追加されたSfMモジュール
  • ZBrushで仮面ライダー3号を造る ベース編
  • OpenMVS:Multi-View Stereoによる3次元復元ライブラリ
  • BlenderのRigifyでリギング
  • 『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
  • OpenCVの超解像(SuperResolution)モジュールを試す
  • タダでRenderManを体験する方法
  • WordPressのテーマを自作する
  • 無料で使える人体3DCG作成ツール
  • シン・ゴジラのファンアート
  • Google Colaboratoryで遊ぶ準備
  • ZBrush キャラクター&クリーチャー
  • 3分の動画でプログラミングを学習できるサイト『ドットインストール』
  • ジュラシック・パークの続編『ジュラシック・ワールド』
  • TensorFlowでCGを微分できる『TensorFlow Graphics』
  • Physically Based Rendering
  • ブログの復旧が難航してた話
  • 白組による『シン・ゴジラ』CGメイキング映像が公開された!
  • ZBrushでUndo Historyを動画に書き出す
  • Math Inspector:科学計算向けビジュアルプログラミングツール
  • 機械学習について最近知った情報
  • ZBrushでゴジラ2001を作ってみる 頭の概形作り
  • ZBrushのTranspose Masterでポーズを付ける
  • 顔追跡による擬似3D表示『Dynamic Perspective』
  • ZBrushでアヴァン・ガメラを作ってみる 甲羅の修正・脚の作り込み
  • ラクガキの立体化 胴体の追加
  • ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
  • viser:Pythonで使える3D可視化ライブラリ
  • Netron:機械学習モデルを可視化するツール
  • Manim:Pythonで使える数学アニメーションライブラリ
  • MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト
  • ZBrushで基本となるブラシ
  • モバイルバージョンを終了