GithubHelp home page GithubHelp logo

mitsuba-renderer / mitsuba Goto Github PK

View Code? Open in Web Editor NEW
1.0K 60.0 312.0 99.91 MB

Mitsuba renderer main repository

License: GNU General Public License v3.0

Python 0.90% Shell 0.12% C 6.73% Makefile 0.01% C++ 91.26% XSLT 0.17% Batchfile 0.01% PowerShell 0.01% Objective-C 0.08% Objective-C++ 0.38% GLSL 0.32% CSS 0.01%

mitsuba's Introduction

Mitsuba — Physically Based Renderer

http://mitsuba-renderer.org/

About

Mitsuba is a research-oriented rendering system in the style of PBRT, from which it derives much inspiration. It is written in portable C++, implements unbiased as well as biased techniques, and contains heavy optimizations targeted towards current CPU architectures. Mitsuba is extremely modular: it consists of a small set of core libraries and over 100 different plugins that implement functionality ranging from materials and light sources to complete rendering algorithms.

In comparison to other open source renderers, Mitsuba places a strong emphasis on experimental rendering techniques, such as path-based formulations of Metropolis Light Transport and volumetric modeling approaches. Thus, it may be of genuine interest to those who would like to experiment with such techniques that haven't yet found their way into mainstream renderers, and it also provides a solid foundation for research in this domain.

The renderer currently runs on Linux, MacOS X and Microsoft Windows and makes use of SSE2 optimizations on x86 and x86_64 platforms. So far, its main use has been as a testbed for algorithm development in computer graphics, but there are many other interesting applications.

Mitsuba comes with a command-line interface as well as a graphical frontend to interactively explore scenes. While navigating, a rough preview is shown that becomes increasingly accurate as soon as all movements are stopped. Once a viewpoint has been chosen, a wide range of rendering techniques can be used to generate images, and their parameters can be tuned from within the program.

Documentation

For compilation, usage, and a full plugin reference, please see the official documentation.

Releases and scenes

Pre-built binaries, as well as example scenes, are available on the Mitsuba website.

mitsuba's People

Contributors

amyspark avatar beltegeuse avatar cdonovick avatar chaosink avatar diiigle avatar dvicini avatar edgarv avatar holzschu avatar jonasdeyson avatar merlinnd avatar qnzhou avatar rgirish28 avatar tofeg avatar wjakob avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mitsuba's Issues

failed to build due qt5

I am using one of the latest Linux Mint (Ubuntu based)
it fails to build while looking for qt libraries:

Package QtGui was not found in the pkg-config search path.
Perhaps you should add the directory containing `QtGui.pc'
to the PKG_CONFIG_PATH environment variable
No package 'QtGui' found
...
OSError: 'pkg-config QtGui QtWidgets QtCore QtOpenGL QtXml QtXmlPatterns QtNetwork --libs --cflags' exited 1:
...

It looks like it is expecting the 5 in the Qt5* library names.
For instance, if I run in command line:

pkg-config Qt5Gui Qt5Widgets Qt5Core Qt5OpenGL Qt5Xml Qt5XmlPatterns Qt5Network --libs --cflags

it returns OK.

Mitsuba was compiled without OpenMP support.

Is there a recommended method of compiling mitsuba with clang with OpenMP support on Mac OS? LLVM's clang-3.9 (installed using homebrew with brew install llvm) supports the -fopenmp flag but I've been having a heck of a time compiling. I wanted to see if there was a recommendation (without reverting to the Intel compiler).

I currently build on macOS 10.12 with a simple shell script:

cd ~
git clone https://github.com/mitsuba-renderer/mitsuba.git
cd ~/mitsuba
hg clone https://www.mitsuba-renderer.org/hg/dependencies_macos
mv dependencies_macos dependencies

cd ~/mitsuba
cp build/config-macos10.8-gcc-x86_64.py config.py
inreplace() {
    local search=$2
    local replace=$3
    sed -i "" "s!${search}!${replace}!g" $1
}

inreplace "config.py" "'-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk', " ""
inreplace "config.py" "'-Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk', " ""

scons -j 4

echo 'source ~/mitsuba/setpath.sh' >> ~/.bashrc
source ~/.bashrc

Custom parameters for Field extraction integrator?

Hello.
Currently, I'm trying to extract BSDF parameters and save it as image format.
Surface scattering model of entire objects in my scene is phong model.
I tried with field extraction integrator with albedo parameter. However all three parameters(exponent, s-reflectance, d-reflectance) doesn't extracted. Actually it only extract diffusive reflectance only.

Is there any other way to do that? or Am I missing something?
or Should I write my custom integrator and compile mitsuba again?

Mitsuba shows errors when I use it to render a RGBA image in win64 environment

when I use the example volume data "hetvol.vol" and it's xml file to render a RGBA image, mitsuba will report many errors like "Invalid sample value". I only change the scale of the medium and I attch the xml file on this issue. The image cannot be rendered accurately. My operating system is win10 x64, mitsuba version is 0.5.0, 64 bit . if I use mitsuba 0.5.0 32 bit on my computer and use the same volume data and xml file to render, it works. I think it may be a bug, please check it out. Thank you!

hetvol.zip

Illegal instruction: 4 after successful compilation of version 0.6.0

I'm compiling on macOS 10.12.6 Sierra with the system's clang included with Xcode (Apple LLVM version 8.1.0 (clang-802.0.42)). Here are the steps that reproduce the error on my machine:

$ brew install scons
$ cd ~
$ git clone https://github.com/mitsuba-renderer/mitsuba.git
$ cd ~/mitsuba
$ git clone https://github.com/mitsuba-renderer/dependencies_macos.git
$ mv dependencies_macos dependencies
$ cd ~/mitsuba
$ cp build/config-macos10.12-clang-x86_64.py config.py
$ scons -j 12

$ mtssrv
Illegal instruction: 4

Any ideas? I'm assuming it is due to the binary dependencies. It would be great if we could transition them to homebrew versions (mac package control) to avoid this issue. I've been trying, unsuccessfully, to do so (constant issues with scons).

CentOS 7: pthread_setname_np issue

src/libcore/thread.cpp: In static member function ‘static void mitsuba::Thread::initializeOpenMP(size_t)’:
src/libcore/thread.cpp:637:53: error: invalid conversion from ‘const char*’ to ‘pthread_t {aka long unsigned int}’ [-fpermissive]
pthread_setname_np(threadName.c_str());
^
src/libcore/thread.cpp:637:54: error: too few arguments to function ‘int pthread_setname_np(pthread_t, const char*)’
pthread_setname_np(threadName.c_str());

I modify pthread_setname_np(threadName.c_str()); to pthread_setname_np((pthread_self(),threadName.c_str()); It's OK.

Compiling on Mac using CMake. ( error: use of undeclared identifier 'INFINITY' and more)

Hi,

I am trying to compile Mitsuba on my MacBook Pro ( 2012 ) and OS X El Capitan.

this is what I did :

git clone https://github.com/mitsuba-renderer/mitsuba.git 
cd mitsuba
hg clone https://www.mitsuba-renderer.org/hg/dependencies_macos    
mv dependencies_macos  dependencies
mkdir _build
cd _build
cmake ..
make 

First of all the output of the cmake is not perfect, and it should be enough :

CMake Warning at /usr/local/Cellar/cmake/3.6.2/share/cmake-3.6/Modules/FindBoost.cmake:1500 (message):
  No header defined for python27; skipping header check
Call Stack (most recent call first):
  src/libpython/CMakeLists.txt:19 (find_package)

and

CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   mitsuba-bidir
   mitsuba-core
   mitsuba-hw
   mitsuba-render

But my biggest issue, is when I try to compile :

In file included from /Users/Stephane-lb/Projects/mitsuba/src/libcore/bitmap.cpp:65:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:637:23: error: use of undeclared identifier 'INFINITY'
            __x = _Tp(INFINITY) * (__a * __c - __b * __d);
                      ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:638:23: error: use of undeclared identifier 'INFINITY'
            __y = _Tp(INFINITY) * (__a * __d + __b * __c);
                      ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:687:32: error: use of undeclared identifier 'INFINITY'
            __x = copysign(_Tp(INFINITY), __c) * __a;
                               ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:688:32: error: use of undeclared identifier 'INFINITY'
            __y = copysign(_Tp(INFINITY), __c) * __b;
                               ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:694:23: error: use of undeclared identifier 'INFINITY'
            __x = _Tp(INFINITY) * (__a * __c + __b * __d);
                      ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:695:23: error: use of undeclared identifier 'INFINITY'
            __y = _Tp(INFINITY) * (__b * __c - __a * __d);
                      ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:1030:28: error: use of undeclared identifier 'INFINITY'
        __r = complex<_Tp>(INFINITY, copysign(_Tp(0), __c.imag()));
                           ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:1129:33: error: use of undeclared identifier 'INFINITY'
        return complex<_Tp>(_Tp(INFINITY), __x.imag());
                                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/complex:1301:42: error: use of undeclared identifier 'INFINITY'
        return complex<_Tp>(copysign(_Tp(INFINITY), __x.real()), copysign(_Tp(0), __x.imag()));

What should I do please ? Could you help me with that please?

Thank you very much,

Stéphane

pdf manual issue: ! Undefined control sequence. \DeclareTOCStyleEntry

OS: CentOs 7
tex: texlive 2015

when make maual pdf, error as following:
......................................................................
Package MinionPro.sty was not found. Reverting to charter.
(/usr/local/texlive/2015/texmf-dist/tex/latex/psnfss/t1bch.fd)
(/usr/local/texlive/2015/texmf-dist/tex/latex/koma-script/scrpage2.sty)
! Undefined control sequence.
l.66 \DeclareTOCStyleEntry
[numwidth=3em]{default}{section}
?

linux ptthread_setname may be an error ?

file mitsuba/src/libcore/thread.cpp

line 444

#if defined(__LINUX__)
        // Disabled for now, since it is not yet widely available in glibc
pthread_setname_np(pthread_self(), threadName.c_str());

line 637

            #if defined(__LINUX__) || defined(__OSX__)
                pthread_setname_np(threadName.c_str());
            #elif defined(__WINDOWS__)
                SetThreadName(threadName.c_str());
#endif

Build on Ubuntu with Qt5 may need to modify include path

Qt5 rearranges the the file structure and QtGui/QAction.h and 'QtGui/QApplication.hhave been moved toQtWidgets` subdirectory and thus cause build error:

