Mitsuba Renderer 導入(Mac OS X)
はじめに
物理ベースのレンダラーである☘mistuba renderer☘を研究で使用するかもしれないのでMac OS X上でビルドしました。
ビルド段階で結構つまずいてしまった...
☘mitsuba renderer☘
mitsuba rendererはC++で実装されている物理ベースのレンダラーでMetropolis Light Approach やボリュームレンダリングに優れているらしいです
自分でビルドすればSpectral Renderingにも対応できるとのこと
GitHubからfork
上記のページに記載されているページからリポジトリをcloneしようとしましたが、 現在は使用されていないらしくcloneできませんでした...
Mercurialというバージョン管理システムからGitに移行したようです
調べるとGitHubのリポジトリがあったのでそこからfork🍴しローカルにclone
自分の環境でのビルドを目標に、上記のページからDocumentationをダウンロードし、それに沿って進めていきます
config指定
まずはconfigファイルを指定する必要があるようです
自分のローカルのmitsubaディレクトリ直下のbuildディレクトリにLinux、Windows、Mac OSのconfigファイルがあります
自分の環境はmac OS Mojave version 10.14.5なので以下を実行
:mitsuba $ cp build/config-macos10.12-clang-x86_64.py config.py
※mitsuba直下にconfig.py!自分はbuild直下に置いてて詰んでました...😭
scons
mitsubaはsconsというPythonベースのビルドツールを使ってビルドをするらしいので、sconsをインストール
SCons: A software construction tool - SCons
$ pip install scons
また、コンパイルの際にdependenciesというものが必要になるらしく、以下からclone
後々libpngというのも必要になるのでインストール
$ brew install libpng
さて準備が整ったということでsconsを実行
以下のようになれば成功!
$scons scons: done building targets.
※ 自分はXcodeのコマンドラインツールを入れているのにMacOSX10.12.sdkがないですよと言われErrorで詰んでました... 以下のようにシンボリックリンクをつければうまくいきました!
$ sudo ln -s [version I had][version required]
うまくビルドができていればmitsubaディレクトリに追加されているはず!
running mitsuba
拡散反射面のボックスが2つ置かれたコーネルボックスとDipoleモデルを用いた半透明物質のサンプルシーンを試しにレンダリングしてみました。
(表示されているのはOpenEXRイメージをpngに変換したものなのでカラーバンディングが目立ちます...)
まとめ
やったこと
- mitsuba renderer なるものを自分の環境でビルドして動かしてみた
- mitsuba renderer のドキュメントに軽くのぞいた
わかったこと
- 以前のサイトの方法は古い...?? 自分はできなかった
- scenceファイルはXML形式!
- Spectral Rendering も扱えるけど自分で実装が必要
次やりたいこと
- 他のレンダラーについても調べてみる
- レンダリング手法の基本、実装について学ぶ
- Ray Tracing in One Weekend(👈すごく気になる!!)