Mitsuba2をビルドする (Windows編)
2020/03/04にMitsuba2がリリースされました。
Mitsuba rendererからの大きな変更点は以下のとおりです。
今回は、Mitsuba2をビルドし、実際にシーンファイルをレンダリングします。
次に書く記事では、微分可能レンダリングを紹介する予定です。(多分)
環境構築
Visual Studioのインストール
リンクからVisual Studio 2019をインストールします。
https://visualstudio.microsoft.com/ja/downloads/
「C++によるデスクトップ開発」の項目にチェックを入れる。
gitのインストール
リンクからGitをインストールします。
https://visualstudio.microsoft.com/ja/downloads/
Pythonのインストール
リンクからGitをインストールします。(minicondaを使っても良さそう、むしろそっちを使うべきかも)
https://www.python.org/downloads/release/python-375/
64bit版をインストールする必要があるので、Windows x86-64 executable installerをダウンロードします。
Pythonのバージョンは公式で動作確認がされている3.75を使うのが良いと思います。
3.8.2を用いて、Pythonバインディングをするときにエラーが出ました。
具体的には、mitsubaモジュールのパスを通して、pythonにimport mitsubaしても、core_ext・render_extを読み込めない、DLLがロードできないとエラーが出ます。
この時、Add Python 37 to Pathのチェックマークを押し忘れないようお気をつけください。
押し忘れたら以下の記事を参考に環境変数にPythonのパスを追加してください。
https://www.javadrive.jp/python/install/index3.html
Cmakeのインストール
リンクからcmake-3.17.0-win64-x64.msiをダウンロードし、インストールします。
https://cmake.org/download/
ソースコードのクローン
公式のドキュメントを参考にソースコードをクローンします。
コマンドプロンプトを起動し、作業したいディレクトリに移動します。
以下のコマンドを入力します。
git clone --recursive https://github.com/mitsuba-renderer/mitsuba2
参考:
コマンドプロンプトを起動する | コマンドプロンプトの使い方
cdコマンドの使い方を簡単にご紹介【Windowsコマンド集】
ビルド
クローンしたmitsubaのルートディレクトリに移動します。
以下のコマンドを入力します。
mkdir build cd build cmake .. -G "Visual Studio 16 2019" -A x64 ※ build作らずルートでやる場合はこっち cmake -G "Visual Studio 16 2019" -A x64
Generating doneと出れば成功です。
次にディレクトリ内にできた、mitsuba.slnを起動し、MitsubaをVisual Studio 2019で開きます。
Visual Studio 2019上でビルドします。(数分かかる)
========== ビルド: 166 正常終了、0 失敗、0 更新不要、3 スキップ ==========
という感じで出力されればビルド完了です。
コーネルボックスの描画テスト
今回は、コーネルボックスをレンダリングします。
ビルドまで終わっていれば、mitsuba>dist>mitsuba.exeが生まれています。
レンダリングする時は、以下のコマンドを入力することでレンダリングできます。
mitsuba\dist\mitsuba.exe scenefile.xml
シーンファイルの準備
コーネルボックスのシーンファイル(.xml)とオブジェクトのファイル(.obj)を準備します。
以下の共有フォルダからcbox.zipをダウンロードします。
drive.google.com
cbox.zipを解凍します。
mitsubaの直下にsceneフォルダを作ります。
sceneフォルダに解凍したcboxフォルダを置きます。
シーンファイルの作り方
お作法
シーンファイルの作り方は、公式ドキュメントを見ると良いと思います。(今回は触れません)
Plugin reference
旧バージョンのシーンファイルを使いまわす
Mitsuba1で使っていたシーンファイルを使いまわしたいという方は、
以前のバージョンのシーンファイルを実行時にコマンドライン引数に設定すると、自動でMitsuba2のシーンファイルに書き換えてくれるようです。
古いバージョンのシーンファイル
<scene version="0.6.0">
公式ドキュメントより
All of these changes can be automated, and Mitsuba performs them internally when it detects a scene with a version number lower than 2.0.0. Invoke the mitsuba binary with the -u parameter if you would like it to write the updated scene description back to disk.
旧バージョンのシーンファイルを書き換える
ご自身で、Mitsuba1のシーンファイルを書き換えたい方は、公式ドキュメントを参考にすると良いと思います。
Differences to Mitsuba 0.6
具体的には、
<float name="focusDistance" value="1000"/> <transform name="toWorld"> <translate x="0" y="0" z="-100"/>
というコードを
<float name="focus_distance" value="1000"/> <transform name="to_world"> <translate value="0, 0, -100"/>
という風に書く必要があります。