Checking for Qt 5.x... yes
Checking for g++ ...(cached) yes
Checking for C header file png.h... (cached) yes
Checking for C header file jpeglib.h... (cached) yes
Checking for C++ header file ImfRgba.h... (cached) yes
Checking for C++ header file xercesc/dom/DOMLSParser.hpp... (cached) yes
Checking for C++ header file dae.h... (cached) no
COLLADA DOM is missing: not building the COLLADA importer
Checking for C++ header file pyconfig.h... (cached) yes
Checking for C++ header file boost/version.hpp... (cached) yes
Checking for C++ header file Eigen/Core... (cached) yes
Checking for C++ header file fftw3.h... (cached) yes
Checking for C header file GL/gl.h... (cached) yes
Checking for C header file GL/glu.h... (cached) yes
Checking for C header file GL/glext.h... (cached) yes
Checking for C header file GL/glew.h... (cached) yes
Checking for C type GLEWContext... (cached) yes
Checking for C header file X11/extensions/xf86vmode.h... (cached) yes
Checking for Mitsuba version .. 0.6.0
scons: done reading SConscript files.
scons: Building targets ...
g++ -o build/release/mtsgui/aboutdlg.o -c -DGLEW_MX -O3 -Wall -g -pipe -march=nocona -msse2 -ftree-vectorize -mfpmath=sse -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fno-math-errno -fomit-frame-pointer -DMTS_DEBUG -DSINGLE_PRECISION -DSPECTRUM_SAMPLES=3 -DMTS_SSE -DMTS_HAS_COHERENT_RT -fopenmp -fvisibility=hidden -mtls-dialect=gnu2 -std=c++11 -fPIC -DMTS_HAS_LIBPNG=1 -DMTS_HAS_LIBJPEG=1 -DMTS_HAS_OPENEXR=1 -DMTS_HAS_FFTW=1 -DQT_GUI_LIB -DQT_WIDGETS_LIB -DQT_CORE_LIB -DQT_OPENGL_LIB -DQT_XML_LIB -DQT_NETWORK_LIB -I/usr/include/eigen3 -I/usr/include/OpenEXR -Iinclude -Isrc/mtsgui -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtOpenGL -I/home/fluid/Qt5.7.0/5.7/gcc_64/include -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtWidgets -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtGui -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtXml -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtXmlPatterns -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtNetwork -I/home/fluid/Qt5.7.0/5.7/gcc_64/include/QtCore build/release/mtsgui/aboutdlg.cpp
In file included from build/release/mtsgui/aboutdlg.cpp:19:0:
build/release/mtsgui/ui_aboutdlg.h:15:30: fatal error: QtGui/QApplication: No such file or directory
compilation terminated.
scons: *** [build/release/mtsgui/aboutdlg.o] Error 1
scons: building terminated because of errors.

In file included from build/release/mtsgui/aboutdlg.cpp:19:0:
build/release/mtsgui/ui_aboutdlg.h:15:30: fatal error: QtGui/QApplication: No such file or directory
compilation terminated.

The include paths need fixing.

Render using Mitsuba GUI; load {FileStream] Error while trying to open file

See:
http://imgur.com/a/B6KYt
This is what happens on a default Blender scene when I change the "render using" to Mitsuba GUI instead of Mitsuba Console
Blender 2.78

Read new prefs: C:\Users\Mus\AppData\Roaming\Blender Foundation\Blender\2.78\config\userpref.blend
found bundled python: C:\Program Files\Blender Foundation\Blender\2.78\python
Register
[Mitsuba 2017-May-04 18:36:48] Installed scene post-update handler
0 meshes freed
[Mitsuba 2017-May-04 18:37:26] WARNING: Binary mitsuba module not available! Visit http://www.mitsuba-renderer.org/ to obtain one for your system.
[Mitsuba 2017-May-04 18:37:26] (ImportError was: No module named 'mitsuba')
Frame Change 1
[Mitsuba 2017-May-04 18:37:29] INFO: Creating Mitsuba context
[Mitsuba 2017-May-04 18:37:29] Scene File: C:/Users/Mus/AppData/Local/Temp/untitled.Scene.00001.xml
[Mitsuba 2017-May-04 18:37:29] Mesh file written: C:/Users/Mus/AppData/Local/Temp/untitled\Scene\00001/Cube_0000_m000_0_000000.serialized
[Mitsuba 2017-May-04 18:37:29] Wrote scene files
[Mitsuba 2017-May-04 18:37:29] C:/Users/Mus/AppData/Local/Temp/untitled.Scene.00001.xml
[Mitsuba 2017-May-04 18:37:29] INFO: Export finished
[Mitsuba 2017-May-04 18:37:29] Starting Mitsuba
[Mitsuba 2017-May-04 18:37:29] Launching: ['C:/Program Files/Mitsuba 0.5.0/mtsgui.exe', '-o', 'C:/Users/Mus/AppData/Local/Temp/untitled.Scene.00001.png', 'C:/Users/Mus/AppData/Local/Temp/untitled.Scene.00001.xml']

