Mitsuba编译安装踩坑记

CC BY-NC 4.0

Introduction#

简单记录下我前面两天(13、14日)编译Mitsuba1&Mitsuba2的踩坑过程。

1 Mitsuba是什么#

Mitsuba的主页在这里:link

简单来说,Mitsuba是一个面向图形学研究的渲染器,用来快速地验证自己的想法,主打的是容易上手、正确性有保障。

更新到Mitsuba2之后,主要增加了retargetable和differentiable两大特性。更多的介绍可以去看闫令琪大神的知乎回答。
如何评价Mitsuba2渲染器? - 闫令琪的回答 - 知乎

2 Windows下Mitsuba2的编译安装#

Requirements for Mitsuba2#

cmake
Python3(>=3.6)
Visual Studio 2019

2.1 get codes#

首先把代码下载到本地:

git clone --recursive git@github.com:mitsuba-renderer/mitsuba2.git

如果忘了加上–recursive选项,需要用下面的命令更新submodule:

git submodule update --init --recursive

但是实际操作中,这样更新会出一些小问题(某些子模块不太服帖)。所以还是推荐按照第一个指令进行代码的获取。

2.2 cmake#

在..\mitsuba\目录下,运行cmake:

cmake -G "Visual Studio 16 2019" -A x64

等待cmake执行完毕后,会出现一个mitsuba.sln文件。

2.3 生成#

用VS2019打开项目文件mitsuba.sln,修改选项为Release,生成解决方案。
等到生成完毕后,可以在mitsuba\dist\目录下找到mitsuba.exe,即代表生成成功。
在mitsuba\resources\data\scenes下面有一些可供测试的xml文件,按照如下的命令:

.\mitsuba.exe 1111.xml

即可渲染对应的文件。注意不要乱动文件目录,这些xml文件是有对应的依赖的。
如果希望能在任意位置使用mitsuba,可以将mitsuba.exe所在的目录添加至环境变量的path中。

3 Windows下Mitsuba1(0.6)的编译安装#

Mitsuba0.6有些年久失修了,整个编译安装的过程非常之痛苦。

Requirements for Mitsuba0.6#

Python3(>=3.6)
Boost
Python2.7
Scons2.5.1
Visual Studio 2017
Windows Kits

是的,你没有看错,你不仅需要Python2,还同时需要Python3。

3.1 安装Boost库(有可能不需要)#

Boost的官方网站:link
可以在官方网站上下载最新的压缩包,在本地进行解压。
保证此时系统默认的Python版本为Python3(命令行输入python,得到的信息是python3相关)。
在根目录下,执行bootstrap.bat,然后执行b2.exe。等待执行完毕。

然后需要在Visual Studio中配置boost库:
属性-配置属性-C/C++-常规-附加包含目录中,填上根目录;
配置属性-链接器-常规-附加库目录中,填上根目录\stage\lib。

3.2 配置cl.exe#

Path变量中,添加:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE

另外新建两个变量LIB和INCLUDE。

LIB:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\lib\x64
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt_enclave\x64

INCLUDE:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\include
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\cppwinrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt
C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt

检验:在命令行中输入cl,有相关信息即为配置成功。

3.3 get codes#

首先把代码下载到本地:

git clone git@github.com:mitsuba-renderer/mitsuba.git
git clone git@github.com:mitsuba-renderer/dependencies_win64.git

然后,将dependencies_win64文件夹重命名为dependencies,移动到mitsuba\目录下。

3.4 scons#

保证此时系统默认的Python版本为Python2(命令行输入python,得到的信息是python2相关)。
解压dependencies目录下的scons-2.5.1.zip,在..\mitsuba\dependencies\scons-2.5.1\下,输入:

python setup.py install

安装scons2.5.1。

回到mitsuba\目录,在命令行中输入:

copy build\config-win64-msvc2017.py .\config.py
scons

Unknown compiler version警告可以忽略。等到scons执行完毕,在mitsuba\dist\目录下可以找到mitsuba.exe和mtsgui.exe。 这里如果使用VS2019,会有一个非常神秘的错误,文件无法被编译。暂时没有找到对应的解决方案。

3.5 配置GUI#

如果直接运行mtsgui.exe,应该会Qt有关的错误。
只需要将mitsuba\dependencies\dist下的platforms文件夹拷贝至mitsuba\dist\下即可。

Summary#

至此,Mitsuba0.6和Mitsuba2在Windows下的编译安装过程全部解决。
我在WSL(Ubuntu18.04)下也尝试安装过Mitsuba0.5,遇到了一些问题,暂时没有解决。
希望世界上再也不要有人去使用老版本构建工具了。

@2020, Xinyu Ye. All rights reserved.