Mitsuba란 PBRT로부터 파생되어 나온 물리 기반 렌더러 프로그램이다. 단순히 렌더링 테스트를 할 수 있을 뿐만 아니라 C++를 통해 본인만의 렌더링 알고리즘을 구현해 테스트하는 것도 가능하다. 그래픽스 전공은 아니지만, 석사 시절에 두 학기동안 그래픽스 수업을 들으면서 실습 및 프로젝트 진행이 필요했고, 그 과정에서 이를 활용하기 위해 설치법을 정리했었다. (따라서 설치법이 다소 올드합니다. 이에 대해서는 차후에.. 아마 관심이 더 생길 때에.. 찾아보고 최신 버전 지원등에 대해 업데이트 예정입니다.)
설치 및 관련 문서 등은 아래 사이트를 통해 확인할 수 있다.
https://www.mitsuba-renderer.org/
윈도우에서 Mitsuba를 설치하기 위해 아래 사이트에 적힌 방법을 토대로 진행을 했으며, 문제점이 발생하는 부분에 대해서는 직접 고쳐가며 설치를 수행했다. 물론 Ubuntu와 Mac에서도 설치할 수 있는 방법들이 있는 것 같았으나, 이 당시 윈도우 환경에서의 개발을 진행했으므로 이 글에서는 윈도우 상에서의 설치만 다룬다.
https://www.ics.uci.edu/~yug10/projects/mitsuba/mitsuba_install.md.html
조금 당연한 이야기긴 하지만, Windows에서의 개발이 필요한 렌더러이기 때문에 비주얼 스튜디오가 필요했다. 2017년도에 이 렌더러를 설치했을 당시에는 2015 버전을 지원하지 않아 비주얼 스튜디오 2010이나 2013이 필요했고, 이를 위해 당시에는 2013 버전을 사용했다. 디테일한 비주얼 스튜디오 설치법은 여기선 생략하겠다.
이 또한 최근 버전인 Python 3의 지원은 확인하지 못했다. 확인이 필요한 부분...
윈도우 환경에서 파이썬을 설치하기 위해 우선 Anaconda를 설치한다.
https://www.anaconda.com/download/#windows
파이썬 버전에 맞게 설치할 수 있는데, 여기서는 2.7 버전에 맞게 설치를 진행한다.
아나콘다의 설치가 끝나면 아래 링크에서 파이썬 2.7 버전 설치 파일을 다운받아 설치를 수행한다.
https://www.python.org/downloads/windows/
미쯔바를 컴파일해서 실행 파일을 만들어내기 위해 Scons를 사용한다. Scons는 아래 링크에서 다운받을 수 있다.
https://scons.org/pages/download.html
선택사항인데, Gradient-domain path tracing을 쓰기 위해서 필요하다.
PyWin32: https://sourceforge.net/projects/pywin32/files/pywin32/Build216/
Gradient-domain path tracing: https://github.com/mmanzi/gradientdomain-mitsuba
공식 사이트에서 배포판 버전으로 처음부터 다운로드받을 수 있는 듯하나, 연구 목적으로 설치를 하는 것이므로 컴파일 이전의 형태를 아래 링크에서 받도록 한다. 다운받은 압축파일은 원하는 경로에 압축을 해제한다.
https://www.mitsuba-renderer.org/repos/mitsuba
위에서 받은 미쯔바의 저장 경로로 들어가 해당 경로 내에 dependencies 폴더를 생성한다. 이 후, 아래 링크에서 dependencies를 받아 저장해준다. 윈도우용 설치이기 때문에 여기선 윈도우용 dependencies를 다운로드한다.
https://www.mitsuba-renderer.org/repos/dependencies_windows
미쯔바가 설치된 경로의 build 폴더로 들어가면 여러 환경에 해당하는 파이썬 코드 형태의 config파일이 존재한다. 여기서는 VS2013 환경에 맞게 설치할 예정이기 때문에 이에 맞는 파이썬 파일을 복사한다. 복사한 config 파일은 미쯔바 메인 폴더에 붙여넣고, 이름을 config.py로 바꿔준다.
SCons 컴파일은 아나콘다 프롬프트를 통해 수행한다. 아나콘다 프롬프트를 실행하고, 콘솔 창에서 미쯔바가 설치된 경로로 이동한다. 다음 명령어를 입력하여 컴파일을 시작한다.
scons -j8
(-j8은 8개의 CPU 코어를 써서 병렬 컴파일을 수행하겠다는 의미. 환경에 맞게 인자를 입력하면 됩니다.)
(여기서 발생했던 문제!)
Could not compile a simple C++ fragment, verify that cl is installed.
다음과 같은 오류 메시지가 출력됐을 경우, boost 라이브러리를 찾을 수 없음을 의미한다. 이 경우, build 폴더 내에 있는 SConscript.configure 파일의 내용을 아래 사진과 같이 수정한다.
볼륨기반 렌더링을 위한 설정이라고 한다. 아래 링크에 있는 소스 코드를 다운로드한 뒤, 미쯔바가 설치된 경로 내 /src/volume/ 폴더에 저장한다.
https://www.ics.uci.edu/~yug10/projects/mitsuba/gridvolumeSimple.cpp
이 후, SConscript.configure 파일에 다음의 내용을 추가한다. 내용을 추가하면 scons를 통해 미쯔바를 다시 컴파일해 갱신된 배포판을 얻는다.
plugins += env.SharedLibrary('gridvolumeSimple', ['gridvolumeSimple.cpp'])
테스트는 콘솔 환경과 GUI 환경에서 모두 가능하다.
콘솔 환경에서 테스트 할 경우, 아래 명령어를 입력해서 수행한다.
mitsuba $PATH_TO_XML\test_emitter.xml
혹은 dist 폴더에 생성된 exe 파일을 실행한 후, 원하는 xml 파일을 불러와 렌더링을 수행한다.