PDF manual compilation issues

Compiling the user manual with gendoc.py and TeX Live 2017 does not work. I've found the following bugs:

  • main.tex uses DIV11, which is deprecated.
  • main.tex also uses the ACM bibtex style, which no longer works because it uses old font commands.
  • There seems to be two missing images, bumpy_sphere.jpg and bunny_single.jpg.
  • The singlescatter plugin docs have a missing reference: Holzschuch2015.
  • The normalmap plugin docs refer to a bump plugin. Perhaps bumpmap was meant?

scons qt5 on linux platform

building on linux (at least my Ubuntu 17.04 machine) requires to slightly patch data/scons/qt5.py
because Qt is not found, while it is available.
Fix is simple:

pcmodules = [module+debugSuffix for module in ...

should be changed into

pcmodules = [module.replace('Qt','Qt5')+debugSuffix for module in ...

Linux compilation broken b/c of missing <prctl.h>

As part of afd3a1c, a conditional include was removed from src/libcore/thread.cpp which is necessary for using prtcl() calls in Linux.

// Required for native thread functions
#if defined(__LINUX__)
# include <sys/prctl.h>
#elif defined(__OSX__)
# include <pthread.h>
#elif defined(__WINDOWS__)
# include <windows.h>
#endif

// Required for native thread functions
#if defined(__OSX__)
# include <pthread.h>
#elif defined(__WINDOWS__)
# include <windows.h>
#endif

It seems that there was a prctl call left behind:

prctl(PR_SET_NAME, threadName.c_str());

A pull request is forthcoming.

mtsgui crash on linux

mtsgui crashes on Ubuntu 16.04 + KDE Neon with the following error:

terminate called after throwing an instance of 'std::runtime_error'
  what():  Internal error: call to ThreadLocalPrivate::get()  precedes the construction of thread-specific data structures!
Abortado

Scons doesn't detect some libraries on Linux

After building on Debian unstable, I get:

/usr/bin/ld: cannot find -lfftw3_threads
/usr/bin/ld: cannot find -lfftw3
/usr/bin/ld: cannot find -ljpeg
/usr/bin/ld: cannot find -lHalf
/usr/bin/ld: cannot find -lIlmImf

Installing the relevant packages (libfftw3-dev libjpeg-dev libopenexr-dev) is easy enough, but it'd be kinda nice if scons could detect this up front and suggest the right packages (which it's pretty good at otherwise).

Build error

I am on trying to build Mitsuba on Ubuntu 16.04, yet I keep getting this error.

g++ -o build/release/integrators/misc/motion.os -c -O3 -Wall -g -pipe -march=nocona -msse2 -ftree-vectorize -mfpmath=sse -funsafe-math-optimizations -fno-rounding-math -fno-signaling-nans -fno-math-errno -fomit-frame-pointer -DMTS_DEBUG -DSINGLE_PRECISION -DSPECTRUM_SAMPLES=3 -DMTS_SSE -DMTS_HAS_COHERENT_RT -fopenmp -fvisibility=hidden -mtls-dialect=gnu2 -fPIC -DMTS_HAS_LIBPNG=1 -DMTS_HAS_LIBJPEG=1 -DMTS_HAS_OPENEXR=1 -DMTS_HAS_FFTW=1 -I/usr/include/eigen3 -I/usr/include/OpenEXR -Iinclude src/integrators/misc/motion.cpp
In file included from /usr/include/eigen3/Eigen/Core:341:0,
                 from include/mitsuba/core/autodiff.h:28,
                 from src/integrators/misc/motion.cpp:21:
/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h: In instantiation of ‘void Eigen::internal::mul_assign_op<DstScalar, SrcScalar>::assignCoeff(DstScalar&, const SrcScalar&) const [with DstScalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >; SrcScalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’:
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:577:5:   required from ‘void Eigen::internal::generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, Functor, Version>::assignCoeff(Eigen::Index) [with DstEvaluatorTypeT = Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; SrcEvaluatorTypeT = Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; int Version = 0; Eigen::Index = long int]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:213:5:   required from ‘static void Eigen::internal::copy_using_evaluator_LinearTraversal_CompleteUnrolling<Kernel, Index, Stop>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >, Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >, Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >, 0>; int Index = 0; int Stop = 3]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:470:106:   required from ‘static void Eigen::internal::dense_assignment_loop<Kernel, 1, 2>::run(Kernel&) [with Kernel = Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >, Eigen::internal::evaluator<Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> > >, Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >, 0>]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:653:37:   required from ‘void Eigen::internal::call_dense_assignment_loop(const DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; SrcXprType = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:790:31:   required from ‘static void Eigen::internal::Assignment<DstXprType, SrcXprType, Functor, Eigen::internal::Dense2Dense, Scalar>::run(DstXprType&, const SrcXprType&, const Functor&) [with DstXprType = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; SrcXprType = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Functor = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; Scalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:747:49:   required from ‘void Eigen::internal::call_assignment_no_alias(Dst&, const Src&, const Func&) [with Dst = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Func = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >]’
/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:712:27:   required from ‘void Eigen::internal::call_assignment(Dst&, const Src&, const Func&, typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type) [with Dst = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Src = Eigen::CwiseNullaryOp<Eigen::internal::scalar_constant_op<DScalar1<float, Eigen::Matrix<float, 1, 7> > >, Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1> >; Func = Eigen::internal::mul_assign_op<DScalar1<float, Eigen::Matrix<float, 1, 7> >, DScalar1<float, Eigen::Matrix<float, 1, 7> > >; typename Eigen::internal::enable_if<(! Eigen::internal::evaluator_assume_aliasing<Src>::value), void*>::type = void*]’
/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h:19:28:   required from ‘Derived& Eigen::DenseBase<Derived>::operator*=(const Scalar&) [with Derived = Eigen::Matrix<DScalar1<float, Eigen::Matrix<float, 1, 7> >, 3, 1, 0, 3, 1>; Eigen::DenseBase<Derived>::Scalar = DScalar1<float, Eigen::Matrix<float, 1, 7> >]’
src/integrators/misc/motion.cpp:471:7:   required from here
/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h:88:102: error: no match for ‘operator*=’ (operand types are ‘DScalar1<float, Eigen::Matrix<float, 1, 7> >’ and ‘const DScalar1<float, Eigen::Matrix<float, 1, 7> >’)
 GEN_DEVICE_FUNC EIGEN_STRONG_INLINE void assignCoeff(DstScalar& a, const SrcScalar& b) const { a *= b; }
                                                                                                  ^
scons: *** [build/release/integrators/misc/motion.os] Error 1
scons: building terminated because of errors.

Am I on a wrong version of Eigen? If so, what version should I be building against?

Runtime error : invalid pointer [UBUNTU16.04 GCC6]

I tried to compile Mitsuba v5 (with qt4 cause qt5 is complaining about QtWidget) on Ubuntu 16.04 with gcc 6, using the fix mentionned in #7
Everything went fine except I get an invalid pointer error at runtime.
the trace is :

 Error in `mtsgui': free(): invalid pointer: 0x0000000001b34608 
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f3c983837e5]
/lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f3c9838c37a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f3c9839053c]
/home/thibault/lib/test/mitsuba/dist/libmitsuba-core.so(_ZN7mitsuba12FileResolverC1Ev+0x318)[0x7f3c9b877df4]
/home/thibault/lib/test/mitsuba/dist/libmitsuba-core.so(_ZN7mitsuba6Thread20staticInitializationEv+0xf4)[0x7f3c9b604102]
mtsgui[0x41f9fa]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7f3c9832c830]
mtsgui[0x421089] 
=================================================

Any idea what it might be due to ?

Could not load the Qt platform plugin "window" in ""

I just downloaded the Mitsuba repo and the dependencies for windows. I had difficulties compiling it but it finally does compile.
Now I'm getting the following crash on start up.

image

There is no qwindows.dll file in the dependencies directory could that be the issue? How can I fix it?

Unable to render any scene using the `hair` shape

All hair-related rendering is not working as of 77d0885.
I've tried Benedikt Bitterli's Fur Ball, Hair Curls and Straight Hair scenes. In all of them the console spams (snippet below):

2017-09-11 08:39:09 WARN  wrk2 [ImageBlock] Invalid sample value : [nan, nan, nan, 1, 1]
2017-09-11 08:39:09 WARN  wrk1 [ImageBlock] Invalid sample value : [nan, nan, nan, 1, 1]
2017-09-11 08:39:09 WARN  wrk2 [vector.h:538] Vector3: Division by zero!
2017-09-11 08:39:09 WARN  wrk0 [vector.h:538] Vector3: Division by zero!
2017-09-11 08:39:09 WARN  wrk3 [vector.h:538] Vector3: Division by zero!
2017-09-11 08:39:09 WARN  wrk0 [MIPMap] evalBilinear(): encountered a NaN!
2017-09-11 08:39:09 WARN  wrk3 [MIPMap] evalBilinear(): encountered a NaN!
2017-09-11 08:39:09 WARN  wrk3 [EnvironmentMap] pdfDirect(): encountered a NaN!
2017-09-11 08:39:09 WARN  wrk1 [vector.h:538] Vector3: Division by zero!
2017-09-11 08:39:09 WARN  wrk0 [EnvironmentMap] pdfDirect(): encountered a NaN!

and ends up with pitch black hair being rendered. The Curly Hair scene instantly crashes.

This happens in MacOS Sierra 10.12.6 as well as Windows 7 (MSVC 2017).

mtssrv: Class with name '<something>' not found!" - cleaning up!

Hi!

I'm trying to use mtssrv to run a lot of tiny renders. My test case is 400 of 1-pixel renders with a radiancemeter sensor. I submit the render jobs from a python script.
When doing locally, without connecting to a mtssrv, everything works fine.

When I switched to the network rendering, the master server (which connects to other nodes) crashes with a serialization error. It is either this
mtssrv: Class with name '<something>' not found!" - cleaning up!
or this
Encountered an exception while unserializing an instance of <something>
where something may consist of any number (including 0) of bytes.

The first one occurs right now much more frequently.

Where should I start the debugging? Would it help if I capture the serialized object somehow?

Extracting depth maps

Hi,

I'm using the xml script below to extract depth maps from the shapenet v2 object models. The problem is that depth information around the edges seem to be filtered somehow and the pixels are either blurred or crooked and do not represent the real values of the depth information wrt to the camera positions. Depth values start from zero for the background and grow smoothly around the edges. A snapshot is also attached below. Do you have any idea to resolve this issue?

`

<shape type="shapenet">
    <string name="filename" value="/home/Data/ShapeNetCore.v2/02871439/6422a1f1dae8fd231e23f97c3de97d74/models/model_normalized.obj" />
</shape>

<emitter type="constant" />

<integrator type="field">
	<string name="field" value="distance" />
</integrator>

<sensor type="perspective">
    <transform name="toWorld">
        <lookAt target="0,0,0" origin="2,2,2" up="0,1,0"/>
    </transform>

    <sampler type="ldsampler">
        <integer name="sampleCount" value="1"/>
    </sampler>
    <float name="fov" value="45"/>

    <film type="hdrfilm">
        <string name="pixelFormat" value="luminance" /> 
        <boolean name="banner" value="false"/>
    </film>
</sensor>
`

screenshot from 2017-09-18 01-24-29

Broken scene upgrading

Mitsuba 0.6.0 is unable to upgrade scenes. Mitsuba.app errors out with the following:

Strange -- no transformations were applied? 
Stopping the upgrade operation.

This is because when its version number was bumped to 0.6.0, the corresponding data/schema/update_0.6.0.xslwas not added.
I'm using the following dummy xsl as a workaround:

<?xml version='1.0' encoding='utf-8'?>

<!-- Stylesheet to upgrade from Mitsuba version 0.4.x to 0.5.0 scenes -->

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
    <xsl:output method="xml" indent="yes" encoding="utf-8"/>
    <xsl:preserve-space elements="*"/>

    <!-- Update the scene version -->
    <xsl:template match="scene/@version">
        <xsl:attribute name="version">0.6.0</xsl:attribute>
    </xsl:template>

    <!-- Default copy rule -->
    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Depth Extraction

Hi,

I'm exactly using the following xml file to extract depth images from the shapenet v2 object models. However, the output is not a depth image but always a black and white image with slightly smoothed edges.

Do you have any recommendations to resolve this issue?

Thanks.

`

<shape type="obj">
    <string name="filename" value="$model" />
</shape>

<emitter type="constant" />

<integrator type="field">
	<string name="field" value="distance" />
	<spectrum name="undefined" value="0" />
</integrator>

<sensor type="perspective">
    <transform name="toWorld">
        <lookAt target="0,0,0" origin="$view" up="0,1,0"/>
    </transform>

    <sampler type="ldsampler">
        <integer name="sampleCount" value="16"/>
    </sampler>

    <film type="hdrfilm">
        <integer name="width" value="256"/>
        <integer name="height" value="256"/>
        <boolean name="banner" value="false"/>
<boolean name="attachLog" value="false"/>
    </film>
</sensor>

`

list of Dependencies is not provided

I failed to install (build from source) Mitsuba on my Archlinux. Several dependencies to some (older) versions of other libraries exist that are not included in the repository.

Crash on start ("VC version 15.0 not installed" / "could not find or load the Qt platform plugin")

The build completes, though prepended with the warning that

VC version 15.0 not installed

and

Unable to detect a Qt installation -- not building the GUI!

I also get a lot of Unknown compiler version

I am building from within VS2017 (15.3.5), so I figure the VC 15.0 has to be installed. The dependencies (which I got here from git) include Qt. I am not super-interested in the GUI, but I figure the VC warning might have something to do with the crash.

When starting mitsuba.exe (or mitsutil or mtssrv) it almost instantly freezes (not responding), both from command line and from explorer, and with admin privilege. There is no log, as far as I can tell.

It's possible I have done something silly, please forgive me as it was hard for me to understand the build process.

MIPMap Cache is not deleted

When using Blender (v2.78 on Windows 7 Pro) and Mitsuba 0.5, the MIPMap cache file(s) is/are not deleted.

Blender Output: H:\Blender\Files\maze
MIPMap cache: %app-data%\Local\Temp\tmp_qgvsqas.mip

This file, tmp_qgvsqas.mip, also remains after successful render.
If I render the same scene again, a new temp-filename is issued and the same file exists multiple times. And these files can be very, very big!

Compiler Error with vs2017

Hello,
I tried to complie Mitsuba using vs2017, but got 2 errors when it came to "simply run scons" step.

Severity	Code	Description	Project	File	Line	Suppression State
Error	C2248	'ply::ply_parser::scalar_property_definition_callbacks_type::callbacks_element<U1>': cannot access private struct declared in class 'ply::ply_parser::scalar_property_definition_callbacks_type'	mitsuba-vs2017	G:\Document\Git\mitsuba\dependencies\include\boost\mpl\aux_\preprocessed\plain\inherit.hpp	22	

Severity	Code	Description	Project	File	Line	Suppression State
Error	C2248	'ply::ply_parser::scalar_property_definition_callbacks_type::callbacks_element<U1>': cannot access private struct declared in class 'ply::ply_parser::scalar_property_definition_callbacks_type'	mitsuba-vs2017	G:\Document\Git\mitsuba\dependencies\include\boost\mpl\aux_\preprocessed\plain\inherit.hpp	22	

I changed all private members of 'scalar_property_definition_callbacks_type' and 'list_property_definition_callbacks_type' in ply_parser.hpp into public, making project build succeed, which was quiet ugly.
It seems that template class 'inherit2' in file inherit.hpp accesses some private member of the two type above.
How can I fix it more correctly?

scons error

I've tried to compile the mitsuba.

after the scons step I've got the following message:
Unable to detect a Qt installation -- not building the GUI!
Checking for cl ...no
Could not compile a simple C++ fragment, verify that cl is installed! This could also mean that the Boost libraries are missing. The file "config.log" should contain more information.

inside the config.log I've got the following message:
file C:\Users\mitsuba-master\build\SConscript.configure,line 137:
Configure(confdir = .sconf_temp)
scons: Configure: Checking for cl ...
.sconf_temp\conftest_0.cpp <-
|#include
| int main(int argc, char **argv) {
| std::ostringstream oss;
| return 0;
| }
cl -o .sconf_temp\conftest_0.o -c /nologo /Od /Z7 /fp:fast /D WIN32 /D WIN64 /W3 /EHsc /GS- /GL /MD /D MTS_DEBUG /D SINGLE_PRECISION /D SPECTRUM_SAMPLES=3 /D MTS_SSE /D MTS_HAS_COHERENT_RT /D _CONSOLE /D DEBUG /D OPENEXR_DLL /openmp /D GLEW_MX -Idependencies\include\openexr -Idependencies\include\openexr -Iinclude -Idependencies\include .sconf_temp\conftest_0.cpp
conftest_0.cpp
cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
link /nologo /SUBSYSTEM:CONSOLE /DEBUG /MACHINE:X64 /FIXED:NO /OPT:REF /OPT:ICF /LTCG /NODEFAULTLIB:LIBCMT /MANIFEST /OUT:.sconf_temp\conftest_0.exe /LIBPATH:dependencies\lib boost_system-vc141-mt-1_64.lib boost_filesystem-vc141-mt-1_64.lib boost_thread-vc141-mt-1_64.lib msvcrt.lib ws2_32.lib Half.lib zlib.lib .sconf_temp\conftest_0.o
LINK : fatal error LNK1181: cannot open input file 'boost_system-vc141-mt-1_64.lib'
scons: Configure: no

Compiling on Mac not detecting Qt

I'm trying to compile Mitsuba on Mac OS X Sierra but it doesn't detect the Qt installation from dependancies and therefore doesn't install the GUI. Here's my config.py file:

BUILDDIR = '#build/release'
DISTDIR = '#Mitsuba.app'
CXX = 'clang++'
CC = 'clang'
CCFLAGS = ['-mmacosx-version-min=10.12', '-march=native', '-funsafe-math-optimizations', '-fno-math-errno', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk', '-O3', '-Wall', '-Wno-deprecated-declarations', '-g', '-DMTS_DEBUG', '-DSINGLE_PRECISION', '-DSPECTRUM_SAMPLES=3', '-DMTS_SSE', '-DMTS_HAS_COHERENT_RT', '-fvisibility=hidden', '-ftemplate-depth=512', '-stdlib=libc++']
LINKFLAGS = ['-framework', 'OpenGL', '-framework', 'Cocoa', '-mmacosx-version-min=10.12', '-Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk', '-Wl,-headerpad,128', '-stdlib=libc++']
CXXFLAGS = ['-std=c++11']
BASEINCLUDE = ['#include', '#dependencies/include']
BASELIBDIR = ['#dependencies/lib']
BASELIB = ['m', 'pthread', 'Half']
OEXRINCLUDE = ['#dependencies/include/OpenEXR']
OEXRLIB = ['IlmImf', 'Imath', 'Iex', 'z']
PNGLIB = ['png16']
PNGINCLUDE = ['#dependencies/include/libpng']
JPEGLIB = ['jpeg']
JPEGINCLUDE = ['#dependencies/include/libjpeg']
XERCESLIB = ['xerces-c']
GLLIB = ['GLEWmx', 'objc']
GLFLAGS = ['-DGLEW_MX']
BOOSTINCLUDE = ['#dependencies']
BOOSTLIB = ['boost_filesystem', 'boost_system', 'boost_thread']
PYTHON27INCLUDE= ['/System/Library/Frameworks/Python.framework/Versions/2.7/Headers']
PYTHON27LIBDIR = ['/System/Library/Frameworks/Python.framework/Versions/2.7/lib']
PYTHON27LIB = ['boost_python27', 'boost_system']
PYTHON35INCLUDE= ['#dependencies/include/python3.5']
PYTHON35LIB = ['boost_python36', 'boost_system']
PYTHON36INCLUDE= ['#dependencies/include/python3.4']
PYTHON36LIB = ['boost_python36', 'boost_system']
COLLADAINCLUDE = ['/usr/local/include/collada-dom2.4', '/usr/local/include/collada-dom2.4/1.4']
COLLADALIBDIR = ['/usr/local/Cellar/collada-dom/2.4.4/lib']
COLLADALIB = ['collada-dom2.4-dp']
QTDIR = '#dependencies'
FFTWLIB = ['fftw3']

I keep getting the error when running Scons "Unable to detect a Qt installation -- not building the GUI!". I even tried a local installation on my computer but it still doesn't detect it.

Port to iOS

Hi,

is it possible to used the mitsuba code in a iOS application?
Cheers

intel compiler(2017) error :

using intel compiler 2017('-O3', '-Wall', '-fopenmp', '-fvisibility=hidden', '-std=c++11', '-w', '-DFLOAT_DOUBLE_PRECISION', '-DSPECTRUM_SAMPLES=3'), render scene http://www.mitsuba-renderer.org/scenes/medieval.zip, I got the following error:

2018-05-09 07:34:42 WARN  bld0 [Thread] Fatal error: uncaught exception: "bld0 [triangle.cpp:92] Assertion "outCount + 1 < MAX_VERTS" failed in src/libcore/triangle.cpp:92 (Overflow in sutherlandHodgman()!)"
Caught a critical exception: main [triangle.cpp:104] Assertion "outCount + 2 < MAX_VERTS" failed in src/libcore/triangle.cpp:104 (Overflow in sutherlandHodgman()!)

However, when compiling Mitsuba 0.6.0 by gcc, it works.

I don't know why.

Passing bitmap data to texture in python

The bitmap texture handles "initialization via raw data passed from another plugin", but the plugin manager throws an error when using the python interface

Properties: type of keyword "bitmap" is not supported!

I see that there is a Data type in properties.h that should handle this case, but it doesn't appear to be exposed in libpython/core.cpp

Simply adding the appropriate cases in the get and set methods doesn't work, I'm assuming because Data is defined in properties.h and not its own base class that boost can see.

Is there a major reason for this omission? (how much work am I getting into trying to make this change?)

Broken compilation under MSVC 2017

6b68f4d deleted the config.py files, which are necessary for running scons under Windows.
I extracted them manually from the GitHub commit. However, compiling Mitsuba with /O2 (config-win64-msvc.py) errors out with: Scale factors in the camera-to-world transformation are not allowed!. I narrowed it down to the /Ob2 flag; swapping /O2 for /Oi /Ot /Oy /Ob1 /Gs /GF /Gy does the trick.

I'm using MSVC 2017, version 15.0.26730.12. Tested scenes are Hair Ball, Hair Curls and Material Test ball from Benedikt Bitterli: http://benedikt-bitterli.me/resources/.

Rendering block artifacts on Mac/Linux cluster

I am using iMac as the master and a bunch of ubuntu server as slaves. In the python module I called the following code to set up the workers. If I uncomment the local worker scripts, some rendering blocks will become black. The left one is only using remote workers, the right one uses both remote and local workers. Same behavior using the GUI.

This bug only happens when I

  • use any non-default rendering block other than 32x32.
  • use both remote and local workers

Since I want to fully utilize the server cluster CPU, using 32x32 block produces not enough jobs. So I chose smaller blocks 8x8.

image

#for i in range(0, multiprocessing.cpu_count()-4):
#  scheduler.registerWorker(LocalWorker(i, 'wrk%i' % i))

hosts=['remote-server.cs.columbia.edu', 'remote-server.cs.columbia.edu']

for host in hosts:
  stream = SocketStream(host, 7554)
  remoteWorker = RemoteWorker(host, stream)
  scheduler.registerWorker(remoteWorker)

exited with code 9009

i got this error when try to build
Error 1 error MSB3073: The command "cd .. && scons --parallelize --cfg=build\config-win32-msvc2010-debug.py" exited with code 9009. C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.MakeFile.Targets 38 5 mitsuba-msvc2010

Runtime error in win10 x64

Hello, i'm stuck in a runtime error, looks like ptr null, i have got source code from git repos, when build the source code just get some waring like unknown compiler version but finished.
so i'm render my scene by using c++ api but crash happend when invoke a methon.

this is my code:
FileResolver *resolver = Thread::getThread ()->getFileResolver ();
and got error : An exception that is caused by 0x00007FFD42E0A9F7 (libmitsuba-core.dll) (in MitsubaProj.exe): the access conflict occurs when the 0xC0000005: reads the location 0x0000000000000000. looks like point null error.

my dev env : win10 x64 vs2017 community

anyone can help or suggest?

Rendering hair over the network creates visible blocks

We are currently trying to render carpets using the hair-shape. As hair can't seem to have multiple colors we did instead create one hair-shape per color. So to have multi-color carpets we do for example quantize texture-colors first to reduce them to 16 colors and then create 16 single-color hair-shapes which are all in the same place.

When rendering on a single processor this does actually work rather well:
single_processor

The problem is when we render it on our server using network nodes. The result is that the render block-size then becomes visible, like this:
network_distributed
(this one uses the default 32x32 blocks-size, but we also tried other blocks-sizes and they always show).

When using just a single hair shape it also works over the network:
network_single_color

The Mitsuba version we use is 0.5.0 (the official release from https://www.mitsuba-renderer.org/). Unfortunately I failed to compile current git version (see thread "Compiler Error with vs2017"), so I can't test if anything has changed there since then.

The following zip contains the scene which fails rendering over network:
bugreport_hairs_multidiffuse.zip (note it has 2 xml's - the newscen_outside.xml is the scene itself while 15_render_0_1.xml is to also have the exact same camera as we used).

For comparison here is the zip which has only a single hair-shape and works:
bugreport_hairs_diffuse.zip

Any feedback or ideas would be welcome!

linux mtsgui "could not open stylesheet.css"

the link with the rcc is not done ?
qrc_resources.cc not compiled as not included ?

`/****************************************************************************
** Resource object code
**
** Created by: The Resource Compiler for Qt version 5.9.1
**
** WARNING! All changes made in this file will be lost!
*****************************************************************************/

static const unsigned char qt_resource_data[]`

[Python API] Segfault when creating RenderJob on shallow copy of a scene

I am following section 13.2.7 of the manual in order to render animation frames on different machines, and in particular creates a so called shallow copy of the scene using newScene = Scene(scene), but whenever I create a render job on it, it crashes.

Steps to reproduce

Open a Python session and run:

import mitsuba
from mitsuba.core import *
from mitsuba.render import Scene, SceneHandler, RenderQueue, RenderJob
scene = SceneHandler.loadScene('scene.xml'))
scheduler = Scheduler.getInstance()
scheduler.registerWorker(LocalWorker(0, 'worker'))
scheduler.start()
queue = RenderQueue()
job = RenderJob('jobName', Scene(scene), queue)

The last line raises a segfault with the following backtrace:

(gdb) bt
#0  0x00007ffff5b419b3 in mitsuba::RenderJob::RenderJob(std::string const&, mitsuba::Scene*, mitsuba::RenderQueue*, int, int, int, bool, bool) ()
   from /cal/homes/emichel/src/mitsuba/build/binaries/libmitsuba-render.so
#1  0x00007ffff64cec88 in boost::python::objects::make_holder<3>::apply<boost::python::objects::pointer_holder<mitsuba::ref<mitsuba::RenderJob>, mitsuba::RenderJob>, boost::mpl::joint_view<boost::python::detail::drop1<boost::python::detail::type_list<std::string const&, mitsuba::Scene*, mitsuba::RenderQueue*, boost::python::optional<int, int, int, bool, bool, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_>, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_> >, boost::python::optional<int, int, int, bool, bool, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_, mpl_::void_> > >::execute(_object*, std::string const&, mitsuba::Scene*, mitsuba::RenderQueue*) ()
   from /cal/homes/emichel/src/mitsuba/build/binaries/python/mitsuba.so
#2  0x00007ffff64f6c26 in boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void (*)(_object*, std::string const&, mitsuba::Scene*, mitsuba::RenderQueue*), boost::python::default_call_policies, boost::mpl::vector5<void, _object*, std::string const&, mitsuba::Scene*, mitsuba::RenderQueue*> > >::operator()(_object*, _object*) ()
   from /cal/homes/emichel/src/mitsuba/build/binaries/python/mitsuba.so
#3  0x00007ffff54a60ed in operator() (kw=0x0,
    args=(<RenderJob at remote 0x7ffff6ce2fc8>, 'jobName', <Scene at remote 0x7ffff6ce2f70>, <RenderQueue at remote 0x7ffff6ce2f18>), this=0xc0ffb0) at ./boost/python/object/py_function.hpp:143
#4  boost::python::objects::function::call (this=0xc0ffa0,
    args=(<RenderJob at remote 0x7ffff6ce2fc8>, 'jobName', <Scene at remote 0x7ffff6ce2f70>, <RenderQueue at remote 0x7ffff6ce2f18>), keywords=0x0) at libs/python/src/object/function.cpp:226
#5  0x00007ffff54a6308 in operator() (this=<optimized out>)
    at libs/python/src/object/function.cpp:585
#6  boost::detail::function::void_function_ref_invoker0<boost::python::objects::(anonymous namespace)::bind_return, void>::invoke (function_obj_ptr=...) at ./boost/function/function_template.hpp:188
#7  0x00007ffff54b0793 in operator() (this=0x7fffffffdc90)
    at ./boost/function/function_template.hpp:767
#8  boost::python::handle_exception_impl (f=...) at libs/python/src/errors.cpp:25
#9  0x00007ffff54a4ae9 in handle_exception<boost::python::objects::(anonymous namespace)::bind_return> (f=...) at ./boost/python/errors.hpp:29
#10 boost::python::objects::function_call (func=<optimized out>, args=<optimized out>,
    kw=<optimized out>) at libs/python/src/object/function.cpp:626
#11 0x0000000000502ab8 in PyObject_Call (kw=<optimized out>, arg=<optimized out>,
    func=<optimized out>) at ../Objects/abstract.c:2529
#12 instancemethod_call.lto_priv () at ../Objects/classobject.c:2602
#13 0x0000000000501afa in PyObject_Call (kw=0x0,
    arg=('jobName', <Scene at remote 0x7ffff6ce2f70>, <RenderQueue at remote 0x7ffff6ce2f18>),
    func=<instancemethod at remote 0x7ffff7f58b90>) at ../Objects/abstract.c:2529
#14 slot_tp_init.lto_priv () at ../Objects/typeobject.c:5692
#15 0x00000000004b988b in type_call.lto_priv () at ../Objects/typeobject.c:745
#16 0x00000000004c9e8b in PyObject_Call (kw=<optimized out>, arg=<optimized out>,
    func=<optimized out>) at ../Objects/abstract.c:2529
#17 do_call (nk=<optimized out>, na=<optimized out>, pp_stack=<optimized out>,
    func=<optimized out>) at ../Python/ceval.c:4251
#18 call_function (oparg=<optimized out>, pp_stack=<optimized out>) at ../Python/ceval.c:4056
#19 PyEval_EvalFrameEx () at ../Python/ceval.c:2679
#20 0x00000000004c7a59 in PyEval_EvalCodeEx () at ../Python/ceval.c:3265
#21 0x000000000050160f in PyEval_EvalCode (
    locals={'InterpolatedSpectrum': <Boost.Python.class at remote 0xba5a10>, 'getPrivateMemoryUsage': <Boost.Python.function at remote 0xbfb6f0>, 'getTotalSystemMemory': <Boost.Python.function at remote 0xbfb760>, 'Point3i': <Boost.Python.class at remote 0xbd31e0>, 'SHRotation': <Boost.Python.class at remote 0xc03970>, 'NativeBuffer': <Boost.Python.class at remote 0xbafdc0>, 'sampleTEA': <Boost.Python.function at remote 0xbfbca0>, 'mitsuba': <module at remote 0x7ffff7ea9ad0>, 'radicalInverse2': <Boost.Python.function at remote 0xbfb990>, 'SceneHandler': <Boost.Python.class at remote 0xc0f120>, 'getHostName': <Boost.Python.function at remote 0xbfb680>, 'fresnelConductorExact': <Boost.Python.function at remote 0xbfb1b0>, 'Epsilon': <float at remote 0x9d66d0>, 'Object': <Boost.Python.class at remote 0xb95380>, 'StringVector': <Boost.Python.class at remote 0xb90ee0>, 'Scheduler': <Boost.Python.class at remote 0xbb9f80>, 'WorkProcessor': <Boost.Python.class at remote 0xbb6210>, 'MTS_VERSION': '0.5.0', 'getCoreCount': <Boost....(truncated),
    globals={'InterpolatedSpectrum': <Boost.Python.class at remote 0xba5a10>, 'getPrivateMemoryUsage': <Boost.Python.function at remote 0xbfb6f0>, 'getTotalSystemMemory': <Boost.Python.function at remote 0xbfb760>, 'Point3i': <Boost.Python.class at remote 0xbd31e0>, 'SHRotation': <Boost.Python.class---Type <return> to continue, or q <return> to quit---
 at remote 0xc03970>, 'NativeBuffer': <Boost.Python.class at remote 0xbafdc0>, 'sampleTEA': <Boost.Python.function at remote 0xbfbca0>, 'mitsuba': <module at remote 0x7ffff7ea9ad0>, 'radicalInverse2': <Boost.Python.function at remote 0xbfb990>, 'SceneHandler': <Boost.Python.class at remote 0xc0f120>, 'getHostName': <Boost.Python.function at remote 0xbfb680>, 'fresnelConductorExact': <Boost.Python.function at remote 0xbfb1b0>, 'Epsilon': <float at remote 0x9d66d0>, 'Object': <Boost.Python.class at remote 0xb95380>, 'StringVector': <Boost.Python.class at remote 0xb90ee0>, 'Scheduler': <Boost.Python.class at remote 0xbb9f80>, 'WorkProcessor': <Boost.Python.class at remote 0xbb6210>, 'MTS_VERSION': '0.5.0', 'getCoreCount': <Boost....(truncated), co=0x7ffff7eeaa30) at ../Python/ceval.c:667
#22 run_mod.lto_priv () at ../Python/pythonrun.c:1371
#23 0x00000000004495f2 in PyRun_InteractiveOneFlags (fp=0x0,
    fp@entry=0x7ffff72974e0 <_IO_2_1_stdin_>, filename=0x0, filename@entry=0x603d84 "<stdin>",
    flags=0x7fffffffe2e0) at ../Python/pythonrun.c:858
#24 0x000000000044941e in PyRun_InteractiveLoopFlags (fp=fp@entry=0x7ffff72974e0 <_IO_2_1_stdin_>,
    filename=filename@entry=0x603d84 "<stdin>", flags=flags@entry=0x7fffffffe2e0)
    at ../Python/pythonrun.c:778
#25 0x000000000042d405 in PyRun_AnyFileExFlags (fp=0x7ffff72974e0 <_IO_2_1_stdin_>,
    filename=<optimized out>, closeit=0, flags=0x7fffffffe2e0) at ../Python/pythonrun.c:747
#26 0x00000000004981cd in Py_Main () at ../Modules/main.c:640
#27 0x00007ffff6f12b45 in __libc_start_main (main=0x497c60 <main>, argc=1, argv=0x7fffffffe4a8,
    init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
    stack_end=0x7fffffffe498) at libc-start.c:287
#28 0x0000000000497b8b in _start ()

Python bindings was not built

➜  mitsuba_build cmake ../mitsuba                    
abort: repository /home/lin/program/CG/mitsuba not found!
CMake Warning at data/cmake/MtsGetVersionInfo.cmake:110 (message):
  Unable to find the mercurial revision id.
Call Stack (most recent call first):
  CMakeLists.txt:73 (MTS_GET_VERSION_INFO)


-- mitsuba 0.5.0 ('2017.03.10')
-- Boost version: 1.58.0
-- Found the following Boost libraries:
--   filesystem
--   system
--   thread
--   chrono
--   date_time
--   atomic
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found suitable version "1.2.8", minimum required is "1.2") 
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
-- Python was not found. The bindings will not be built.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lin/program/CG/mitsuba_build

BUILD_PYTHON is in this two files:
mitsuba/CMakeLists.txt

# Python binding library
if (BUILD_PYTHON)
  add_subdirectory(src/libpython)
elseif(NOT PYTHON_FOUND)
  message(STATUS "Python was not found. The bindings will not be built.")
endif()

mitsuba/data/cmake/MitsubaExternal.cmake

# The Python libraries. When using the built-in dependencies we need
# to specify the include directory, otherwise CMake finds the one
# from the local installation using the Windows registry / OSX Frameworks
if (MTS_DEPENDENCIES AND NOT PYTHON_INCLUDE_DIR AND
    EXISTS "${MTS_DEPS_DIR}/include/python27")
  set(PYTHON_INCLUDE_DIR "${MTS_DEPS_DIR}/include/python27"
      CACHE STRING "Path to the Python include directory.")
endif()
find_package (PythonLibs "2.6")
CMAKE_DEPENDENT_OPTION(BUILD_PYTHON "Build the Python bindings." ON
  "PYTHONLIBS_FOUND;mts_boost_PYTHON_FOUND" OFF)
if (PYTHONLIBS_FOUND AND mts_boost_PYTHON_FOUND)
  set (PYTHON_FOUND TRUE)
endif ()

It seems that it is this warning that let cmake skip MitsubaExternal.cmake

abort: repository /home/lin/program/CG/mitsuba not found!
CMake Warning at data/cmake/MtsGetVersionInfo.cmake:110 (message):
  Unable to find the mercurial revision id.
Call Stack (most recent call first):
  CMakeLists.txt:73 (MTS_GET_VERSION_INFO)

My temporary solution is setting BUILD_PYTHON to be true before the judgement in mitsuba/CMakeLists.txt, and cmake warned me to install libboost-python-dev.

And another problem: When I run sudo make install, the files were installed in wrong places. Here is a part of install_manifest.txt:

/usr/local/python/mitsuba.so
/usr/local/./mtssrv
/usr/local/./mitsuba
/usr/local/./mtsutil
/usr/local/./mtsimport
/usr/local/plugins/test_simdtonemap.so
/usr/local/./mtsgui
/usr/local/plugins/addimages.so

OS: Linux Mint 18.1
Shell: zsh

Back culling

Hi, I would like to make rays penetrate through the backside of surfaces. I could not find any culling related info in the documentation; is it possible to change culling setup of the ray-tracing?

Thanks in advance.

Compiler Error in ply.cpp using GCC > 6

Hi,

When I try to compile Mitsuba using GCC 6.2.1 (or any version > 6), I get a a bunch of compiler errors about the compiler not being able to find the member 'at' in the 'ply' namespace.

The error does not occur using GCC version 5.4/5.3, so it seems to be introduced by changes to GCC from version 5 to version 6.

I can make the code compile using GCC 6 if I add

#define ADT_WORKAROUND 1

to the top of ply_parser.hpp. However, since a comment in the same file describes this flag as a 'horrible workaround' for Clang, it's maybe not the best solution to simply activate this define (?).

I don't really understand the code in ply_parser.hpp, so I cannot propose a solution myself. As the compiler error can be fixed by using the adt workaround define, it's not an urgent issue for me. But it would still be nice if there was a proper fix in this repository.

For reference, here are the compiler errors I get without using ADT_WORKAROUND:

src/shapes/ply.cpp: In member function ‘void mitsuba::PLYLoader::loadPLY(const boost::filesystem::path&)’:
src/shapes/ply.cpp:512:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::float32>(scalar_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:512:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:512:22: error: expected primary-expression before ‘>’ token
  ply::at<ply::float32>(scalar_property_definition_callbacks) = std::tr1::bind(
                      ^
src/shapes/ply.cpp:515:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::uint8>(scalar_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:515:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:515:20: error: expected primary-expression before ‘>’ token
  ply::at<ply::uint8>(scalar_property_definition_callbacks) = std::tr1::bind(
                    ^
src/shapes/ply.cpp:518:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::uint8, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:518:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:518:20: error: expected primary-expression before ‘,’ token
  ply::at<ply::uint8, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
                    ^
src/shapes/ply.cpp:518:32: error: expected primary-expression before ‘>’ token
  ply::at<ply::uint8, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
                                ^
src/shapes/ply.cpp:521:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::uint32, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:521:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:521:21: error: expected primary-expression before ‘,’ token
  ply::at<ply::uint32, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
                     ^
src/shapes/ply.cpp:521:33: error: expected primary-expression before ‘>’ token
  ply::at<ply::uint32, ply::int32>(list_property_definition_callbacks) = std::tr1::bind(
                                 ^
src/shapes/ply.cpp:524:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::uint8, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:524:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:524:20: error: expected primary-expression before ‘,’ token
  ply::at<ply::uint8, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(
                    ^
src/shapes/ply.cpp:524:33: error: expected primary-expression before ‘>’ token
  ply::at<ply::uint8, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(
                                 ^
src/shapes/ply.cpp:527:2: error: ‘at’ is not a member of ‘ply’
  ply::at<ply::uint32, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(
  ^~~
src/shapes/ply.cpp:527:2: note: suggested alternative:
In file included from /usr/include/boost/mpl/vector/aux_/at.hpp:17:0,
                 from /usr/include/boost/mpl/vector/vector0.hpp:17,
                 from /usr/include/boost/mpl/vector/vector10.hpp:18,
                 from /usr/include/boost/mpl/vector/vector20.hpp:18,
                 from /usr/include/boost/mpl/vector.hpp:36,
                 from src/shapes/ply/ply_parser.hpp:57,
                 from src/shapes/ply.cpp:24:
/usr/include/boost/mpl/at_fwd.hpp:20:50: note:   ‘boost::mpl::at’
 template< typename Sequence, typename N > struct at;
                                                  ^~
src/shapes/ply.cpp:527:21: error: expected primary-expression before ‘,’ token
  ply::at<ply::uint32, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(
                     ^
src/shapes/ply.cpp:527:34: error: expected primary-expression before ‘>’ token
  ply::at<ply::uint32, ply::uint32>(list_property_definition_callbacks) = std::tr1::bind(

Scons script error on print instruction

the file SConscript.configure
and SConscript.install

print nok missing ( ) as

if not os.path.exists(configFile):
        print '\nA configuration file must be selected! Have a look at http://www.mitsuba-renderer.org/docs.html'
Exit(1)

Compilation on Mac - Notes for futur users

Hi,

For futur users :
1- launch these commands to go from python 2 to 3

2to3 -w ./build/SConscript.install 
2to3 -w ./build/SConscript.configure   

2- Use this file config-macos10.12.6-clang-x86_64.py

BUILDDIR       = '#build/release'
DISTDIR        = '#Mitsuba.app'
CXX            = 'clang++'
CC             = 'clang'
CCFLAGS        = ['-mmacosx-version-min=10.12', '-march=native', '-funsafe-math-optimizations', '-fno-math-errno', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk', '-O3', '-Wall', '-Wno-deprecated-declarations', '-g', '-DMTS_DEBUG', '-DSINGLE_PRECISION', '-DSPECTRUM_SAMPLES=3', '-DMTS_SSE', '-DMTS_HAS_COHERENT_RT', '-fvisibility=hidden', '-ftemplate-depth=512', '-stdlib=libc++']
LINKFLAGS      = ['-framework', 'OpenGL', '-framework', 'Cocoa', '-mmacosx-version-min=10.12', '-Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.13.sdk', '-Wl,-headerpad,128', '-stdlib=libc++']
CXXFLAGS       = ['-std=c++11']
BASEINCLUDE    = ['#include', '#dependencies/include']
BASELIBDIR     = ['#dependencies/lib']
BASELIB        = ['m', 'pthread', 'Half']
OEXRINCLUDE    = ['#dependencies/include/OpenEXR']
OEXRLIB        = ['IlmImf', 'Imath', 'Iex', 'z']
PNGLIB         = ['png16']
PNGINCLUDE     = ['#dependencies/include/libpng']
JPEGLIB        = ['jpeg']
JPEGINCLUDE    = ['#dependencies/include/libjpeg']
XERCESLIB      = ['xerces-c']
GLLIB          = ['GLEWmx', 'objc']
GLFLAGS        = ['-DGLEW_MX']
BOOSTINCLUDE   = ['#dependencies']
BOOSTLIB       = ['boost_filesystem', 'boost_system', 'boost_thread']
PYTHON27INCLUDE= ['/System/Library/Frameworks/Python.framework/Versions/2.7/Headers']
PYTHON27LIBDIR = ['/System/Library/Frameworks/Python.framework/Versions/2.7/lib']
PYTHON27LIB    = ['boost_python27', 'boost_system']
PYTHON35INCLUDE= ['#dependencies/include/python3.5']
PYTHON35LIB    = ['boost_python36', 'boost_system']
PYTHON36INCLUDE= ['#dependencies/include/python3.4']
PYTHON36LIB    = ['boost_python36', 'boost_system']
# COLLADAINCLUDE = ['#dependencies/include/collada-dom', '#dependencies/include/collada-dom/1.4']
# COLLADALIB     = ['collada14dom24']
QTDIR          = '#dependencies'
FFTWLIB        = ['fftw3']

Best Regards,

stephane-lb

( Note : this is before updating to High Sierra )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.