kugi's notebook

やったこと、思ったことなどつらつらと書きます

Mitsuba Renderer 導入(Mac OS X)

はじめに

物理ベースのレンダラーである☘mistuba renderer☘を研究で使用するかもしれないのでMac OS X上でビルドしました。

ビルド段階で結構つまずいてしまった...

mitsuba-renderer.org

☘mitsuba renderer☘

mitsuba rendererはC++で実装されている物理ベースのレンダラーでMetropolis Light Approach やボリュームレンダリングに優れているらしいです

自分でビルドすればSpectral Renderingにも対応できるとのこと

GitHubからfork

上記のページに記載されているページからリポジトリをcloneしようとしましたが、 現在は使用されていないらしくcloneできませんでした...

Mercurialというバージョン管理システムからGitに移行したようです

調べるとGitHubのリポジトリがあったのでそこからfork🍴しローカルにclone

自分の環境でのビルドを目標に、上記のページからDocumentationをダウンロードし、それに沿って進めていきます

config指定

まずはconfigファイルを指定する必要があるようです

自分のローカルのmitsubaディレクトリ直下のbuildディレクトリにLinuxWindowsMac 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

github.com

後々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モデルを用いた半透明物質のサンプルシーンを試しにレンダリングしてみました。

f:id:kugi_masa:20190704135748p:plain
拡散反射ボックスinコーネルボックス

f:id:kugi_masa:20190704135736p:plain
Dipoleモデルを使用した半透明物質の表現

(表示されているのはOpenEXRイメージをpngに変換したものなのでカラーバンディングが目立ちます...)

まとめ

やったこと

  • mitsuba renderer なるものを自分の環境でビルドして動かしてみた
  • mitsuba renderer のドキュメントに軽くのぞいた

わかったこと

  • 以前のサイトの方法は古い...?? 自分はできなかった
  • scenceファイルはXML形式!
  • Spectral Rendering も扱えるけど自分で実装が必要

次やりたいこと