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"/>
という風に書く必要があります。
Windowsでmitsubaをコンパイルする
動機
法線分布関数(NDF)にGGXなどのモデルではなく計測してきたデータを入れたかったので、windowsにmitsubaのコンパイル環境を作りました。
Visual Studio 2017版
Visual Studio 2017(v15)のインストール
https://docs.microsoft.com/ja-jp/visualstudio/releasenotes/vs2017-relnotes
※後の工程で、Sconsに、Visual Studio 2017(v15)を入れてるのに、Visual Studio 2015(v14)が入っているよと言われてしまうバグ?がある。これが出たらVisual Studio 2010でやるといいと思います。(Visual Studio 2013はインストールでエラーがたくさん出ました)
Python2.7のインストール(パス通す)
https://www.python.org/downloads/windows/
Scons2.5.1のインストール
(v3.1.2でも良さそう )
pip install scons
また、
pip2 install scons
もしくは、
https://sourceforge.net/projects/scons/files/scons/2.5.1/
からscons-2.5.1-setup.exeをダウンロードして起動
Qtのインストール(パス通す)
https://www.qt.io/jp/download_short
Mitsubaのダウンロード
https://github.com/mitsuba-renderer/mitsuba
dependenciesのダウンロード
https://github.com/mitsuba-renderer/dependencies_win64
ファイル操作
mitsuba/build/config-win64-msvc2017.pyをrootにコピー
config.pyに改名
ダウンロードしてきたdependenciesをmitsubaのrootに置く
コマンドプロンプトを開く
> cd mitsuba
> scons
うまくいけば
> scons: done building targets.
と出る
そしてmitsuba/dist/mitsuba.exeが生まれている
試しにコーネルボックスをレンダリング
http://www.mitsuba-renderer.org/download.html
cbox.xmlの
<scene version="0.5.0">
を
<scene version="0.6.0">
に変更する
> mitsuba.exe cbox.xml
でexrファイルができる
[追記]
久しぶりにmitsuba.exeでレンダリングしようとすると以下のエラーが出た。
This application failed to start because it could not to find or load the Qt platform plugin “windows” in””. Reinstalling the application may fix this problem.
こちらの記事を参考に解決をしました。
手順としては、
windows(c)→ ユーザー→ ユーザー名→ AppDate→ Local→ Microsoft→ Onedrive→ Update
Updateを開いてOneDriveSetUp.exeをダブルクリックする
とのことでした。
手順を経た後、コマンドプロンプトを再起動し、
> mitsuba.exe cbox.xml
を実行すると無事レンダリングできました。
Visual Studio 2010版
Visual Studio 2010(v10)のインストール
https://visualstudio.microsoft.com/ja/vs/older-downloads/
Python2.7のインストール(パス通す)
https://www.python.org/downloads/windows/
Sconsのインストール
pip2 install scons
Qtのインストール(パス通す)
https://www.qt.io/jp/download_short
Mitsubaのダウンロード
https://www.mitsuba-renderer.org/download.html
dependenciesのダウンロード
https://www.mitsuba-renderer.org/repos/
ファイル操作
mitsuba/build/config-win64-msvc2010.pyをrootにコピー
config.pyに改名
ダウンロードしてきたdependencies_windowsをdependenciesにRenameしてmitsubaのrootに置く
コマンドプロンプトを開く
> cd mitsuba
> scons
うまくいけば
> scons: done building targets.
と出る
そしてmitsuba/dist/mitsuba.exeが生まれている
試しにコーネルボックスをレンダリング
http://www.mitsuba-renderer.org/download.html
cbox.xmlのシーンバージョンが
<scene version="0.5.0">
であることを確認
> mitsuba.exe cbox.xml
でexrファイルができる