Accurate appearance preserving prefiltering for rendering displacement-mapped surfaces




  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: True
  • Replicability score: 5
  • Software language: C++,python
  • License: GPL3
  • Build mechanism: scons
  • Dependencies: build-essential, scons, mercurial, qt4-dev-tools, libpng12-dev, libjpeg-dev, libilmbase-dev, libxerces-c-dev, libboost-all-dev, libopenexr-dev, libglewmx-dev, libxxf86vm-dev, libpcrecpp0, libeigen3-devlibfftw3-dev, libglew-mx, python3 (scipy, numpy, opencv)
  • Documentation score {0,1,2}: 2
  • Reviewer: Julie Digne <>
  • Time spent for the test (build->first run, timeout at 100min): 60min

Source code information


Several changes have to be made for it to compile on linux (command line only). To build (once you've fixed all files, see below) go to the mitsuba folder and "cp build/"  then run scons.
 Install mitsuba required dependencies (see above)
 Required code changes: 
 * mitsuba/include/mitsuba/core/tls.h : add #include "../../../dependencies/include/GL/glew.h" 
 * mitsuba/src/shapes/shellmap_heightfield.cpp :
 line 376 cast p.z into (double)p.z
 * mitsuba/src/utils/precomp/bsdfSimulator_proc.cpp:
 line 106: cast normal.z into (double)normal.z;
 line 113:  cast dot(normal, m_wi)) into (double)dot(normal, m_wi))
 * mitsuba/src/utils/precomp/effBrdfEstimator.cpp :
 line 133: change Float w into double w ; line;
 line 225: cast normal.z into (double)normal.z;
 line 232:  cast dot(normal, m_wi)) into (double)dot(normal, m_wi))
 * mitsuba/src/utils/precomp/normalMipmap.cpp:
 lines 223 and 286 replace kappa by (double)kappa
 * mitsuba/src/utils/precomp/multi_vmf.h change Float(rand()) / Float(RAND_MAX) into  (double)(Float(rand()) / Float(RAND_MAX))
 Then go to data/render_twill/ and run LD_LIBRARY_PATH=../../mitsuba/dist/ ../../mitsuba/dist/mitsuba env_shellmap_1.xml (for example)
 For running the python script, in mitsuba/build/SConscript.configure, make your python version (3.8 in my case) you're running is listed in python_versions line 34 and in data/scons/detect_python do the same on line 60 and add 'boost_python%s' % version to the base paths line 45.
 In file lines 39 and 79 replace slashes by backslashes (but not the escaping-slashes)
 Finally do not forget to source after setting MITSUBA_PYVER to your python version number

If you want to contribute with another review, please follow these instructions.

Please consider to cut/paste/edit the raw JSON data attached to this paper.