Mitsuba renderer main repository

Overview

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.

Comments
  • Compilation on Mac - Notes for futur users

    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 )

    opened by stephane-lb 17
  • exited with code 9009

    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

    opened by eslamsoka14 11
  • Compiling on Mac using CMake. ( error: use of undeclared identifier 'INFINITY'  and more)

    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

    opened by stephane-lb 9
  • Mitsuba PDF manual fixes

    Mitsuba PDF manual fixes

    • [x] Changed bibliography package to biblatex (ACM bibtex is no longer supported)
    • [x] Added bumpy_sphere
    • [x] ~~Added bunny_single~~
    • ~~requested scene from Nicolas Holzschuch. Once I've received I'll update the pull request~~
    • Material does not seem to work. I've deleted it instead
    • [x] Added the missing Holzschuch cite
    • [x] Fixed a plugin ref in normalmap
    • [x] PDF requires two more runs of pdflatex after bibtex

    This pull request (once finished) fixes #23.

    opened by amyspark 7
  • Fix for mtsgui running on OSX Mojave

    Fix for mtsgui running on OSX Mojave

    The latest version of OS X (Mojave) requires window opening to be done on the main thread (see issue #89). This causes a crash in nsgldevice.mm.

    This pull request fixes the issue, by moving the window opening to the main queue, using dispatch_async(dispatch_get_main_queue().

    opened by holzschu 6
  • scons error

    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

    opened by kfiros1 5
  • Scons script   error on print  instruction

    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)
    
    opened by sukoi26 5
  • Build error

    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?

    opened by tmccal2 5
  • Render a single color

    Render a single color

    I need to render a scene that each object has its own color without light and shade. But if no emitter, I can't see that object. So I give an contant emitter. Then for example, the upper face of the cube has shade. But I need it to be all red. 1

    opened by zcoo 4
  • Fixed partial derivative NaN error for hair

    Fixed partial derivative NaN error for hair

    This fixes the NaN errors that occurs due to the new generalised shading frame computation for all shapes. This sets the whole shading frame (including the derivatives) to the geometric frame of the hair shape as it was before the generalisation, just that it is a coordinate system constructed from the normal (both shading and geometric normal are the same).

    https://github.com/mitsuba-renderer/mitsuba/blob/0a49106ad17aa01f9465bce17451ac8d674474f1/src/shapes/hair.cpp#L848

    It prevents the NaN error caused by this computation for all shapes as dpdu was zero earlier.

    https://github.com/mitsuba-renderer/mitsuba/blob/ce80ddcb6d3fe0a7240f7230d9d148d776292f57/include/mitsuba/render/skdtree.h#L424

    The hair ball, straight-hair and hair curls scenes all load but there is still an error with the curly hair scene as the kd tree initialisation fails this assertion in single precision. Therefore, in order to use the curly hair scene, mitsuba needs to be compiled in double precision.

    https://github.com/mitsuba-renderer/mitsuba/blob/6d7d66175ce4b1bcf7a726e46345d9f24cf7e40c/include/mitsuba/core/aabb.h#L66-L69

    #25 #30

    opened by rgirish28 4
  • Compiling on Mac not detecting Qt

    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.

    opened by bobgeller401 4
  • Why are many parameters non-differentiables/not shown by `mi.traverse`?

    Why are many parameters non-differentiables/not shown by `mi.traverse`?

    Hello,

    I was experimenting a little bit with Mitsuba 3 and doing mi.traverse on a scene I was surprised to observe:

    • When wrapping shapes into shape groups, we lose access to all the parameters of the children (they are not displayed by the traverse function)
    • It seems possible to differentiate the vertices of a given shape but not the to_world matrix of shapes nor cameras. Is there something to enable to get those. It seems that getting the gradient wrt the to_world matrix should be doable assuming one have the gradient on each individual vertices no ?

    Thank you for the clarifications!

    opened by GuillaumeLeclerc 1
  • Medium Rendering Issue

    Medium Rendering Issue

    Greetings, When I attempt to produced medium rendering, the scene only shows the shadows of the model I produced. I adjusted the scale, but that didn't help either. I attached my xml and image file. Do you know what I may be doing wrong?

    Blood (7)

    XML:

    medium_xml medium_xml_2
    opened by Vmbundu 1
  • Fix unable detect qt5 by using high version scons to build

    Fix unable detect qt5 by using high version scons to build

    I use Python3 and Scons-v4.3 to build the mitsuba, but was unable to detect the qt5 when building. I try to get the exception from qt5.py, and I find that SCons.Warnings do not have the attribute of Warning When I search the document of Scons-v4.0.1, I see the Warning is inherited from Errors.UserError and has subclass WarningOnByDefault image However, from version v4.1.0, I can't find the Warning in the document, instead I find class SConsWarning is inherited from Errors.UserError and has subclass WarningOnByDefault image image So I change the qt5.py so that it can run in high version Scons and keep it compatible with the low versions.

    opened by OmegaZhou 0
  • Can I adjust the absorption and scattering coefficients directly?

    Can I adjust the absorption and scattering coefficients directly?

    Greetings, I was looking to create either a model or medium rendering that I can adjust the absorption and scattering coefficient to directly. Is that possible with mitsuba? If so, how?

    opened by Vmbundu 0
  • Ubuntu 20.04 compile error for GLEWContextStruct

    Ubuntu 20.04 compile error for GLEWContextStruct

    I was trying to compile mitsuba 0.6.0 on Ubuntu 20.04 machine. I have changed the compiler to -std=gnu++11 for this version of Ubuntu. Previously, I have successfully compiled mitsuba on Ubuntu 16.04 with the compiler set to -std=c++11.

    However, on Ubuntu 20.04, I got the following error:

    In file included from include/mitsuba/mitsuba.h:52,
                     from src/libhw/glrenderer.cpp:19:
    src/libhw/glrenderer.cpp: In member function ‘virtual void mitsuba::GLRenderer::init(mitsuba::Device*, mitsuba::Renderer*)’:
    src/libhw/glrenderer.cpp:148:39: warning: ?: using integer constants in boolean context [-Wint-in-bool-context]
      148 |         Log((m_warnLogLevel == EWarn) ? EInfo : m_warnLogLevel,
    include/mitsuba/core/logger.h:40:31: note: in definition of macro ‘Log’
       40 |         if (logger != NULL && level >= logger->getLogLevel()) \
          |                               ^~~~~
    src/libhw/glrenderer.cpp:197:39: warning: ?: using integer constants in boolean context [-Wint-in-bool-context]
      197 |         Log((m_warnLogLevel == EWarn) ? EInfo : m_warnLogLevel,
    include/mitsuba/core/logger.h:40:31: note: in definition of macro ‘Log’
       40 |         if (logger != NULL && level >= logger->getLogLevel()) \
          |                               ^~~~~
    In file included from include/mitsuba/mitsuba.h:51,
                     from src/libhw/glrenderer.cpp:19:
    include/mitsuba/core/tls.h: In instantiation of ‘static void* mitsuba::PrimitiveThreadLocal<ValueType>::construct() [with ValueType = GLEWContextStruct]’:
    include/mitsuba/core/tls.h:118:60:   required from ‘mitsuba::PrimitiveThreadLocal<ValueType>::PrimitiveThreadLocal() [with ValueType = GLEWContextStruct]’
    src/libhw/glrenderer.cpp:33:57:   required from here
    include/mitsuba/core/tls.h:140:16: error: invalid use of incomplete type ‘struct GLEWContextStruct’
      140 |         return new ValueType();
          |                ^~~~~~~~~~~~~~~
    In file included from src/libhw/glrenderer.cpp:25:
    include/mitsuba/hw/glrenderer.h:25:8: note: forward declaration of ‘struct GLEWContextStruct’
       25 | struct GLEWContextStruct;
          |        ^~~~~~~~~~~~~~~~~
    In file included from include/mitsuba/mitsuba.h:51,
                     from src/libhw/glrenderer.cpp:19:
    include/mitsuba/core/tls.h: In instantiation of ‘static void mitsuba::PrimitiveThreadLocal<ValueType>::destruct(void*) [with ValueType = GLEWContextStruct]’:
    include/mitsuba/core/tls.h:119:32:   required from ‘mitsuba::PrimitiveThreadLocal<ValueType>::PrimitiveThreadLocal() [with ValueType = GLEWContextStruct]’
    src/libhw/glrenderer.cpp:33:57:   required from here
    include/mitsuba/core/tls.h:145:13: warning: possible problem detected in invocation of delete operator: [-Wdelete-incomplete]
      145 |             delete static_cast<ValueType *>(data);
          |             ^~~~~~
    include/mitsuba/core/tls.h:145:45: warning: invalid use of incomplete type ‘struct GLEWContextStruct’
      145 |             delete static_cast<ValueType *>(data);
          |                                             ^~~~
    In file included from src/libhw/glrenderer.cpp:25:
    include/mitsuba/hw/glrenderer.h:25:8: note: forward declaration of ‘struct GLEWContextStruct’
       25 | struct GLEWContextStruct;
          |        ^~~~~~~~~~~~~~~~~
    In file included from include/mitsuba/mitsuba.h:51,
                     from src/libhw/glrenderer.cpp:19:
    include/mitsuba/core/tls.h:145:13: note: neither the destructor nor the class-specific operator delete will be called, even if they are declared when the class is defined
      145 |             delete static_cast<ValueType *>(data);
          |             ^~~~~~
    scons: *** [build/release/libhw/glrenderer.os] Error 1
    scons: building terminated because of errors.
    

    Any idea how to fix that problem in Ubuntu 20.04?

    opened by jesscel 2
Owner
Mitsuba Physically Based Renderer
A Retargetable Forward and Inverse Renderer
Mitsuba Physically Based Renderer
The main repository for the Darkflame Universe Server Emulator project.

Darkflame Universe Introduction Darkflame Universe (DLU) is a server emulator for LEGO® Universe. Development started in 2013 and has gone through mul

null 492 Jan 7, 2023
A conda-smithy repository for qt-main.

About qt-main Home: http://qt.io Package license: LGPL-3.0-only Feedstock license: BSD-3-Clause Summary: Qt is a cross-platform application and UI fra

conda-forge 4 Dec 15, 2022
EarlyBird process hollowing technique (BOF) - Spawns a process in a suspended state, inject shellcode, hijack main thread with APC, and execute shellcode

HOLLOW - Cobalt Strike BOF Authors: Bobby Cooke (@0xBoku) Justin Hamilton (@JTHam0) Octavio Paguaga (@OakTree__) Matt Kingstone (@n00bRage) Beacon Obj

Bobby Cooke 203 Dec 20, 2022
This project contains the main ROS 2 packages of Xiaomi CyberDog®.

Xiaomi CyberDog ROS 2 文档包含简体中文和English 简介 - Introduction 本项目包含小米铁蛋®的ROS 2主要功能包. This project contains the main ROS 2 packages of Xiaomi CyberDog®. 基本信

null 383 Dec 31, 2022
An operating system. Its main goal? Readable code, developer experience and documentation.

OS Dependencies Required for development. sudo apt install build-essential nasm grub-pc-bin grub-common xorriso Required for building cross-compiler.

Stijn Rogiest 1 Nov 15, 2022
A commented version of my libft, with details about how my algorithms work and simple main functions to compile them.

LIBFT COMMENTED VERSION : ?? PART I : ?? FT_STRCHR : ?? PART II : ?? FT_SUBSTR : /* * DEFINITION : * CREATES A SUBSTRING FROM A STRING WITH PREDETER

Abdessamad Laamimi 1 Nov 11, 2021
Half-Life : Extended main branch for developing purposes

Half Life : Extended SDK Source Code of Half Life : Extended as a open source modbase for everyone publicly, make your own mod with alot of features e

Bacontsu 15 Dec 12, 2022
PRINT++ is a simple, open source print library for C++, the main usage of PRINT++ is printing out "log" messages

note that for now, print++ is using std::cout. In future it will be using own print function. Windows version can be unstable That library is in alpha

Ksawery 3 Jan 23, 2022
OpenBK7231T project - main application

Building Clone the SDK repo to a folder, e.g. bk7231sdk/ Clone the app repo into bk7231sdk/apps/ - e.g. bk7231sdk\apps\openbk7231app On Windows, start

null 428 Jan 9, 2023
DOOM BSP renderer for ZenithOS.

Zenith DOOM This project ports the DOOM BSP renderer to Zenith for use in custom games. It includes a zos/ directory in src/ which has includes that e

null 3 Jun 10, 2021
refterm is a reference renderer for monospace terminal displays.

refterm v2 refterm is a reference renderer for monospace terminal displays. It was designed to demonstrate that even in the worst-case scenario - extr

Casey Muratori 1.3k Jan 1, 2023
Super Simple Scene Renderer

SSSR Super Simple Scene Renderer Feature Rendering path Forward rendering Deferred rendering Physically based rendering GGX Image based lighting Equir

AICDG 5 Dec 9, 2021
Simple font renderer library written in Opengl 3.3 using stb_truetype.h to load a packed bitmap into texture of a .ttf font.

mv_easy_font Simple font renderer library written in Opengl 3.3 using stb_truetype.h to load a packed bitmap into texture of a .ttf font. Uses instanc

null 27 May 13, 2022
Binaural EBU ADM Renderer

Binaural EBU ADM Renderer (BEAR) The BEAR is a binaural renderer for ADM content. It is based on the EAR, and is is integrated into the EAR Production

European Broadcasting Union 10 Sep 6, 2022
Tiny C++ Software Renderer/Rasterizer

SoftGLRender Tiny C++ Software Renderer/Rasterizer, it implements the main GPU rendering pipeline, 3D models (GLTF) are loaded by assimp, and using GL

Keith 488 Dec 30, 2022
This repository is for everyone for Hacktoberfest 2021. Anyone can contribute anything for your Swags (T- Shirt), must be relevant that can add some value to this repository.

Hacktober Fest 2021 For Everyone! Upload Projects or Different Types of Programs in any Language Use this project to make your first contribution to a

Mahesh Jain 174 Dec 27, 2022
This Repository is created to help fellow coders learn open source contributions. This Repository is created for Hacktoberfest 2021

Hacktoberfest 2021 Follow the README below to get started! This Repository is created to help fellow coders learn open source contributions This Repos

Somesh Debnath 6 Oct 24, 2022
This repository is a study repository to implement the LCD 16x2 in my project below

This repository is a study repository to implement the LCD 16x2 in my project below. Index ?? About ?? Functionalities ?? Deploy ?? Requirements ?? Pi

Rickelme Dias 3 Jun 7, 2022