diff --git a/doc/acknowledgements.tex b/doc/acknowledgements.tex index 1bf165b6..c887c374 100644 --- a/doc/acknowledgements.tex +++ b/doc/acknowledgements.tex @@ -11,6 +11,7 @@ Mitsuba makes heavy use of the following amazing libraries and tools: \item Xerces-C++ by the Apache Foundation \item The Boost C++ class library \item GLEW by Milan Ikits, Marcelo E. Magallon and Lev Povalahev +\item Mersenne Twister by Makoto Matsumoto and Takuji Nishimura \item COLLADA DOM by Sony Computer Entertainment \item libjpeg by the Independent JPEG Group \item libpng by Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson and \mbox{others} diff --git a/src/integrators/path/path.cpp b/src/integrators/path/path.cpp index faf835fb..bc5459d3 100644 --- a/src/integrators/path/path.cpp +++ b/src/integrators/path/path.cpp @@ -146,7 +146,7 @@ public: /* Assuming that BSDF importance sampling is perfect, the following should equal the maximum albedo over all spectral samples */ - Float approxAlbedo = std::min((Float) 1, bsdfVal.max()); + Float approxAlbedo = std::min((Float) 0.9f, bsdfVal.max()); if (rRec.nextSample1D() > approxAlbedo) break; else diff --git a/src/integrators/path/volpath.cpp b/src/integrators/path/volpath.cpp index 62dd3dd0..6ac286ca 100644 --- a/src/integrators/path/volpath.cpp +++ b/src/integrators/path/volpath.cpp @@ -258,7 +258,7 @@ public: /* Assuming that BSDF importance sampling is perfect, the following should equal the maximum albedo over all spectral samples */ - Float approxAlbedo = std::min((Float) 1, bsdfVal.max()); + Float approxAlbedo = std::min((Float) 0.9f, bsdfVal.max()); if (rRec.nextSample1D() > approxAlbedo) break; else diff --git a/src/integrators/path/volpath_simple.cpp b/src/integrators/path/volpath_simple.cpp index 0edbe671..12ac1b6e 100644 --- a/src/integrators/path/volpath_simple.cpp +++ b/src/integrators/path/volpath_simple.cpp @@ -193,7 +193,7 @@ public: /* Assuming that BSDF importance sampling is perfect, the following should equal the maximum albedo over all spectral samples */ - Float approxAlbedo = std::min((Float) 1, bsdfVal.max()); + Float approxAlbedo = std::min((Float) 0.9, bsdfVal.max()); if (rRec.nextSample1D() > approxAlbedo) break; else diff --git a/src/libcore/logger.cpp b/src/libcore/logger.cpp index 00a3c01f..8b9bdef0 100644 --- a/src/libcore/logger.cpp +++ b/src/libcore/logger.cpp @@ -50,8 +50,17 @@ void Logger::log(ELogLevel level, const Class *theClass, m_appenders[i]->append(level, text); m_mutex->unlock(); } else { -#ifdef MTS_DEBUG_TRAP - __asm__ ("int $3"); +#if defined(__LINUX__) + /* A critical error occurred: trap if we're running in a debugger */ + + char exePath[PATH_MAX]; + pid_t ppid = getppid(); + memset(exePath, 0, PATH_MAX); + if (readlink(formatString("/proc/%i/exe", ppid).c_str(), exePath, PATH_MAX) != -1) { + if (!strcmp(exePath, "/usr/bin/gdb")) { + __asm__ ("int $3"); + } + } #endif throw std::runtime_error(text); } diff --git a/src/librender/vpl.cpp b/src/librender/vpl.cpp index 7a2523c4..e6245e92 100644 --- a/src/librender/vpl.cpp +++ b/src/librender/vpl.cpp @@ -54,7 +54,7 @@ size_t generateVPLs(const Scene *scene, size_t offset, size_t count, int maxDept /* Assuming that BSDF importance sampling is perfect, the following should equal the maximum albedo over all spectral samples */ - Float approxAlbedo = std::min((Float) 1, bsdfVal.max()); + Float approxAlbedo = std::min((Float) 0.9f, bsdfVal.max()); if (sampler->next1D() > approxAlbedo) break; else diff --git a/src/qtgui/acknowledgmentdlg.ui b/src/qtgui/acknowledgmentdlg.ui index 7f4d5a75..ed95e6bd 100644 --- a/src/qtgui/acknowledgmentdlg.ui +++ b/src/qtgui/acknowledgmentdlg.ui @@ -60,6 +60,7 @@ p, li { white-space: pre-wrap; } <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The <a href="http://www.boost.org/"><span style=" text-decoration: underline; color:#0000ff;">Boost</span></a> C++ class library</li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://glew.sourceforge.net/"><span style=" text-decoration: underline; color:#0000ff;">GLEW</span></a> by Milan Ikits, Marcelo E. Magallon and Lev Povalahev</li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://sourceforge.net/projects/collada-dom/"><span style=" text-decoration: underline; color:#0000ff;">COLLADA DOM</span></a> by Sony Computer Entertainment</li> +<li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html"><span style=" text-decoration: underline; color:#0000ff;">Mersenne Twister</span></a> by Makoto Matsumoto and Takuji Nishimura</li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.ijg.org/"><span style=" text-decoration: underline; color:#0000ff;">libjpeg</span></a> by the Independent JPEG Group</li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.libpng.org/pub/png"><span style=" text-decoration: underline; color:#0000ff;">libpng</span></a> by Guy Eric Schalnat, Andreas Dilger, Glenn Randers-Pehrson and others</li> <li style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><a href="http://www.brandonwalkin.com/bwtoolkit/"><span style=" text-decoration: underline; color:#0000ff;">BWToolkit</span></a> by Brandon Walkin</li>