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が登場しています↓
関連記事
プロシージャル手法に特化した本が出てるみたい(まだ買わないけ...
OpenCVの超解像(SuperResolution)モジュ...
SIGGRAPH Asia
WordPressプラグインによるサイトマップの自動生成
Mayaのポリゴン分割ツールの進化
リアルタイム レイトレーシングAPI『DirectX Ray...
素敵なパーティクル
UnityのGameObjectの向きをScriptで制御す...
ラクガキの立体化 分割ラインの変更・バランス調整
映画『シン・仮面ライダー』 メイキング情報まとめ
AnacondaとTensorFlowをインストールしてVi...
レンダラ制作はOpenGL とか DirectX を使わなく...
WebGL開発に関する情報が充実してきている
書籍『The Art of Mystical Beasts』...
ZBrushで仮面ライダー3号を造る ベース編
MeshroomでPhotogrammetry
Netron:機械学習モデルを可視化するツール
Photoshopで作る怪獣特撮チュートリアル
ブラウザ操作自動化ツール『Selenium』を試す
ZBrushで仮面ライダー3号を造る 仮面編 Dam Sta...
仮想関数
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身...
機械学習について最近知った情報
1枚の画像からマテリアルを作成できる無料ツール『Materi...
ニューラルネットワークと深層学習
ZBrush キャラクター&クリーチャー
書籍『開田裕治 怪獣イラストテクニック』
OpenMayaRender
LLM Visualization:大規模言語モデルの可視化
uvでWindows11のPython環境を管理する
Point Cloud Libraryに動画フォーマットが追...
生物の骨格
C#で使える遺伝的アルゴリズムライブラリ『GeneticSh...
CycleGAN:ドメイン関係を学習した画像変換
Transformer Explainer:テキスト生成モデ...
オープンソースの人体モデリングツール『MakeHuman』の...
参考になりそうなサイト
書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読...
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン ...
Theia:オープンソースのStructure from M...
3Dスキャンに基づくプロシージャルフェイシャルアニメーション
3Dスキャンしたテクスチャから照明を除去するUnityツール...
コメント