No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Position-Free Monte Carlo Simulation for Arbitrary Layered BSDFs

Yu Guo, Miloš Hašan, Shuang Zhao. In ACM Transactions on Graphics (SIGGRAPH Asia 2018). [Project page]


This is a branch of the Mitsuba (0.6.0) renderer (official repo:


Linux (Preferred, Tested on Ubuntu 16.04)

  • $ git clone
  • $ cd layeredbsdf/
  • $ mv
  • $ sudo apt install build-essential scons mercurial libpng12-dev libjpeg-dev libilmbase-dev libxerces-c-dev libboost-all-dev libopenexr-dev libglewmx-dev libxxf86vm-dev libpcrecpp0v5 libeigen3-dev libfftw3-dev
  • $ scons -j x (x = # of cpu cores)
  • source Now you can render scenes
  • $ mitsuba xxx.xml

Windows (Tested on Windows 10 x64)

  • install visual studio 2017
  • clone this git to local folder
  • go to folder ..\layeredbsdf\
  • rename to
  • download dependencies

Examples in paper (click image to download scene files)

Scene file (.xml) explanation

  • <scene version="0.6.0"> (Here using 0.6.0, but not 0.5.0)
  • <integrator type="path_layered"> (path_layered preferred, but can still use path, volpath or volpath_simple instead)
  • <bsdf type="multilayered"> ... </bsdf> (BSDF type is multilayered, both our uni-dir and bi-dir methods are implemented here)


  • Default precision in is single. If you find too many warnings or even it is crashed when rendering scenes, you should try double precision instead. (Already provided in
  • conductor and dielectric are not supported now, use roughconductor (a=0.001) and roughdielectric (a=0.001) instead.
  • Welcome to report bugs and leave comments (Yu Guo: