オープンソースの物理ベースレンダラ『Mitsuba』をMayaで使う

オープンソースのグローバルイルミネーションレンダラのMitsuba

Mitsuba – physically based renderer

Screenshot of www.mitsuba-renderer.org

Mitsubaは、PBRTのスタイルに則った研究指向のレンダリングシステムで、多くのインスピレーションを得ています。
Mitsubaは移植性の高いC++で記述されており、偏りのない手法と偏りのない手法を実装し、現在のCPUアーキテクチャを対象とした高度な最適化が含まれています。
Mitsubaは非常にモジュール式です:コアライブラリの小さなセットと、マテリアルや光源から完全なレンダリングアルゴリズムに至るまでの機能を実装する100種類を超えるプラグインで構成されています。

他のオープンソースレンダラーと比較して、MitsubaはMetropolis Light Transportのパスベースの定式化やボリュメトリックモデリングアプローチなどの実験的レンダリング技術に重点を置いています。
そのため、まだ主流のレンダラーへの道を見つけていないようなテクニックを試してみたい人にとっては本当に興味があるかもしれませんし、この領域での研究のための強固な基盤も提供します。

このレンダラーは現在Linux, MacOS X, Microsoft Windowsに対応し、x86, x86_64プラットフォームでのSSE2最適化を利用しています。
これまでのところ、その主な用途はコンピューターグラフィックスのアルゴリズム開発のテストベッドとしてでしたが、他にも多くの興味深いアプリケーションがあります。

Mitsubaには、シーンをインタラクティブに探索するためのコマンドラインインターフェイスとグラフィカルフロントエンドが付属しています。
ナビゲート中、大まかなプレビューが表示され、すべての動きが停止するとすぐに精度が向上します。
視点が選択されると、幅広いレンダリング技術を使用して画像を生成し、それらのパラメーターをプログラム内から調整できます。


スポンサーリンク

ソースコードはGitHubにある↓
https://github.com/mitsuba-renderer/mitsuba


スポンサーリンク


いつか試そうと思ってだいぶ時間が経ってしまったんだけど、MitsubaにはMayaと連携するためのプラグインもあるので試してみた。
https://github.com/mitsuba-renderer/mitsuba

ところが、このプラグイン、想像してたのと違って、あんまり連携感がない。Maya上のオブジェクトを描画できるわけだけど、もろもろの設定はMayaのGUIではなく、結局xmlの設定ファイルを直接いじるタイプだった。(MayaのGUI上でxmlを編集するエディタが立ち上がる。)

そんで、もうちょっと調べてみたら、有志(?)でMitsubaをPythonでラップしてプラグインっぽくした人がいた。→Installing MitsubaForMaya
プラグインコード(Python)とサンプルプロジェクトがGitHubに上がっている。→MitsubaForMaya

で、やってみた。このプラグインは外部のMitsubaのexeを呼び出す操作をラップしてMayaのGUI操作ライクにしてくれてるんだけど、コードの中に絶対パスを書いていて、エラーまみれになった。GUIはよくできてたんだけどね。もうちょっと中身読めば修正できそうな気もする。

で、いったんMayaで動かすのはあきらめて、MitsubaのスタンドアローンのGUIアプリを実行してみた。レンダリングするシーンファイルのサンプルが公式のダウンロードページに置いてある。試したのは毛糸のマフラーみたいなやつSiggraph2010で発表されたこの論文のデータね。

サンプルのscarfシーンをMitsubaでレンダリングした。

サンプルのscarfシーンをMitsubaでレンダリングした画像をPhotoshopで補正した。



まるで実写みたい。
Pythonのインターフェイスがあるみたいだから、上手く使えばAPIっぽく自前のプログラムから使えると思うんだけど、なかなかサンプルが見当たらない。

http://rgl.epfl.ch/publications/NimierDavidVicini2019Mitsuba2


スポンサーリンク

関連記事

ZBrushCore
C++ 標準テンプレートライブラリ (STL)
ZBrushのハードサーフェイス用ブラシ
Boost オープンソースライブラリ
ZBrushで仮面ライダー3号を造る 仮面編 横顔のシルエットをリファレンスに合わせる
UnityでOpenCVを使うには?
3Dグラフィックスの入門書
SculptrisとBlenderで作ったGodzilla 2014 (Fan Made)
UnityからROSを利用できる『ROS#』
ブラウザ操作自動化ツール『Selenium』を試す
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
3Dデータ処理ライブラリ『Open3D』
WordPressのテーマを自作する
Konashiを買った
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
GoB:ZBrushとBlenderを連携させるアドオン
画像からカメラの3次元位置・姿勢を推定するライブラリ『OpenGV』
C#で使える機械学習ライブラリ『Accord.NET Framework』
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
Paul Debevec
Pythonのベイズ統計ライブラリ『PyMC』
Webスクレイピングの勉強会に行ってきた
Leap MotionでMaya上のオブジェクトを操作できるプラグイン
リメイク版ロボコップスーツのメイキング
アニゴジ関連情報
ヒーローに変身なりきりアーケードゲーム『ナレルンダー』
OpenCVでPhotoshopのプラグイン開発
Maya API Reference
Mechanizeで要認証Webサイトをスクレイピング
インタラクティブにComputer Visionコーディングができるツール『Live CV』
テスト
コンピュータビジョン研究のためのUnreal Engineプラグイン『UnrealCV』
OpenCV 3.1のsfmモジュールのビルド再び
機械学習手法『SVM(Support Vector Machine)』
After Effects全エフェクトの解説(6.5)
Windows10でPyTorchをインストールしてVSCodeで使う
ZBrushで仮面ライダー3号を造る 仮面編 Dam Standardブラシでディティールを彫る
AndroidもopenGLも初心者さ (でもJavaは知ってるよ)
天体写真の3D動画
『ピクサー展』へ行ってきた
ZBrushでUndo Historyを動画に書き出す
「ベンジャミン·バトン数奇な人生」でどうやってCGの顔を作ったのか

コメント