개요
Mitsuba3는 최근에 공개된 differentiable path tracer이다. 기존의 rasterization이나 NeRF(Neural Radiance Field) 가 사용하는 volumetric rendering과는 다르게 path tracer는 light sampling 과정과 ray intersection 과정의 gradient를 계산하기 어렵다. 해당 렌더러는 EPFL의 Wenzel Jakob 교수가 이끄는 연구팀의 differentiable path tracing 연구들을 토대로 만들어졌다.
Mitsuba3의 매우 큰 장점은 복잡한 렌더러를 python으로 작성할 수 있다는 것이다. Mitsuba3는 c++을 기반으로 작성되었지만, pybind11와 자체 제작한 Dr.Jit(Just-in-time compiler for differentiable rendering)을 통해 큰 어려움 없이 python으로도 렌더링의 구성 요소들을 작성하여 script로 실행할 수 있게 되었다. 물론 python이나 c++이나 OOP 기반이지만, c++을 코딩하면서 다양한 실수들을 python에서는 겪지 않아도 된다. 내가 생각하는 제일 큰 장점은, c++은 수정하면 다시 이 시스템을 build하여 돌려봐야 하지만, python 기반으로 수정을 한다면 그럴 필요가 없다는 것이다. 덕분에 다양한 구성 요소들을 빠르게 테스트해볼 수 있는 장점을 가졌다. 마지막으로, pytorch와도 연동이 되어 렌더러에 gradient가 흐르도록 하였다.
석사동안에는 선배가 개발한 optix-based renderer를 기반으로 렌더링을 했지만, 앞으로 딥러닝과 렌더링의 조합을 기대하면서 현재 사용중인 기능들을 Mitsuba3 기반으로 다시 개발하고자 한다.
개발 목표
관련 글
All
Search