On-line Learning of Parametric Mixture Models for Light Transport Simulation




  • Paper topic: Rendering
  • Software type: Code
  • Able to run a replicability test: False
  • Replicability score: 1
  • Software language: C/C++
  • License: GPL
  • Build mechanism: IDE Project (VS,..), SCONS
  • Dependencies: mitsuba
  • Documentation score {0,1,2}: 2
  • Reviewer: Nicolas Bonneel <nicolas.bonneel@liris.cnrs.fr>
  • Time spent for the test (build->first run, timeout at 100min): 100min

Source code information


I tried compiling the code on Windows+Python3.6+VS2017. 

First, the Sconscriptshould be updated to have "print ...." changed to "print(...)". This includes at lines 23, 29-30, 100, 104, 178, 184, 189, 194, 199, 203, 217, 221, 224, 227, 230, 237, 240, 244, 247, 250, 253, 257, 260, 264, 279, 282, 299--306 of Sconscript.configure and line 30 of Sconscript.install.

Then the config-win64-msvc2010.py should be updated. You need to add '/arch:AVX' to CXXFLAGS, and change MSVC_VERSION    = '10.0' to MSVC_VERSION    = '14.1'  (I tried 15.0 since I have VS2017, but VS complained).

In mitsuba/cor/util.h, you need to add #include <intrin.h>
In Mitsuba 0.5.0\dependencies\include\boost\config\compiler\visualc.hpp, you may comment-out lined 44  #if _MSC_VER < 1300 and the matching #end line 54, and perhaps manually set #define BOOST_COMPILER_VERSION evc15 instead of the error message lines 283--287.

In LibImportance/shared/Config.h, I have issues with 
    const Float NAN = std::numeric_limits<Float>::signaling_NaN();
    const Float INFINITY = std::numeric_limits<Float>::infinity();
line 109.
Adding #undef NAN and #undef INFINITY did not solve the problem, and commenting out these two lines either.

In LibImportance/shared/Sse.h, the compiler complains about undefined SSE functions, or similarly in avx_mathfun.h, it complains about the undefined __m256 type. Adding #include <intrin.h> did not help (anyway, there is already #include <immintrin.h> ), and passing the /arch:AVX to the compiler in the config-win64-msvc2010.py did not help either (usually, having arch:AVX and intrin.h is sufficient to have __m256 defined ; however, while this works with VisualStudio alone, the SConsScript may not work).

Ultimately, I could not fix these issues and run the code.

-- Alternate test on Linux 
Compilation did not succeed on Linux.
 fatal error: xutility: No such file or directory   27 | #include <xutility>, after commenting this line, I got to the error:
fastonebigheader.h:60:10: fatal error: PrecompiledLibs/Embree/common/simd/smmintrin_emu.h: No such file or directory
   60 | #include "PrecompiledLibs/Embree/common/simd/smmintrin_emu.h"

which I was not able to solve.

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.