オープンソースの汎用レンダラ『Mitsuba 2』

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のバイナリやコード自体はまだ公開されていないみたい。


スポンサーリンク


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というセッションが設けられているみたい。

個人的に、2019年はCG関連のディープラーニング(というか微分可能)の動向が熱かった。


CGのためのディープラーニング
もう半年前のことですが、昨年12月に東京国際フォーラムで開催されたSiggraph Asia 2018 Tokyoで聴講したCourse CreativeAI:Deep Learning for Graphicsの復習を(今頃)しておこうか...

3Dディープラーニング用のPyTorchライブラリ『Kaolin』
NVIDIAから3D系のディープラーニング研究のためのPyTorchライブラリが公開された。まだベータ版だから、これからどんどん充実していくんでしょうね。読み方はカオリンで良いのかな?(なんかかわいい)KaolinKaol...


スポンサーリンク

関連記事

ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
Raspberry Pi
CGのためのディープラーニング
グローバルイルミネーションに手を出す前に、やり残したことがあるんじゃない?
Mechanizeで要認証Webサイトをスクレイピング
OpenCVのバージョン3が正式リリースされたぞ
UnityでOpenCVを使うには?
PythonのHTML・XMLパーサー『BeautifulSoup』
ラクガキの立体化 モールドの追加
動的なメモリの扱い
フリーで使えるスカルプト系モデリングツール『Sculptris 』
ハリウッド版「GAIKING」パイロット映像
トランスフォーマー/ロストエイジのメイキング
この本読むよ
WordPressのテーマを自作する
Unityの薄い本
UnityプロジェクトをGitHubで管理する
タマムシっぽい質感
ゴジラ(2014)のディティール制作の舞台裏
ニューラルネットワークの構造を可視化するフレームワーク『TensorSpace.js』
Mayaのレンダリング アトリビュート
なんかすごいサイト
オープンソースのネットワーク可視化ソフトウェアプラットフォーム『Cytoscape』
軽量なジオメトリ処理ライブラリ『libigl』
OpenMVSのサンプルを動かしてみる
UnityでARKit2.0
CGWORLD CHANNEL 第21回ニコ生配信は『シン・ゴジラ』メイキングスペシャル!
UnityでPoint Cloudを表示する方法
ZBrush用トポロジー転送プラグイン『ZWrap Plugin for ZBrush』
物理ベースレンダリングのためのマテリアル設定チートシート
AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
人体モデリングできるBlenderアドオン『ManuelBastioniLAB』
Google製オープンソース機械学習ライブラリ『TensorFlow』のWindows版が公開された
iOSデバイスのためのフィジカル・コンピューティングツールキット『konashi(こなし)』
GoogleのDeep Learning論文
データサイエンティストって何だ?
Google Earth用の建物を簡単に作れるツール Google Building Maker 公...
映画『ジュラシック・ワールド』のVFXメイキング
オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う
3Dオブジェクトの確認・変換に便利なフリーウェア『MeshLab』
ZBrushで仮面ライダー3号を造る 仮面編 PolyGroup作成に再挑戦
MythTV:Linuxでテレビの視聴・録画ができるオープンソースプロジェクト

コメント