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

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

Mitsuba – physically based renderer

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

2019年 追記:Siggraph Asia 2019でMitsuba 2が発表された↓
Mitsuba 2:オープンソースの物理ベースレンダラ
5年前にオープンソースの物理ベースレンダラ「Mitsuba」でちょっと遊んでみたことがあった↓Siggraph Asia 2019でMitsuba 2が発表されたらしい↓Mitsuba 2: A Retargetable Forw...


スポンサーリンク

関連記事

Faster R-CNN:ディープラーニングによる一般物体検出手法
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
NumSharp:C#で使えるNumPyライクな数値計算ライブラリ
Vancouver Film Schoolのデモリール
ZBrushでアヴァン・ガメラを作ってみる 口内の微調整・身体のライン修正
Model View Controller
Pythonのベイズ統計ライブラリ『PyMC』
OpenCLに対応したオープンソースの物理ベースレンダラ『LuxRender(ルクスレンダー)』
AMIMOTO(PVM版)で作成したインスタンスをAMIMOTO (HVM版)へ移行する
Stanford Bunny
トランスフォーマー/ロストエイジのメイキング
OpenCV 3.1のsfmモジュールのビルド再び
OpenCVでPhotoshopのプラグイン開発
ラクガキの立体化
オープンソースの人体モデリングツール『MakeHuman』のAPI開発プロジェクトがスタート
ハリウッド版「GAIKING」パイロット映像
ジュラシック・パークのメイキング
Kaolin:3Dディープラーニング用のPyTorchライブラリ
BlenderのRigifyでリギング
布地のシワの法則性
HerokuでMEAN stack
Google App EngineでWordPress
Super Resolution:OpenCVの超解像処理モジュール
ROMOハッカソンに行ってきた
第20回 文化庁メディア芸術祭『3DCG表現と特撮の時代』
konashiのサンプルコードを動かしてみた
OpenCVで顔のモーフィングを実装する
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が公開された
まだ続くブログの不調
AmazonEC2のインスタンスをt1.microからt2.microへ移行する
Blender 2.81でIntel Open Image Denoiseを使う
『スター・ウォーズ フォースの覚醒』のVFXブレイクダウン まとめ
AR (Augmented Reality)とDR (Diminished Reality)
バージョン管理の履歴を可視化するツール『Gource』
粘土をこねるようなスカルプトモデリング
Mayaでリアルな布の質感を作るチュートリアル
OpenGVのライブラリ構成
人体モデリングできるBlenderアドオン『ManuelBastioniLAB』
ZBrush4新機能ハイライト 3DCG CAMP 2010
3Dオブジェクトの確認・変換に便利なフリーウェア『MeshLab』
JavaによるCGプログラミング入門サイト (日本語)
顔追跡による擬似3D表示『Dynamic Perspective』

コメント