├── data ├── darwin │ ├── PkgInfo │ ├── qt.conf │ ├── crash_report.sh │ ├── PreviewSettings.nib │ ├── Resources │ │ └── mitsuba.icns │ ├── strip-symbols.sh │ ├── build-dmg.sh │ ├── add-icl-libraries.sh │ ├── lipo.sh │ └── extract-symbols.sh ├── tests │ ├── bunny.ply │ ├── envmap.exr │ ├── test_bidir_1.xml │ ├── test_emitter.xml │ ├── test_bidir_0.xml │ ├── test_bidir_2.xml │ └── test_phase.xml ├── microfacet │ ├── ggx.dat │ ├── phong.dat │ └── beckmann.dat ├── windows │ ├── getdate.exe │ ├── mitsuba.ico │ ├── mitsuba.png │ ├── mitsuba_res.rc │ ├── build-dist.bat │ ├── extract-symbols.ps1 │ ├── README.txt │ ├── mitsuba-msvc2017.vcxproj.filters.template │ ├── mitsuba-msvc2017.sln.template │ └── qmake_fake.c ├── linux │ ├── fontgen │ │ ├── Vera.ttf │ │ ├── VeraMono.ttf │ │ ├── gen.sh │ │ ├── Makefile │ │ └── bin2c.c │ └── mitsuba.desktop ├── plugin-starter-kit │ ├── README │ ├── SConstruct │ └── myutil.cpp ├── ior │ ├── TiC.k.spd │ ├── TiN.k.spd │ ├── VC.eta.spd │ ├── VC.k.spd │ ├── VN.eta.spd │ ├── VN.k.spd │ ├── TiC.eta.spd │ ├── TiN.eta.spd │ ├── VC_palik.k.spd │ ├── VN_palik.k.spd │ ├── TiN_palik.eta.spd │ ├── TiN_palik.k.spd │ ├── VC_palik.eta.spd │ ├── VN_palik.eta.spd │ ├── TiC_palik.eta.spd │ ├── TiC_palik.k.spd │ ├── d-C.eta.spd │ ├── d-C.k.spd │ ├── Be_palik.k.spd │ ├── Be_palik.eta.spd │ ├── CuO.k.spd │ ├── Li.k.spd │ ├── Cu2O.eta.spd │ ├── Cu2O.k.spd │ ├── CuO.eta.spd │ ├── Li.eta.spd │ ├── Li_palik.k.spd │ ├── Li_palik.eta.spd │ ├── d-C_palik.k.spd │ ├── Hg.eta.spd │ ├── Hg.k.spd │ ├── Se-e.k.spd │ ├── d-C_palik.eta.spd │ ├── Se-e.eta.spd │ ├── Se-e_palik.eta.spd │ ├── Se-e_palik.k.spd │ ├── Be.eta.spd │ ├── Be.k.spd │ ├── Cu2O_palik.k.spd │ ├── Cu2O_palik.eta.spd │ ├── Se.eta.spd │ ├── Se.k.spd │ ├── a-C.eta.spd │ ├── a-C.k.spd │ ├── Se_palik.k.spd │ ├── CuO_palik.eta.spd │ ├── CuO_palik.k.spd │ ├── Se_palik.eta.spd │ ├── Hg_palik.k.spd │ ├── Na_palik.k.spd │ ├── Hg_palik.eta.spd │ ├── Na_palik.eta.spd │ ├── K.eta.spd │ ├── K.k.spd │ ├── K_palik.k.spd │ ├── K_palik.eta.spd │ ├── Ta.eta.spd │ ├── Ta.k.spd │ ├── Cu_palik.eta.spd │ ├── Cu_palik.k.spd │ ├── SnTe.eta.spd │ ├── SnTe.k.spd │ ├── AlSb.k.spd │ ├── SnTe_palik.k.spd │ ├── AlSb.eta.spd │ ├── AlSb_palik.k.spd │ ├── SnTe_palik.eta.spd │ ├── AlSb_palik.eta.spd │ ├── Ta_palik.k.spd │ ├── Ta_palik.eta.spd │ ├── Nb.eta.spd │ ├── Nb.k.spd │ ├── SiC.eta.spd │ ├── SiC.k.spd │ ├── Rh.eta.spd │ ├── Rh.k.spd │ ├── Ir.eta.spd │ ├── Ir.k.spd │ ├── Mo.eta.spd │ ├── Mo.k.spd │ ├── Cr.eta.spd │ ├── Cr.k.spd │ ├── Nb_palik.k.spd │ ├── Nb_palik.eta.spd │ ├── MgO.k.spd │ ├── MgO.eta.spd │ ├── Rh_palik.eta.spd │ ├── Rh_palik.k.spd │ ├── SiC_palik.eta.spd │ ├── SiC_palik.k.spd │ ├── Ir_palik.eta.spd │ ├── Ir_palik.k.spd │ ├── Mo_palik.eta.spd │ ├── Mo_palik.k.spd │ ├── V_palik.eta.spd │ ├── V_palik.k.spd │ ├── MgO_palik.eta.spd │ ├── MgO_palik.k.spd │ ├── TiO2.k.spd │ ├── TiO2.eta.spd │ ├── Ni_palik.eta.spd │ ├── Ni_palik.k.spd │ ├── TiO2-e.eta.spd │ ├── TiO2-e.k.spd │ ├── TiO2-e_palik.eta.spd │ ├── TiO2-e_palik.k.spd │ ├── TiO2_palik.eta.spd │ ├── TiO2_palik.k.spd │ ├── ThF4.k.spd │ ├── ThF4.eta.spd │ ├── ThF4_palik.k.spd │ ├── ThF4_palik.eta.spd │ ├── AlAs.k.spd │ ├── AlAs.eta.spd │ ├── AlAs_palik.k.spd │ ├── AlAs_palik.eta.spd │ ├── Te.eta.spd │ ├── Te.k.spd │ ├── Te-e.k.spd │ ├── Te_palik.eta.spd │ └── Te_palik.k.spd ├── schema │ ├── upgrade_0.6.0.xsl │ └── upgrade_0.5.0.xsl └── scripts │ └── rendertime.py ├── include └── Eigen │ ├── Eigen │ ├── src │ ├── Core │ │ ├── util │ │ │ ├── NonMPL2.h │ │ │ └── ReenableStupidWarnings.h │ │ ├── functors │ │ │ └── TernaryFunctors.h │ │ └── DiagonalProduct.h │ ├── misc │ │ └── lapacke_mangling.h │ └── SparseCore │ │ └── SparseFuzzy.h │ ├── Dense │ ├── CMakeLists.txt │ ├── StdList │ ├── StdDeque │ ├── StdVector │ ├── Householder │ ├── Sparse │ ├── Jacobi │ ├── QtAlignedMalloc │ ├── MetisSupport │ ├── PardisoSupport │ ├── SPQRSupport │ ├── SparseQR │ └── Cholesky ├── .agignore ├── src ├── mtsgui │ ├── resources │ │ ├── add.png │ │ ├── log.png │ │ ├── about.png │ │ ├── camera.png │ │ ├── clear.png │ │ ├── clone.png │ │ ├── close.png │ │ ├── crop.png │ │ ├── devel.png │ │ ├── help.png │ │ ├── import.png │ │ ├── logo.png │ │ ├── open.png │ │ ├── play.png │ │ ├── remove.png │ │ ├── save.png │ │ ├── saveas.png │ │ ├── server.png │ │ ├── stop.png │ │ ├── update.png │ │ ├── zoom.png │ │ ├── appicon.png │ │ ├── controls.png │ │ ├── fpreview.png │ │ ├── picture.png │ │ ├── preview.png │ │ ├── refresh.png │ │ ├── settings.png │ │ ├── zoomcrop.png │ │ ├── adjustsize.png │ │ ├── branch-open.png │ │ ├── mitsuba48.png │ │ ├── preferences.png │ │ ├── refresh@2x.png │ │ ├── showStats.png │ │ ├── zoom-reset.png │ │ ├── branch-closed.png │ │ ├── duplicatetab.png │ │ ├── zoom-best-fit.png │ │ ├── zoom.svg │ │ ├── zoom-reset.svg │ │ └── crop.svg │ ├── shaders │ │ ├── gamma.vert │ │ ├── reinhard.vert │ │ ├── logluminance.vert │ │ ├── downsampling.vert │ │ ├── logluminance.frag │ │ ├── gamma.frag │ │ └── downsampling.frag │ ├── previewsettingsdlg_cocoa.cpp │ ├── save.h │ ├── tabbar.h │ ├── aboutdlg.h │ ├── acknowledgmentdlg.h │ ├── sceneinfodlg.h │ └── upgrade.h ├── medium │ └── SConscript ├── subsurface │ └── SConscript ├── volume │ └── SConscript ├── rfilters │ └── SConscript ├── phase │ └── SConscript ├── utils │ └── SConscript ├── samplers │ └── SConscript ├── textures │ └── SConscript ├── emitters │ └── SConscript ├── sensors │ └── SConscript ├── tests │ └── SConscript ├── libbidir │ └── SConscript ├── films │ └── SConscript ├── libhw │ ├── data │ │ ├── sh_directional.vert │ │ ├── sh_unsupported.frag │ │ ├── sh_cube_1pass.vert │ │ ├── sh_paraboloid.vert │ │ ├── sh_hemicube_1pass.vert │ │ ├── sh_directional.frag │ │ ├── sh_cube_1pass.frag │ │ ├── sh_hemicube_1pass.frag │ │ ├── sh_unsupported.vert │ │ ├── sh_background.vert │ │ ├── sh_cube_6pass.frag │ │ ├── sh_cube_6pass.vert │ │ └── sh_background.frag │ ├── gpusync.cpp │ └── gpugeometry.cpp ├── devplugins │ └── SConscript ├── shapes │ ├── SConscript │ └── ply │ │ └── io_operators.hpp ├── mitsuba │ └── darwin_stub.mm ├── converter │ └── SConscript └── librender │ └── SConscript ├── .hgtags ├── setpath.csh ├── .hgignore ├── .gitignore └── README.md /data/darwin/PkgInfo: -------------------------------------------------------------------------------- 1 | APPL???? -------------------------------------------------------------------------------- /data/darwin/qt.conf: -------------------------------------------------------------------------------- 1 | [Paths] 2 | Plugins = plugins 3 | -------------------------------------------------------------------------------- /include/Eigen/Eigen: -------------------------------------------------------------------------------- 1 | #include "Dense" 2 | #include "Sparse" 3 | -------------------------------------------------------------------------------- /.agignore: -------------------------------------------------------------------------------- 1 | dependencies 2 | build 3 | data 4 | Mitsuba.app 5 | scenes 6 | -------------------------------------------------------------------------------- /data/darwin/crash_report.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | dependencies/bin/crash_report -S symbols64/ $@ | less 3 | -------------------------------------------------------------------------------- /data/tests/bunny.ply: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/tests/bunny.ply -------------------------------------------------------------------------------- /data/tests/envmap.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/tests/envmap.exr -------------------------------------------------------------------------------- /data/microfacet/ggx.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/microfacet/ggx.dat -------------------------------------------------------------------------------- /data/microfacet/phong.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/microfacet/phong.dat -------------------------------------------------------------------------------- /data/windows/getdate.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/windows/getdate.exe -------------------------------------------------------------------------------- /data/windows/mitsuba.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/windows/mitsuba.ico -------------------------------------------------------------------------------- /data/windows/mitsuba.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/windows/mitsuba.png -------------------------------------------------------------------------------- /data/linux/fontgen/Vera.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/linux/fontgen/Vera.ttf -------------------------------------------------------------------------------- /data/microfacet/beckmann.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/microfacet/beckmann.dat -------------------------------------------------------------------------------- /src/mtsgui/resources/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/add.png -------------------------------------------------------------------------------- /src/mtsgui/resources/log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/log.png -------------------------------------------------------------------------------- /data/darwin/PreviewSettings.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/darwin/PreviewSettings.nib -------------------------------------------------------------------------------- /data/linux/fontgen/VeraMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/linux/fontgen/VeraMono.ttf -------------------------------------------------------------------------------- /data/plugin-starter-kit/README: -------------------------------------------------------------------------------- 1 | This is a tiny example on how Mitsuba plugins can be developed outside of the main codebase. 2 | -------------------------------------------------------------------------------- /src/mtsgui/resources/about.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/about.png -------------------------------------------------------------------------------- /src/mtsgui/resources/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/camera.png -------------------------------------------------------------------------------- /src/mtsgui/resources/clear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/clear.png -------------------------------------------------------------------------------- /src/mtsgui/resources/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/clone.png -------------------------------------------------------------------------------- /src/mtsgui/resources/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/close.png -------------------------------------------------------------------------------- /src/mtsgui/resources/crop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/crop.png -------------------------------------------------------------------------------- /src/mtsgui/resources/devel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/devel.png -------------------------------------------------------------------------------- /src/mtsgui/resources/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/help.png -------------------------------------------------------------------------------- /src/mtsgui/resources/import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/import.png -------------------------------------------------------------------------------- /src/mtsgui/resources/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/logo.png -------------------------------------------------------------------------------- /src/mtsgui/resources/open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/open.png -------------------------------------------------------------------------------- /src/mtsgui/resources/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/play.png -------------------------------------------------------------------------------- /src/mtsgui/resources/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/remove.png -------------------------------------------------------------------------------- /src/mtsgui/resources/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/save.png -------------------------------------------------------------------------------- /src/mtsgui/resources/saveas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/saveas.png -------------------------------------------------------------------------------- /src/mtsgui/resources/server.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/server.png -------------------------------------------------------------------------------- /src/mtsgui/resources/stop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/stop.png -------------------------------------------------------------------------------- /src/mtsgui/resources/update.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/update.png -------------------------------------------------------------------------------- /src/mtsgui/resources/zoom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/zoom.png -------------------------------------------------------------------------------- /data/windows/mitsuba_res.rc: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL 4 | 100 ICON mitsuba.ico 5 | -------------------------------------------------------------------------------- /src/mtsgui/resources/appicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/appicon.png -------------------------------------------------------------------------------- /src/mtsgui/resources/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/controls.png -------------------------------------------------------------------------------- /src/mtsgui/resources/fpreview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/fpreview.png -------------------------------------------------------------------------------- /src/mtsgui/resources/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/picture.png -------------------------------------------------------------------------------- /src/mtsgui/resources/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/preview.png -------------------------------------------------------------------------------- /src/mtsgui/resources/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/refresh.png -------------------------------------------------------------------------------- /src/mtsgui/resources/settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/settings.png -------------------------------------------------------------------------------- /src/mtsgui/resources/zoomcrop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/zoomcrop.png -------------------------------------------------------------------------------- /data/darwin/Resources/mitsuba.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/data/darwin/Resources/mitsuba.icns -------------------------------------------------------------------------------- /include/Eigen/src/Core/util/NonMPL2.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_MPL2_ONLY 2 | #error Including non-MPL2 code in EIGEN_MPL2_ONLY mode 3 | #endif 4 | -------------------------------------------------------------------------------- /src/mtsgui/resources/adjustsize.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/adjustsize.png -------------------------------------------------------------------------------- /src/mtsgui/resources/branch-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/branch-open.png -------------------------------------------------------------------------------- /src/mtsgui/resources/mitsuba48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/mitsuba48.png -------------------------------------------------------------------------------- /src/mtsgui/resources/preferences.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/preferences.png -------------------------------------------------------------------------------- /src/mtsgui/resources/refresh@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/refresh@2x.png -------------------------------------------------------------------------------- /src/mtsgui/resources/showStats.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/showStats.png -------------------------------------------------------------------------------- /src/mtsgui/resources/zoom-reset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/zoom-reset.png -------------------------------------------------------------------------------- /src/mtsgui/shaders/gamma.vert: -------------------------------------------------------------------------------- 1 | void main() { 2 | gl_Position = ftransform(); 3 | gl_TexCoord[0] = gl_MultiTexCoord0; 4 | } 5 | -------------------------------------------------------------------------------- /src/mtsgui/shaders/reinhard.vert: -------------------------------------------------------------------------------- 1 | void main() { 2 | gl_Position = ftransform(); 3 | gl_TexCoord[0] = gl_MultiTexCoord0; 4 | } 5 | -------------------------------------------------------------------------------- /src/mtsgui/resources/branch-closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/branch-closed.png -------------------------------------------------------------------------------- /src/mtsgui/resources/duplicatetab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/duplicatetab.png -------------------------------------------------------------------------------- /src/mtsgui/resources/zoom-best-fit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/leggcg/EfficientComplexLayered/HEAD/src/mtsgui/resources/zoom-best-fit.png -------------------------------------------------------------------------------- /src/mtsgui/shaders/logluminance.vert: -------------------------------------------------------------------------------- 1 | void main() { 2 | gl_Position = ftransform(); 3 | gl_TexCoord[0] = gl_MultiTexCoord0; 4 | } 5 | -------------------------------------------------------------------------------- /data/darwin/strip-symbols.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | strip -S Mitsuba.app/plugins/* Mitsuba.app/Contents/Frameworks/*.dylib Mitsuba.app/Contents/MacOS/* Mitsuba.app/python/*/* 3 | -------------------------------------------------------------------------------- /include/Eigen/Dense: -------------------------------------------------------------------------------- 1 | #include "Core" 2 | #include "LU" 3 | #include "Cholesky" 4 | #include "QR" 5 | #include "SVD" 6 | #include "Geometry" 7 | #include "Eigenvalues" 8 | -------------------------------------------------------------------------------- /data/windows/build-dist.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | xcopy dist "Mitsuba %1" /e /i /h 3 | del "Mitsuba %1.zip" 4 | 7z u -tzip "Mitsuba %1 %2bit.zip" "Mitsuba %1" 5 | rmdir /s /q "Mitsuba %1" 6 | -------------------------------------------------------------------------------- /data/plugin-starter-kit/SConstruct: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | env = Environment(ENV = os.environ, tools=['default']) 4 | env['SHLIBPREFIX'] = '' 5 | env.SharedLibrary('plugins/myutil', ['myutil.cpp']) 6 | -------------------------------------------------------------------------------- /src/medium/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('homogeneous', ['homogeneous.cpp']) 4 | plugins += env.SharedLibrary('heterogeneous', ['heterogeneous.cpp']) 5 | 6 | Export('plugins') 7 | -------------------------------------------------------------------------------- /data/windows/extract-symbols.ps1: -------------------------------------------------------------------------------- 1 | Remove-Item -Recurse -Force symbols 2 | mkdir symbols 3 | Get-ChildItem build -include *.pdb -recurse | foreach ($_) { python dependencies\bin\symbolstore.py dependencies\bin\dump_syms_x86 symbols $_.fullname } -------------------------------------------------------------------------------- /src/mtsgui/shaders/downsampling.vert: -------------------------------------------------------------------------------- 1 | uniform vec2 targetSize; 2 | void main() { 3 | gl_Position = ftransform(); 4 | gl_TexCoord[0].xy = vec2(gl_MultiTexCoord0.x * targetSize.x, 5 | gl_MultiTexCoord0.y * targetSize.y); 6 | } 7 | -------------------------------------------------------------------------------- /src/subsurface/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('dipole', 4 | ['dipole.cpp', 'irrproc.cpp', 'irrtree.cpp', 'bluenoise.cpp']) 5 | 6 | plugins += env.SharedLibrary('singlescatter', ['singlescatter.cpp']) 7 | Export('plugins') 8 | -------------------------------------------------------------------------------- /data/linux/fontgen/gen.sh: -------------------------------------------------------------------------------- 1 | ./fontgen VeraMono.ttf VeraMono.png VeraMono.dsc 14 2 | ./bin2c VeraMono.png veramono14_png.h veramono14_png 3 | ./bin2c VeraMono.dsc veramono14_dsc.h veramono14_dsc 4 | 5 | ./fontgen Vera.ttf Vera.png Vera.dsc 14 6 | ./bin2c Vera.png vera14_png.h vera14_png 7 | ./bin2c Vera.dsc vera14_dsc.h vera14_dsc 8 | -------------------------------------------------------------------------------- /data/linux/fontgen/Makefile: -------------------------------------------------------------------------------- 1 | CPPFLAGS = -I ../../../include -I /usr/include/freetype2 -DSINGLE_PRECISION -DSPECTRUM_SAMPLES=3 2 | LDFLAGS = -lfreetype -L../../../dist -lmitsuba-core -lmitsuba-hw -lboost_filesystem 3 | 4 | all: bin2c fontgen 5 | 6 | bin2c: bin2c.c 7 | 8 | fontgen: fontgen.cpp 9 | 10 | clean: 11 | rm -f fontgen 12 | -------------------------------------------------------------------------------- /src/volume/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('constvolume', ['constvolume.cpp']) 4 | plugins += env.SharedLibrary('gridvolume', ['gridvolume.cpp']) 5 | plugins += env.SharedLibrary('hgridvolume', ['hgridvolume.cpp']) 6 | plugins += env.SharedLibrary('volcache', ['volcache.cpp']) 7 | 8 | Export('plugins') 9 | -------------------------------------------------------------------------------- /data/linux/mitsuba.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Mitsuba 3 | GenericName=Mitsuba Renderer 4 | Comment=A physically based rendering system 5 | Encoding=UTF-8 6 | Version=1.0 7 | Type=Application 8 | Categories=Graphics 9 | Exec=mtsgui %U 10 | TryExec=mtsgui 11 | Terminal=false 12 | StartupNotify=true 13 | MimeType=application/xml;image/x-exr;image/x-hdr; 14 | Icon=mitsuba48 15 | -------------------------------------------------------------------------------- /data/darwin/build-dmg.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | rm -f Mitsuba.app/*.log 3 | dmgcanvas data/darwin/Mitsuba.dmgCanvas Mitsuba\ $1.dmg -v "Mitsuba $1" -leopard-compatible yes 4 | #echo $1 > /tmp/version 5 | #scp /tmp/version ChangeLog wazlaf@mitsuba-renderer.org:/home/httpd/mitsuba-renderer.org/htdocs 6 | #scp Mitsuba\ $1.dmg wazlaf@mitsuba-renderer.org:/home/httpd/mitsuba-renderer.org/htdocs/releases 7 | -------------------------------------------------------------------------------- /data/ior/TiC.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiC_llnl_cxro + TiC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.330000 11 | 354.229004 2.340000 12 | 413.266998 2.430000 13 | 495.920013 2.380000 14 | 619.900024 2.670000 15 | 826.533020 3.070000 16 | -------------------------------------------------------------------------------- /data/ior/TiN.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiN 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiN_llnl_cxro + TiN_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 1.230000 11 | 354.229004 1.060000 12 | 413.266998 1.040000 13 | 495.920013 1.650000 14 | 619.900024 2.690000 15 | 826.533020 3.810000 16 | -------------------------------------------------------------------------------- /data/ior/VC.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; VC_llnl_cxro + VC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.470000 11 | 354.229004 2.590000 12 | 413.266998 2.770000 13 | 495.920013 2.840000 14 | 619.900024 3.010000 15 | 826.533020 3.370000 16 | -------------------------------------------------------------------------------- /data/ior/VC.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; VC_llnl_cxro + VC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.150000 11 | 354.229004 2.120000 12 | 413.266998 2.160000 13 | 495.920013 2.210000 14 | 619.900024 2.510000 15 | 826.533020 2.880000 16 | -------------------------------------------------------------------------------- /data/ior/VN.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VN 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; VN_llnl_cxro + VN_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.200000 11 | 354.229004 2.180000 12 | 413.266998 2.130000 13 | 495.920013 2.170000 14 | 619.900024 2.350000 15 | 826.533020 2.730000 16 | -------------------------------------------------------------------------------- /data/ior/VN.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VN 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; VN_llnl_cxro + VN_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 1.540000 11 | 354.229004 1.580000 12 | 413.266998 1.700000 13 | 495.920013 1.980000 14 | 619.900024 2.470000 15 | 826.533020 2.920000 16 | -------------------------------------------------------------------------------- /data/ior/TiC.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiC_llnl_cxro + TiC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.300000 11 | 354.229004 2.570000 12 | 413.266998 2.780000 13 | 495.920013 2.950000 14 | 619.900024 3.050000 15 | 826.533020 3.510000 16 | -------------------------------------------------------------------------------- /data/ior/TiN.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiN 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiN_llnl_cxro + TiN_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.270000 11 | 354.229004 2.140000 12 | 413.266998 1.740000 13 | 495.920013 1.200000 14 | 619.900024 1.320000 15 | 826.533020 1.820000 16 | -------------------------------------------------------------------------------- /data/tests/test_bidir_1.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /src/rfilters/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('box', ['box.cpp']) 4 | plugins += env.SharedLibrary('tent', ['tent.cpp']) 5 | plugins += env.SharedLibrary('lanczos', ['lanczos.cpp']) 6 | plugins += env.SharedLibrary('mitchell', ['mitchell.cpp']) 7 | plugins += env.SharedLibrary('catmullrom', ['catmullrom.cpp']) 8 | plugins += env.SharedLibrary('gaussian', ['gaussian.cpp']) 9 | 10 | Export('plugins') 11 | -------------------------------------------------------------------------------- /src/phase/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('isotropic', ['isotropic.cpp']) 4 | plugins += env.SharedLibrary('hg', ['hg.cpp']) 5 | plugins += env.SharedLibrary('rayleigh', ['rayleigh.cpp']) 6 | plugins += env.SharedLibrary('kkay', ['kkay.cpp']) 7 | plugins += env.SharedLibrary('microflake', ['microflake.cpp']) 8 | plugins += env.SharedLibrary('mixturephase', ['mixturephase.cpp']) 9 | 10 | Export('plugins') 11 | -------------------------------------------------------------------------------- /src/utils/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('addimages', ['addimages.cpp']) 4 | plugins += env.SharedLibrary('joinrgb', ['joinrgb.cpp']) 5 | plugins += env.SharedLibrary('cylclip', ['cylclip.cpp']) 6 | plugins += env.SharedLibrary('kdbench', ['kdbench.cpp']) 7 | plugins += env.SharedLibrary('tonemap', ['tonemap.cpp']) 8 | #plugins += env.SharedLibrary('rdielprec', ['rdielprec.cpp']) 9 | 10 | Export('plugins') 11 | -------------------------------------------------------------------------------- /data/plugin-starter-kit/myutil.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | MTS_NAMESPACE_BEGIN 4 | 5 | class MyUtility : public Utility { 6 | public: 7 | MyUtility(UtilityServices *us) : Utility(us) { } 8 | 9 | int run(int argc, char **argv) { 10 | cout << "Hello world!" << endl; 11 | return 0; 12 | } 13 | 14 | MTS_DECLARE_CLASS() 15 | }; 16 | 17 | MTS_IMPLEMENT_CLASS(MyUtility, false, Utility) 18 | MTS_EXPORT_UTILITY(MyUtility, "Example utility") 19 | MTS_NAMESPACE_END 20 | -------------------------------------------------------------------------------- /data/ior/VC_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VC 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.150000 12 | 354.229004 2.120000 13 | 413.266998 2.160000 14 | 495.920013 2.210000 15 | 619.900024 2.510000 16 | 826.533020 2.880000 17 | -------------------------------------------------------------------------------- /data/ior/VN_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VN 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.540000 12 | 354.229004 1.580000 13 | 413.266998 1.700000 14 | 495.920013 1.980000 15 | 619.900024 2.470000 16 | 826.533020 2.920000 17 | -------------------------------------------------------------------------------- /src/samplers/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('independent', ['independent.cpp']) 4 | plugins += env.SharedLibrary('stratified', ['stratified.cpp']) 5 | plugins += env.SharedLibrary('halton', ['halton.cpp', 'faure.cpp']) 6 | plugins += env.SharedLibrary('hammersley', ['hammersley.cpp', 'faure.cpp']) 7 | plugins += env.SharedLibrary('ldsampler', ['ldsampler.cpp']) 8 | plugins += env.SharedLibrary('sobol', ['sobol.cpp', 'sobolseq.cpp']) 9 | 10 | Export('plugins') 11 | -------------------------------------------------------------------------------- /data/ior/TiN_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiN 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.270000 12 | 354.229004 2.140000 13 | 413.266998 1.740000 14 | 495.920013 1.200000 15 | 619.900024 1.320000 16 | 826.533020 1.820000 17 | -------------------------------------------------------------------------------- /data/ior/TiN_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for TiN 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.230000 12 | 354.229004 1.060000 13 | 413.266998 1.040000 14 | 495.920013 1.650000 15 | 619.900024 2.690000 16 | 826.533020 3.810000 17 | -------------------------------------------------------------------------------- /data/ior/VC_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VC 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.470000 12 | 354.229004 2.590000 13 | 413.266998 2.770000 14 | 495.920013 2.840000 15 | 619.900024 3.010000 16 | 826.533020 3.370000 17 | -------------------------------------------------------------------------------- /data/ior/VN_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for VN 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.200000 12 | 354.229004 2.180000 13 | 413.266998 2.130000 14 | 495.920013 2.170000 15 | 619.900024 2.350000 16 | 826.533020 2.730000 17 | -------------------------------------------------------------------------------- /data/ior/TiC_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline TiC 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.300000 12 | 354.229004 2.570000 13 | 413.266998 2.780000 14 | 495.920013 2.950000 15 | 619.900024 3.050000 16 | 826.533020 3.510000 17 | -------------------------------------------------------------------------------- /data/ior/TiC_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline TiC 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.330000 12 | 354.229004 2.340000 13 | 413.266998 2.430000 14 | 495.920013 2.380000 15 | 619.900024 2.670000 16 | 826.533020 3.070000 17 | -------------------------------------------------------------------------------- /data/ior/d-C.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for diamond 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; d-C_llnl_cxro + d-C_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 346.700012 2.495400 11 | 361.037018 2.485400 12 | 404.634003 2.462600 13 | 467.795990 2.440800 14 | 486.120026 2.435400 15 | 508.552002 2.430600 16 | 546.047058 2.423500 17 | 588.979004 2.417500 18 | 643.818054 2.411100 19 | 656.257019 2.410400 20 | -------------------------------------------------------------------------------- /data/ior/d-C.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for diamond 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; d-C_llnl_cxro + d-C_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 346.700012 0.000000 11 | 361.037018 0.000000 12 | 404.634003 0.000000 13 | 467.795990 0.000000 14 | 486.120026 0.000000 15 | 508.552002 0.000000 16 | 546.047058 0.000000 17 | 588.979004 0.000000 18 | 643.818054 0.000000 19 | 656.257019 0.000000 20 | -------------------------------------------------------------------------------- /src/textures/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('bitmap', ['bitmap.cpp']) 4 | plugins += env.SharedLibrary('scale', ['scale.cpp']) 5 | plugins += env.SharedLibrary('gridtexture', ['gridtexture.cpp']) 6 | plugins += env.SharedLibrary('checkerboard', ['checkerboard.cpp']) 7 | plugins += env.SharedLibrary('vertexcolors', ['vertexcolors.cpp']) 8 | plugins += env.SharedLibrary('wireframe', ['wireframe.cpp']) 9 | plugins += env.SharedLibrary('curvature', ['curvature.cpp']) 10 | 11 | Export('plugins') 12 | -------------------------------------------------------------------------------- /data/ior/Be_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline Be 3 | # ; 4 | # ; Lambda (A) n k 5 | # data from www.luxpop.com database 6 | 310.000000 3.080000 7 | 326.300018 3.080000 8 | 344.399994 3.080000 9 | 364.600006 3.100000 10 | 387.399994 3.120000 11 | 413.300018 3.140000 12 | 442.800018 3.160000 13 | 476.800018 3.160000 14 | 516.600037 3.180000 15 | 563.500000 3.170000 16 | 619.900024 3.180000 17 | 688.799988 3.230000 18 | 774.900024 3.350000 19 | 885.600037 3.550000 20 | -------------------------------------------------------------------------------- /data/ior/Be_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline Be 3 | # ; 4 | # ; Lambda (A) n k 5 | # data from www.luxpop.com database 6 | 310.000000 2.470000 7 | 326.300018 2.550000 8 | 344.399994 2.640000 9 | 364.600006 2.730000 10 | 387.399994 2.840000 11 | 413.300018 2.950000 12 | 442.800018 3.070000 13 | 476.800018 3.190000 14 | 516.600037 3.300000 15 | 563.500000 3.390000 16 | 619.900024 3.460000 17 | 688.799988 3.470000 18 | 774.900024 3.440000 19 | 885.600037 3.350000 20 | -------------------------------------------------------------------------------- /data/ior/CuO.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for CuO 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; CuO_llnl_cxro + CuO_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 350.028015 1.030000 11 | 399.935028 0.870000 12 | 449.854980 0.770000 13 | 499.919006 0.680000 14 | 549.799988 0.590000 15 | 599.806030 0.500000 16 | 649.789978 0.400000 17 | 700.056030 0.310000 18 | 750.029968 0.220000 19 | 799.871033 0.110000 20 | 849.759949 0.040000 21 | 899.709961 0.030000 22 | -------------------------------------------------------------------------------- /data/ior/Li.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Li 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 306.123016 1.210000 12 | 330.613007 1.320000 13 | 359.362030 1.450000 14 | 393.587006 1.600000 15 | 435.018036 1.820000 16 | 486.196014 2.110000 17 | 551.022034 2.480000 18 | 635.795044 2.940000 19 | 751.393982 3.550000 20 | -------------------------------------------------------------------------------- /data/ior/Cu2O.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu2O 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Cu2O_llnl_cxro + Cu2O_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 350.028015 2.400000 11 | 399.935028 2.800000 12 | 449.854980 3.060000 13 | 499.919006 3.120000 14 | 549.799988 3.100000 15 | 599.806030 3.020000 16 | 649.789978 2.900000 17 | 700.056030 2.830000 18 | 750.029968 2.770000 19 | 799.871033 2.700000 20 | 849.759949 2.660000 21 | 899.709961 2.630000 22 | -------------------------------------------------------------------------------- /data/ior/Cu2O.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu2O 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Cu2O_llnl_cxro + Cu2O_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 350.028015 1.440000 11 | 399.935028 0.990000 12 | 449.854980 0.600000 13 | 499.919006 0.350000 14 | 549.799988 0.190000 15 | 599.806030 0.130000 16 | 649.789978 0.100000 17 | 700.056030 0.083000 18 | 750.029968 0.070000 19 | 799.871033 0.060000 20 | 849.759949 0.053000 21 | 899.709961 0.048000 22 | -------------------------------------------------------------------------------- /data/ior/CuO.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for CuO 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; CuO_llnl_cxro + CuO_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 350.028015 2.240000 11 | 399.935028 2.340000 12 | 449.854980 2.450000 13 | 499.919006 2.540000 14 | 549.799988 2.580000 15 | 599.806030 2.650000 16 | 649.789978 2.720000 17 | 700.056030 2.880000 18 | 750.029968 2.970000 19 | 799.871033 2.940000 20 | 849.759949 2.810000 21 | 899.709961 2.740000 22 | -------------------------------------------------------------------------------- /data/ior/Li.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Li 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 306.123016 0.346000 12 | 330.613007 0.345000 13 | 359.362030 0.334000 14 | 393.587006 0.304000 15 | 435.018036 0.247000 16 | 486.196014 0.217000 17 | 551.022034 0.206000 18 | 635.795044 0.221000 19 | 751.393982 0.265000 20 | -------------------------------------------------------------------------------- /data/ior/Li_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Li 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 306.123016 1.210000 12 | 330.613007 1.320000 13 | 359.362030 1.450000 14 | 393.587006 1.600000 15 | 435.018036 1.820000 16 | 486.196014 2.110000 17 | 551.022034 2.480000 18 | 635.795044 2.940000 19 | 751.393982 3.550000 20 | -------------------------------------------------------------------------------- /data/ior/Li_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Li 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 306.123016 0.346000 12 | 330.613007 0.345000 13 | 359.362030 0.334000 14 | 393.587006 0.304000 15 | 435.018036 0.247000 16 | 486.196014 0.217000 17 | 551.022034 0.206000 18 | 635.795044 0.221000 19 | 751.393982 0.265000 20 | -------------------------------------------------------------------------------- /include/Eigen/src/misc/lapacke_mangling.h: -------------------------------------------------------------------------------- 1 | #ifndef LAPACK_HEADER_INCLUDED 2 | #define LAPACK_HEADER_INCLUDED 3 | 4 | #ifndef LAPACK_GLOBAL 5 | #if defined(LAPACK_GLOBAL_PATTERN_LC) || defined(ADD_) 6 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 7 | #elif defined(LAPACK_GLOBAL_PATTERN_UC) || defined(UPPER) 8 | #define LAPACK_GLOBAL(lcname,UCNAME) UCNAME 9 | #elif defined(LAPACK_GLOBAL_PATTERN_MC) || defined(NOCHANGE) 10 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname 11 | #else 12 | #define LAPACK_GLOBAL(lcname,UCNAME) lcname##_ 13 | #endif 14 | #endif 15 | 16 | #endif 17 | 18 | -------------------------------------------------------------------------------- /data/darwin/add-icl-libraries.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp /opt/intel/composer_xe_*/compiler/lib/libiomp5.dylib Mitsuba.app/Contents/Frameworks 3 | install_name_tool -id @rpath/libiomp5.dylib Mitsuba.app/Contents/Frameworks/libiomp5.dylib 4 | find Mitsuba.app/Contents/MacOS/ Mitsuba.app/plugins -type f | xargs -n 1 install_name_tool -change libiomp5.dylib @rpath/libiomp5.dylib 5 | find Mitsuba.app/Contents/Frameworks/libmitsuba-* -type f | xargs -n 1 install_name_tool -change libiomp5.dylib @rpath/libiomp5.dylib 6 | find Mitsuba.app/python -type f | xargs -n 1 install_name_tool -change libiomp5.dylib @rpath/libiomp5.dylib 7 | -------------------------------------------------------------------------------- /data/ior/d-C_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic diamond 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 346.700012 0.000000 12 | 361.037018 0.000000 13 | 404.634003 0.000000 14 | 467.795990 0.000000 15 | 486.120026 0.000000 16 | 508.552002 0.000000 17 | 546.047058 0.000000 18 | 588.979004 0.000000 19 | 643.818054 0.000000 20 | 656.257019 0.000000 21 | -------------------------------------------------------------------------------- /src/mtsgui/shaders/logluminance.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D source; 2 | uniform float multiplier; 3 | 4 | void main() { 5 | vec4 color = texture2D(source, gl_TexCoord[0].xy); 6 | float luminance = color.r * 0.212671 + color.g * 0.715160 + color.b * 0.072169; 7 | if (luminance < 0.0 || luminance != luminance || luminance == 1024.0 || abs(luminance-.7) < 1e-4) 8 | luminance = 0.0; // catch NaNs, negatives, and the Mitsuba banner 9 | luminance = luminance * multiplier; 10 | float logLuminance = log(1e-3 + luminance); 11 | gl_FragColor = vec4(logLuminance, luminance, 0.0, 1.0); 12 | } 13 | -------------------------------------------------------------------------------- /data/ior/Hg.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Hg 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Hg_llnl_cxro + Hg_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 0.542000 11 | 326.263000 0.589000 12 | 344.389008 0.644000 13 | 364.647003 0.713000 14 | 387.437988 0.798000 15 | 413.266998 0.898000 16 | 442.785980 1.027000 17 | 476.846008 1.186000 18 | 516.583008 1.384000 19 | 563.545044 1.620000 20 | 619.900024 1.910000 21 | 688.778015 2.284000 22 | 774.875000 2.746000 23 | 885.570984 3.324000 24 | -------------------------------------------------------------------------------- /data/ior/Hg.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Hg 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Hg_llnl_cxro + Hg_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.502000 11 | 326.263000 2.665000 12 | 344.389008 2.860000 13 | 364.647003 3.074000 14 | 387.437988 3.294000 15 | 413.266998 3.538000 16 | 442.785980 3.802000 17 | 476.846008 4.090000 18 | 516.583008 4.407000 19 | 563.545044 4.751000 20 | 619.900024 5.150000 21 | 688.778015 5.582000 22 | 774.875000 6.054000 23 | 885.570984 6.558000 24 | -------------------------------------------------------------------------------- /data/ior/Se-e.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 344.389008 3.010000 12 | 364.647003 2.760000 13 | 387.437988 2.590000 14 | 413.266998 2.290000 15 | 442.785980 1.700000 16 | 476.846008 1.320000 17 | 516.583008 1.210000 18 | 563.545044 1.190000 19 | 619.900024 0.760000 20 | 688.778015 0.022000 21 | -------------------------------------------------------------------------------- /data/ior/d-C_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic diamond 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 346.700012 2.495400 12 | 361.037018 2.485400 13 | 404.634003 2.462600 14 | 467.795990 2.440800 15 | 486.120026 2.435400 16 | 508.552002 2.430600 17 | 546.047058 2.423500 18 | 588.979004 2.417500 19 | 643.818054 2.411100 20 | 656.257019 2.410400 21 | -------------------------------------------------------------------------------- /data/ior/Se-e.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 344.389008 3.390000 12 | 364.647003 3.690000 13 | 387.437988 3.920000 14 | 413.266998 4.440000 15 | 442.785980 4.590000 16 | 476.846008 4.400000 17 | 516.583008 4.280000 18 | 563.545044 4.490000 19 | 619.900024 4.790000 20 | 688.778015 4.460000 21 | -------------------------------------------------------------------------------- /data/ior/Se-e_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 344.389008 3.390000 12 | 364.647003 3.690000 13 | 387.437988 3.920000 14 | 413.266998 4.440000 15 | 442.785980 4.590000 16 | 476.846008 4.400000 17 | 516.583008 4.280000 18 | 563.545044 4.490000 19 | 619.900024 4.790000 20 | 688.778015 4.460000 21 | -------------------------------------------------------------------------------- /data/ior/Se-e_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 344.389008 3.010000 12 | 364.647003 2.760000 13 | 387.437988 2.590000 14 | 413.266998 2.290000 15 | 442.785980 1.700000 16 | 476.846008 1.320000 17 | 516.583008 1.210000 18 | 563.545044 1.190000 19 | 619.900024 0.760000 20 | 688.778015 0.022000 21 | -------------------------------------------------------------------------------- /data/windows/README.txt: -------------------------------------------------------------------------------- 1 | This is the binary Windows release of Mitsuba, an extensible rendering framework. 2 | 3 | Please use the 'mtsgui.exe' executable to launch the graphical user interface. 4 | 5 | If you encounter an error message regarding a missing component named 'msvcr100.dll' 6 | or 'msvcp100.dll', you will need to install the package "vcredist_2010_sp1_x86.exe' 7 | or "vcredist_2010_sp1_x64.exe' (one of them will be included with the Mitsuba release) 8 | 9 | For general documentation on Mitsuba, please refer to 10 | http://www.mitsuba-renderer.org/docs.html and 11 | http://www.mitsuba-renderer.org/videos.html. -------------------------------------------------------------------------------- /data/ior/Be.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline Be 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Be_llnl_cxro + Be_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 310.000000 2.470000 11 | 326.300018 2.550000 12 | 344.399994 2.640000 13 | 364.600006 2.730000 14 | 387.399994 2.840000 15 | 413.300018 2.950000 16 | 442.800018 3.070000 17 | 476.800018 3.190000 18 | 516.600037 3.300000 19 | 563.500000 3.390000 20 | 619.900024 3.460000 21 | 688.799988 3.470000 22 | 774.900024 3.440000 23 | 885.600037 3.350000 24 | -------------------------------------------------------------------------------- /data/ior/Be.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline Be 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Be_llnl_cxro + Be_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 310.000000 3.080000 11 | 326.300018 3.080000 12 | 344.399994 3.080000 13 | 364.600006 3.100000 14 | 387.399994 3.120000 15 | 413.300018 3.140000 16 | 442.800018 3.160000 17 | 476.800018 3.160000 18 | 516.600037 3.180000 19 | 563.500000 3.170000 20 | 619.900024 3.180000 21 | 688.799988 3.230000 22 | 774.900024 3.350000 23 | 885.600037 3.550000 24 | -------------------------------------------------------------------------------- /data/tests/test_emitter.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /data/ior/Cu2O_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu2O 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 350.028015 1.440000 12 | 399.935028 0.990000 13 | 449.854980 0.600000 14 | 499.919006 0.350000 15 | 549.799988 0.190000 16 | 599.806030 0.130000 17 | 649.789978 0.100000 18 | 700.056030 0.083000 19 | 750.029968 0.070000 20 | 799.871033 0.060000 21 | 849.759949 0.053000 22 | 899.709961 0.048000 23 | -------------------------------------------------------------------------------- /data/ior/Cu2O_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu2O 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 350.028015 2.400000 12 | 399.935028 2.800000 13 | 449.854980 3.060000 14 | 499.919006 3.120000 15 | 549.799988 3.100000 16 | 599.806030 3.020000 17 | 649.789978 2.900000 18 | 700.056030 2.830000 19 | 750.029968 2.770000 20 | 799.871033 2.700000 21 | 849.759949 2.660000 22 | 899.709961 2.630000 23 | -------------------------------------------------------------------------------- /data/ior/Se.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.510000 12 | 326.263000 2.840000 13 | 344.389008 3.060000 14 | 364.647003 3.220000 15 | 387.437988 3.350000 16 | 413.266998 3.300000 17 | 442.785980 3.120000 18 | 476.846008 3.000000 19 | 516.583008 2.930000 20 | 563.545044 3.070000 21 | 619.900024 3.380000 22 | 688.778015 3.320000 23 | -------------------------------------------------------------------------------- /data/ior/Se.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.810000 12 | 326.263000 1.660000 13 | 344.389008 1.470000 14 | 364.647003 1.240000 15 | 387.437988 1.010000 16 | 413.266998 0.700000 17 | 442.785980 0.580000 18 | 476.846008 0.530000 19 | 516.583008 0.610000 20 | 563.545044 0.730000 21 | 619.900024 0.650000 22 | 688.778015 0.110000 23 | -------------------------------------------------------------------------------- /data/ior/a-C.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for amorphous carbon 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; a-C_llnl_cxro + a-C_windt88 + a-C_palik 7 | # ; 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.840000 12 | 326.263000 1.900000 13 | 344.389008 1.940000 14 | 364.647003 2.000000 15 | 387.437988 2.060000 16 | 413.266998 2.110000 17 | 442.785980 2.170000 18 | 476.846008 2.240000 19 | 516.583008 2.300000 20 | 563.545044 2.380000 21 | 619.900024 2.430000 22 | 688.778015 2.430000 23 | 774.875000 2.330000 24 | 885.570984 2.240000 25 | -------------------------------------------------------------------------------- /data/ior/a-C.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for amorphous carbon 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; a-C_llnl_cxro + a-C_windt88 + a-C_palik 7 | # ; 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.808000 12 | 326.263000 0.910000 13 | 344.389008 0.920000 14 | 364.647003 0.920000 15 | 387.437988 0.910000 16 | 413.266998 0.900000 17 | 442.785980 0.890000 18 | 476.846008 0.880000 19 | 516.583008 0.870000 20 | 563.545044 0.820000 21 | 619.900024 0.750000 22 | 688.778015 0.700000 23 | 774.875000 0.710000 24 | 885.570984 0.800000 25 | -------------------------------------------------------------------------------- /data/ior/Se_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.810000 12 | 326.263000 1.660000 13 | 344.389008 1.470000 14 | 364.647003 1.240000 15 | 387.437988 1.010000 16 | 413.266998 0.700000 17 | 442.785980 0.580000 18 | 476.846008 0.530000 19 | 516.583008 0.610000 20 | 563.545044 0.730000 21 | 619.900024 0.650000 22 | 688.778015 0.110000 23 | -------------------------------------------------------------------------------- /data/ior/CuO_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline CuO 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 350.028015 2.240000 12 | 399.935028 2.340000 13 | 449.854980 2.450000 14 | 499.919006 2.540000 15 | 549.799988 2.580000 16 | 599.806030 2.650000 17 | 649.789978 2.720000 18 | 700.056030 2.880000 19 | 750.029968 2.970000 20 | 799.871033 2.940000 21 | 849.759949 2.810000 22 | 899.709961 2.740000 23 | -------------------------------------------------------------------------------- /data/ior/CuO_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline CuO 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 350.028015 1.030000 12 | 399.935028 0.870000 13 | 449.854980 0.770000 14 | 499.919006 0.680000 15 | 549.799988 0.590000 16 | 599.806030 0.500000 17 | 649.789978 0.400000 18 | 700.056030 0.310000 19 | 750.029968 0.220000 20 | 799.871033 0.110000 21 | 849.759949 0.040000 22 | 899.709961 0.030000 23 | -------------------------------------------------------------------------------- /data/ior/Se_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Se, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.510000 12 | 326.263000 2.840000 13 | 344.389008 3.060000 14 | 364.647003 3.220000 15 | 387.437988 3.350000 16 | 413.266998 3.300000 17 | 442.785980 3.120000 18 | 476.846008 3.000000 19 | 516.583008 2.930000 20 | 563.545044 3.070000 21 | 619.900024 3.380000 22 | 688.778015 3.320000 23 | -------------------------------------------------------------------------------- /.hgtags: -------------------------------------------------------------------------------- 1 | 41af3c689b9d334a79f665e82f2cb095643a4654 v0.1.1 2 | 9486893d5591dff34697f7757c09694843edf3fc v0.1.2 3 | 79c172eb257c17855510f1fc74847a0ef0787ecf v0.1.3 4 | 2c14d0f9b54f52fb0ab2abbd630398b85079897d v0.2.0 5 | e3c0182ba64b77319ce84c9e2a8581649e68273d v0.2.1 6 | cb6e89af8012fac22cc0f3c5ad247c98c701bdda v0.3.0 7 | ee26517b27207353b0c8a7d357bcb4977b5d93fb v0.4.0 8 | 7db07694ea00eb1655f7a1adcc3ae880e8e116f9 v0.4.1 9 | 13a39b11aceee517c19d2e2cec2e6b875546062c v0.4.2 10 | f1b73d39617071297167cc7ce96f3892f21105fc v0.4.3 11 | bd6ddacdf7955e51d9b80be639c282d4974e6f56 v0.4.4 12 | 454ebc86e4bd5b3c1d5eb6585099e66ccd8522fe v0.4.5 13 | e6a8a0178556bbce63a2a154191351aa58285623 v0.5.0 14 | -------------------------------------------------------------------------------- /src/emitters/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('area', ['area.cpp']) 4 | plugins += env.SharedLibrary('collimated', ['collimated.cpp']) 5 | plugins += env.SharedLibrary('directional', ['directional.cpp']) 6 | plugins += env.SharedLibrary('point', ['point.cpp']) 7 | plugins += env.SharedLibrary('constant', ['constant.cpp']) 8 | plugins += env.SharedLibrary('envmap', ['envmap.cpp']) 9 | plugins += env.SharedLibrary('sky', ['sky.cpp', 'sunsky/skymodel.cpp']) 10 | plugins += env.SharedLibrary('sun', ['sun.cpp']) 11 | plugins += env.SharedLibrary('sunsky', ['sunsky.cpp']) 12 | plugins += env.SharedLibrary('spot', ['spot.cpp']) 13 | 14 | Export('plugins') 15 | -------------------------------------------------------------------------------- /src/mtsgui/shaders/gamma.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D colorSource, depthSource; 2 | uniform float invWhitePoint, invGamma; 3 | uniform bool sRGB, hasDepth; 4 | 5 | float toSRGB(float value) { 6 | if (value < 0.0031308) 7 | return 12.92 * value; 8 | return 1.055 * pow(value, 1.0/2.4) - 0.055; 9 | } 10 | 11 | void main() { 12 | vec4 color = texture2D(colorSource, gl_TexCoord[0].xy) * invWhitePoint; 13 | if (sRGB) 14 | gl_FragColor = vec4(toSRGB(color.r), toSRGB(color.g), toSRGB(color.b), 1); 15 | else 16 | gl_FragColor = vec4(pow(color.rgb, vec3(invGamma)), 1); 17 | gl_FragDepth = hasDepth ? texture2D(depthSource, gl_TexCoord[0].xy).r : 0.5; 18 | } 19 | -------------------------------------------------------------------------------- /data/ior/Hg_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Hg 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.502000 12 | 326.263000 2.665000 13 | 344.389008 2.860000 14 | 364.647003 3.074000 15 | 387.437988 3.294000 16 | 413.266998 3.538000 17 | 442.785980 3.802000 18 | 476.846008 4.090000 19 | 516.583008 4.407000 20 | 563.545044 4.751000 21 | 619.900024 5.150000 22 | 688.778015 5.582000 23 | 774.875000 6.054000 24 | 885.570984 6.558000 25 | -------------------------------------------------------------------------------- /data/ior/Na_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Na 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 312.291992 1.010000 12 | 334.178009 1.130000 13 | 364.647003 1.330000 14 | 387.437988 1.470000 15 | 405.162994 1.540000 16 | 420.270996 1.630000 17 | 439.645020 1.760000 18 | 469.621002 1.880000 19 | 506.041016 2.070000 20 | 546.166992 2.230000 21 | 598.937012 2.480000 22 | 662.995056 2.760000 23 | 751.393982 3.220000 24 | 860.971985 3.720000 25 | -------------------------------------------------------------------------------- /data/ior/Hg_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Hg 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.542000 12 | 326.263000 0.589000 13 | 344.389008 0.644000 14 | 364.647003 0.713000 15 | 387.437988 0.798000 16 | 413.266998 0.898000 17 | 442.785980 1.027000 18 | 476.846008 1.186000 19 | 516.583008 1.384000 20 | 563.545044 1.620000 21 | 619.900024 1.910000 22 | 688.778015 2.284000 23 | 774.875000 2.746000 24 | 885.570984 3.324000 25 | -------------------------------------------------------------------------------- /data/ior/Na_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Na 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 312.291992 0.049000 12 | 334.178009 0.055000 13 | 364.647003 0.061000 14 | 387.437988 0.065000 15 | 405.162994 0.069000 16 | 420.270996 0.068000 17 | 439.645020 0.068000 18 | 469.621002 0.066000 19 | 506.041016 0.063000 20 | 546.166992 0.059000 21 | 598.937012 0.053000 22 | 662.995056 0.049000 23 | 751.393982 0.050000 24 | 860.971985 0.053000 25 | -------------------------------------------------------------------------------- /src/sensors/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('radiancemeter', ['radiancemeter.cpp']) 4 | plugins += env.SharedLibrary('irradiancemeter', ['irradiancemeter.cpp']) 5 | plugins += env.SharedLibrary('fluencemeter', ['fluencemeter.cpp']) 6 | plugins += env.SharedLibrary('perspective', ['perspective.cpp']) 7 | plugins += env.SharedLibrary('perspective_rdist', ['perspective_rdist.cpp']) 8 | plugins += env.SharedLibrary('thinlens', ['thinlens.cpp']) 9 | plugins += env.SharedLibrary('orthographic', ['orthographic.cpp']) 10 | plugins += env.SharedLibrary('telecentric', ['telecentric.cpp']) 11 | plugins += env.SharedLibrary('spherical', ['spherical.cpp']) 12 | 13 | Export('plugins') 14 | -------------------------------------------------------------------------------- /data/ior/K.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline K 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 304.993988 0.380000 12 | 309.950012 0.340000 13 | 312.291992 0.287000 14 | 334.178009 0.089000 15 | 364.647003 0.052000 16 | 405.162994 0.041000 17 | 420.270996 0.041000 18 | 439.645020 0.043000 19 | 469.621002 0.043000 20 | 506.041016 0.046000 21 | 546.166992 0.049000 22 | 598.937012 0.053000 23 | 662.995056 0.050000 24 | 751.393982 0.044000 25 | 860.971985 0.040000 26 | -------------------------------------------------------------------------------- /data/ior/K.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline K 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 304.993988 0.070000 12 | 309.950012 0.080000 13 | 312.291992 0.091000 14 | 334.178009 0.288000 15 | 364.647003 0.549000 16 | 405.162994 0.799000 17 | 420.270996 0.898000 18 | 439.645020 1.020000 19 | 469.621002 1.140000 20 | 506.041016 1.280000 21 | 546.166992 1.430000 22 | 598.937012 1.620000 23 | 662.995056 1.840000 24 | 751.393982 2.190000 25 | 860.971985 2.560000 26 | -------------------------------------------------------------------------------- /data/ior/K_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline K 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 304.993988 0.070000 12 | 309.950012 0.080000 13 | 312.291992 0.091000 14 | 334.178009 0.288000 15 | 364.647003 0.549000 16 | 405.162994 0.799000 17 | 420.270996 0.898000 18 | 439.645020 1.020000 19 | 469.621002 1.140000 20 | 506.041016 1.280000 21 | 546.166992 1.430000 22 | 598.937012 1.620000 23 | 662.995056 1.840000 24 | 751.393982 2.190000 25 | 860.971985 2.560000 26 | -------------------------------------------------------------------------------- /src/tests/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins', 'glob', 'os', 'SCons') 2 | 3 | testEnv = env.Clone() 4 | testEnv.Append(CPPDEFINES = [['MTS_TESTCASE', '1']]) 5 | 6 | bidirEnv = testEnv.Clone() 7 | bidirEnv.Append(LIBS=['mitsuba-bidir']) 8 | bidirEnv.Append(LIBPATH=['#src/libbidir']) 9 | 10 | for plugin in glob.glob(GetBuildPath('test_*.cpp')): 11 | name = os.path.basename(plugin) 12 | if "bidir" in name: 13 | lib = bidirEnv.SharedLibrary(name[0:len(name)-4], name) 14 | else: 15 | lib = testEnv.SharedLibrary(name[0:len(name)-4], name) 16 | if isinstance(lib, SCons.Node.NodeList): 17 | lib = lib[0] 18 | plugins += [ lib ] 19 | 20 | Export('plugins') 21 | -------------------------------------------------------------------------------- /data/ior/K_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline K 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 304.993988 0.380000 12 | 309.950012 0.340000 13 | 312.291992 0.287000 14 | 334.178009 0.089000 15 | 364.647003 0.052000 16 | 405.162994 0.041000 17 | 420.270996 0.041000 18 | 439.645020 0.043000 19 | 469.621002 0.043000 20 | 506.041016 0.046000 21 | 546.166992 0.049000 22 | 598.937012 0.053000 23 | 662.995056 0.050000 24 | 751.393982 0.044000 25 | 860.971985 0.040000 26 | -------------------------------------------------------------------------------- /setpath.csh: -------------------------------------------------------------------------------- 1 | #!/bin/tcsh 2 | 3 | set called=($_) 4 | if ("$called" != "") then 5 | set reldir=`dirname $called[2]` 6 | else if ("$0" != "tcsh") then 7 | set reldir=`dirname 0` 8 | else 9 | echo "Unable to detect path!" 10 | exit 1 11 | endif 12 | set MITSUBA_DIR=`cd $reldir && pwd` 13 | 14 | if ("`uname`" == "Darwin") then 15 | setenv PATH "$MITSUBA_DIR/Mitsuba.app/Contents/MacOS:$PATH" 16 | else 17 | if (! ($?LD_LIBRARY_PATH) ) then 18 | setenv LD_LIBRARY_PATH "$MITSUBA_DIR/dist" 19 | else 20 | setenv LD_LIBRARY_PATH "$MITSUBA_DIR/dist:$LD_LIBRARY_PATH" 21 | endif 22 | setenv PATH "$MITSUBA_DIR/dist:$PATH" 23 | # Generate core dumps if something goes wrong 24 | limit coredumpsize 1000000000 25 | endif 26 | 27 | unset reldir 28 | -------------------------------------------------------------------------------- /include/Eigen/src/Core/functors/TernaryFunctors.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2016 Eugene Brevdo 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_TERNARY_FUNCTORS_H 11 | #define EIGEN_TERNARY_FUNCTORS_H 12 | 13 | namespace Eigen { 14 | 15 | namespace internal { 16 | 17 | //---------- associative ternary functors ---------- 18 | 19 | 20 | 21 | } // end namespace internal 22 | 23 | } // end namespace Eigen 24 | 25 | #endif // EIGEN_TERNARY_FUNCTORS_H 26 | -------------------------------------------------------------------------------- /data/schema/upgrade_0.6.0.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 0.6.0 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /data/tests/test_bidir_0.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /include/Eigen/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | include(RegexUtils) 2 | test_escape_string_as_regex() 3 | 4 | file(GLOB Eigen_directory_files "*") 5 | 6 | escape_string_as_regex(ESCAPED_CMAKE_CURRENT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}") 7 | 8 | foreach(f ${Eigen_directory_files}) 9 | if(NOT f MATCHES "\\.txt" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/[.].+" AND NOT f MATCHES "${ESCAPED_CMAKE_CURRENT_SOURCE_DIR}/src") 10 | list(APPEND Eigen_directory_files_to_install ${f}) 11 | endif() 12 | endforeach(f ${Eigen_directory_files}) 13 | 14 | install(FILES 15 | ${Eigen_directory_files_to_install} 16 | DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel 17 | ) 18 | 19 | install(DIRECTORY src DESTINATION ${INCLUDE_INSTALL_DIR}/Eigen COMPONENT Devel FILES_MATCHING PATTERN "*.h") 20 | -------------------------------------------------------------------------------- /src/libbidir/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'sys', 'os') 2 | 3 | bidirEnv = env.Clone() 4 | bidirEnv.Append(CPPDEFINES = [['MTS_BUILD_MODULE', 'MTS_MODULE_BIDIR']]) 5 | 6 | # bidirEnv.RemoveFlags(['-O3']) 7 | # bidirEnv.Append(CXXFLAGS = ['-O0']); 8 | 9 | libbidir = bidirEnv.SharedLibrary('mitsuba-bidir', [ 10 | 'common.cpp', 'rsampler.cpp', 'vertex.cpp', 'edge.cpp', 11 | 'path.cpp', 'verification.cpp', 'util.cpp', 'pathsampler.cpp', 12 | 'mut_bidir.cpp', 'mut_lens.cpp', 'mut_caustic.cpp', 13 | 'mut_mchain.cpp', 'manifold.cpp', 'mut_manifold.cpp' 14 | ]) 15 | 16 | env.Append(LIBPATH=[os.path.join(env['BUILDDIR'], 'libbidir')]) 17 | 18 | if sys.platform == "darwin": 19 | bidirEnv.AddPostAction(libbidir, 'install_name_tool -id @rpath/libmitsuba-bidir.dylib $TARGET') 20 | -------------------------------------------------------------------------------- /data/ior/Ta.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ta 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Ta_llnl_cxro + Ta_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.360000 11 | 326.263000 2.400000 12 | 344.389008 2.490000 13 | 364.647003 2.610000 14 | 387.437988 2.730000 15 | 413.266998 2.810000 16 | 427.516998 2.840000 17 | 442.785980 2.850000 18 | 459.185028 2.840000 19 | 476.846008 2.800000 20 | 495.920013 2.750000 21 | 516.583008 2.680000 22 | 539.044006 2.560000 23 | 563.545044 2.360000 24 | 590.381042 2.100000 25 | 619.900024 1.830000 26 | 652.526001 1.570000 27 | 688.778015 1.350000 28 | 729.294006 1.240000 29 | 774.875000 1.150000 30 | 826.533020 1.090000 31 | 885.570984 1.040000 32 | -------------------------------------------------------------------------------- /data/ior/Ta.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ta 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Ta_llnl_cxro + Ta_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.140000 11 | 326.263000 2.220000 12 | 344.389008 2.300000 13 | 364.647003 2.330000 14 | 387.437988 2.310000 15 | 413.266998 2.240000 16 | 427.516998 2.200000 17 | 442.785980 2.140000 18 | 459.185028 2.080000 19 | 476.846008 2.020000 20 | 495.920013 1.980000 21 | 516.583008 1.920000 22 | 539.044006 1.860000 23 | 563.545044 1.810000 24 | 590.381042 1.840000 25 | 619.900024 1.990000 26 | 652.526001 2.240000 27 | 688.778015 2.600000 28 | 729.294006 2.950000 29 | 774.875000 3.330000 30 | 826.533020 3.730000 31 | 885.570984 4.150000 32 | -------------------------------------------------------------------------------- /src/mtsgui/previewsettingsdlg_cocoa.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | -------------------------------------------------------------------------------- /data/ior/Cu_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.340000 12 | 326.263000 1.340000 13 | 344.389008 1.310000 14 | 364.647003 1.270000 15 | 387.437988 1.180000 16 | 413.266998 1.180000 17 | 442.785980 1.170000 18 | 476.846008 1.150000 19 | 516.583008 1.120000 20 | 539.044006 1.040000 21 | 563.545044 0.826000 22 | 590.381042 0.468000 23 | 619.900024 0.272000 24 | 652.526001 0.214000 25 | 670.162048 0.215000 26 | 688.778015 0.213000 27 | 708.456970 0.214000 28 | 729.294006 0.223000 29 | 826.533020 0.260000 30 | -------------------------------------------------------------------------------- /data/ior/Cu_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cu 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.720000 12 | 326.263000 1.810000 13 | 344.389008 1.870000 14 | 364.647003 1.950000 15 | 387.437988 2.210000 16 | 413.266998 2.210000 17 | 442.785980 2.360000 18 | 476.846008 2.500000 19 | 516.583008 2.600000 20 | 539.044006 2.590000 21 | 563.545044 2.600000 22 | 590.381042 2.810000 23 | 619.900024 3.240000 24 | 652.526001 3.670000 25 | 670.162048 3.860000 26 | 688.778015 4.050000 27 | 708.456970 4.240000 28 | 729.294006 4.430000 29 | 826.533020 5.260000 30 | -------------------------------------------------------------------------------- /src/films/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | filmEnv = env.Clone() 4 | if filmEnv.has_key('OEXRLIBDIR'): 5 | filmEnv.Prepend(LIBPATH=env['OEXRLIBDIR']) 6 | if filmEnv.has_key('OEXRINCLUDE'): 7 | filmEnv.Prepend(CPPPATH=env['OEXRINCLUDE']) 8 | if filmEnv.has_key('OEXRFLAGS'): 9 | filmEnv.Prepend(CPPFLAGS=env['OEXRFLAGS']) 10 | if filmEnv.has_key('OEXRLIB'): 11 | filmEnv.Prepend(LIBS=env['OEXRLIB']) 12 | 13 | plugins += filmEnv.SharedLibrary('mfilm', ['mfilm.cpp', 'cnpy.cpp']) 14 | plugins += filmEnv.SharedLibrary('ldrfilm', ['ldrfilm.cpp']) 15 | plugins += filmEnv.SharedLibrary('hdrfilm', ['hdrfilm.cpp']) 16 | 17 | if ['MTS_HAS_OPENEXR', 1] in filmEnv['CPPDEFINES']: 18 | plugins += filmEnv.SharedLibrary('tiledhdrfilm', ['tiledhdrfilm.cpp']) 19 | 20 | Export('plugins') 21 | -------------------------------------------------------------------------------- /data/tests/test_bidir_2.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /include/Eigen/StdList: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Hauke Heibel 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_STDLIST_MODULE_H 11 | #define EIGEN_STDLIST_MODULE_H 12 | 13 | #include "Core" 14 | #include 15 | 16 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 17 | 18 | #define EIGEN_DEFINE_STL_LIST_SPECIALIZATION(...) 19 | 20 | #else 21 | 22 | #include "src/StlSupport/StdList.h" 23 | 24 | #endif 25 | 26 | #endif // EIGEN_STDLIST_MODULE_H 27 | -------------------------------------------------------------------------------- /data/ior/SnTe.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for SnTe 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 311.586029 0.967000 12 | 332.118988 1.007000 13 | 361.037018 1.103000 14 | 390.242004 1.228000 15 | 414.372040 1.364000 16 | 453.308990 1.551000 17 | 498.312012 1.702000 18 | 533.476990 1.813000 19 | 548.099060 1.878000 20 | 550.533020 1.989000 21 | 552.987976 2.135000 22 | 558.216980 2.442000 23 | 566.119019 2.719000 24 | 582.339050 2.991000 25 | 605.963013 3.273000 26 | 621.454041 3.479000 27 | 648.091980 3.701000 28 | 681.208984 3.912000 29 | 748.671021 4.285000 30 | 804.020996 4.541000 31 | 867.478027 4.803000 32 | -------------------------------------------------------------------------------- /data/ior/SnTe.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for SnTe 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 311.586029 0.000000 12 | 332.118988 0.000000 13 | 361.037018 0.000000 14 | 390.242004 0.000000 15 | 414.372040 0.000000 16 | 453.308990 0.000000 17 | 498.312012 0.000000 18 | 533.476990 0.000000 19 | 548.099060 0.000000 20 | 550.533020 0.000000 21 | 552.987976 0.000000 22 | 558.216980 0.000000 23 | 566.119019 0.000000 24 | 582.339050 0.000000 25 | 605.963013 0.000000 26 | 621.454041 0.000000 27 | 648.091980 0.000000 28 | 681.208984 0.000000 29 | 748.671021 0.000000 30 | 804.020996 0.000000 31 | 867.478027 0.000000 32 | -------------------------------------------------------------------------------- /src/libhw/data/sh_directional.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | gl_Position = ftransform(); 21 | } 22 | -------------------------------------------------------------------------------- /src/libhw/data/sh_unsupported.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | gl_FragColor = vec4(0.0); 21 | } 22 | -------------------------------------------------------------------------------- /data/ior/AlSb.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlSb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 4.000000 12 | 309.950012 3.710000 13 | 317.897003 3.400000 14 | 326.263000 3.160000 15 | 335.081024 2.970000 16 | 344.389008 2.810000 17 | 354.229004 2.690000 18 | 364.647003 2.640000 19 | 375.696991 2.690000 20 | 387.437988 2.470000 21 | 399.935028 2.120000 22 | 413.266998 1.970000 23 | 427.516998 2.060000 24 | 442.785980 1.580000 25 | 459.185028 0.920000 26 | 476.846008 0.630000 27 | 495.920013 0.460000 28 | 516.583008 0.330000 29 | 539.044006 0.240000 30 | 563.545044 0.010000 31 | 590.381042 0.006000 32 | -------------------------------------------------------------------------------- /data/ior/SnTe_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for SnTe 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 311.586029 0.000000 12 | 332.118988 0.000000 13 | 361.037018 0.000000 14 | 390.242004 0.000000 15 | 414.372040 0.000000 16 | 453.308990 0.000000 17 | 498.312012 0.000000 18 | 533.476990 0.000000 19 | 548.099060 0.000000 20 | 550.533020 0.000000 21 | 552.987976 0.000000 22 | 558.216980 0.000000 23 | 566.119019 0.000000 24 | 582.339050 0.000000 25 | 605.963013 0.000000 26 | 621.454041 0.000000 27 | 648.091980 0.000000 28 | 681.208984 0.000000 29 | 748.671021 0.000000 30 | 804.020996 0.000000 31 | 867.478027 0.000000 32 | -------------------------------------------------------------------------------- /data/ior/AlSb.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlSb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 3.150000 12 | 309.950012 3.500000 13 | 317.897003 3.710000 14 | 326.263000 3.810000 15 | 335.081024 3.930000 16 | 344.389008 3.960000 17 | 354.229004 3.950000 18 | 364.647003 3.970000 19 | 375.696991 4.140000 20 | 387.437988 4.510000 21 | 399.935028 4.570000 22 | 413.266998 4.520000 23 | 427.516998 4.660000 24 | 442.785980 5.270000 25 | 459.185028 5.080000 26 | 476.846008 4.810000 27 | 495.920013 4.610000 28 | 516.583008 4.440000 29 | 539.044006 4.310000 30 | 563.545044 4.200000 31 | 590.381042 4.010000 32 | -------------------------------------------------------------------------------- /data/ior/AlSb_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlSb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 4.000000 12 | 309.950012 3.710000 13 | 317.897003 3.400000 14 | 326.263000 3.160000 15 | 335.081024 2.970000 16 | 344.389008 2.810000 17 | 354.229004 2.690000 18 | 364.647003 2.640000 19 | 375.696991 2.690000 20 | 387.437988 2.470000 21 | 399.935028 2.120000 22 | 413.266998 1.970000 23 | 427.516998 2.060000 24 | 442.785980 1.580000 25 | 459.185028 0.920000 26 | 476.846008 0.630000 27 | 495.920013 0.460000 28 | 516.583008 0.330000 29 | 539.044006 0.240000 30 | 563.545044 0.010000 31 | 590.381042 0.006000 32 | -------------------------------------------------------------------------------- /data/ior/SnTe_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for SnTe 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 311.586029 0.967000 12 | 332.118988 1.007000 13 | 361.037018 1.103000 14 | 390.242004 1.228000 15 | 414.372040 1.364000 16 | 453.308990 1.551000 17 | 498.312012 1.702000 18 | 533.476990 1.813000 19 | 548.099060 1.878000 20 | 550.533020 1.989000 21 | 552.987976 2.135000 22 | 558.216980 2.442000 23 | 566.119019 2.719000 24 | 582.339050 2.991000 25 | 605.963013 3.273000 26 | 621.454041 3.479000 27 | 648.091980 3.701000 28 | 681.208984 3.912000 29 | 748.671021 4.285000 30 | 804.020996 4.541000 31 | 867.478027 4.803000 32 | -------------------------------------------------------------------------------- /src/devplugins/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | # Guo2018 4 | plugins += env.SharedLibrary('multilayered_guo2018', ['bsdfs/multilayered_guo2018.cpp']) 5 | plugins += env.SharedLibrary('instancedtexture_guo2018', ['textures/instancedtexture_guo2018.cpp']) 6 | plugins += env.SharedLibrary('homogeneous_aniso_guo2018', ['medium/homogeneous_aniso_guo2018.cpp']) 7 | 8 | 9 | # Ours 10 | plugins += env.SharedLibrary('fast_accurate', ['bsdfs/fast_accurate.cpp']) 11 | 12 | # INTEGRATORS 13 | plugins += env.SharedLibrary('pathwsampler', ['integrators/pathwsampler.cpp']) 14 | plugins += env.SharedLibrary('directwsampler', ['integrators/directwsampler.cpp']) 15 | plugins += env.SharedLibrary('directlightsampling', ['integrators/directlightsampling.cpp']) 16 | plugins += env.SharedLibrary('directbsdfsampling', ['integrators/directbsdfsampling.cpp']) 17 | 18 | Export('plugins') 19 | -------------------------------------------------------------------------------- /data/ior/AlSb_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlSb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 3.150000 12 | 309.950012 3.500000 13 | 317.897003 3.710000 14 | 326.263000 3.810000 15 | 335.081024 3.930000 16 | 344.389008 3.960000 17 | 354.229004 3.950000 18 | 364.647003 3.970000 19 | 375.696991 4.140000 20 | 387.437988 4.510000 21 | 399.935028 4.570000 22 | 413.266998 4.520000 23 | 427.516998 4.660000 24 | 442.785980 5.270000 25 | 459.185028 5.080000 26 | 476.846008 4.810000 27 | 495.920013 4.610000 28 | 516.583008 4.440000 29 | 539.044006 4.310000 30 | 563.545044 4.200000 31 | 590.381042 4.010000 32 | -------------------------------------------------------------------------------- /src/libhw/data/sh_cube_1pass.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | gl_Position = gl_ModelViewMatrix * gl_Vertex; 21 | } 22 | -------------------------------------------------------------------------------- /src/libhw/data/sh_paraboloid.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | gl_Position = gl_ModelViewMatrix * gl_Vertex; 21 | } 22 | -------------------------------------------------------------------------------- /data/ior/Ta_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ta 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.140000 12 | 326.263000 2.220000 13 | 344.389008 2.300000 14 | 364.647003 2.330000 15 | 387.437988 2.310000 16 | 413.266998 2.240000 17 | 427.516998 2.200000 18 | 442.785980 2.140000 19 | 459.185028 2.080000 20 | 476.846008 2.020000 21 | 495.920013 1.980000 22 | 516.583008 1.920000 23 | 539.044006 1.860000 24 | 563.545044 1.810000 25 | 590.381042 1.840000 26 | 619.900024 1.990000 27 | 652.526001 2.240000 28 | 688.778015 2.600000 29 | 729.294006 2.950000 30 | 774.875000 3.330000 31 | 826.533020 3.730000 32 | 885.570984 4.150000 33 | -------------------------------------------------------------------------------- /data/tests/test_phase.xml: -------------------------------------------------------------------------------- 1 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /src/libhw/data/sh_hemicube_1pass.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | gl_Position = gl_ModelViewMatrix * gl_Vertex; 21 | } 22 | -------------------------------------------------------------------------------- /data/ior/Ta_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ta 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.360000 12 | 326.263000 2.400000 13 | 344.389008 2.490000 14 | 364.647003 2.610000 15 | 387.437988 2.730000 16 | 413.266998 2.810000 17 | 427.516998 2.840000 18 | 442.785980 2.850000 19 | 459.185028 2.840000 20 | 476.846008 2.800000 21 | 495.920013 2.750000 22 | 516.583008 2.680000 23 | 539.044006 2.560000 24 | 563.545044 2.360000 25 | 590.381042 2.100000 26 | 619.900024 1.830000 27 | 652.526001 1.570000 28 | 688.778015 1.350000 29 | 729.294006 1.240000 30 | 774.875000 1.150000 31 | 826.533020 1.090000 32 | 885.570984 1.040000 33 | -------------------------------------------------------------------------------- /data/ior/Nb.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Nb 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Nb_llnl_cxro + Nb_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.640000 11 | 317.897003 2.620000 12 | 326.263000 2.590000 13 | 335.081024 2.560000 14 | 344.389008 2.520000 15 | 354.229004 2.480000 16 | 364.647003 2.460000 17 | 375.696991 2.440000 18 | 387.437988 2.450000 19 | 399.935028 2.480000 20 | 413.266998 2.510000 21 | 435.018036 2.580000 22 | 450.835999 2.660000 23 | 467.849030 2.740000 24 | 486.196014 2.830000 25 | 506.041016 2.890000 26 | 527.575012 2.920000 27 | 551.022034 2.930000 28 | 576.651001 2.920000 29 | 604.781006 2.890000 30 | 635.795044 2.820000 31 | 670.162048 2.690000 32 | 708.456970 2.540000 33 | 751.393982 2.360000 34 | 799.871033 2.150000 35 | 855.033997 1.950000 36 | -------------------------------------------------------------------------------- /data/ior/Nb.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Nb 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Nb_llnl_cxro + Nb_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.330000 11 | 317.897003 2.290000 12 | 326.263000 2.280000 13 | 335.081024 2.270000 14 | 344.389008 2.290000 15 | 354.229004 2.330000 16 | 364.647003 2.380000 17 | 375.696991 2.450000 18 | 387.437988 2.530000 19 | 399.935028 2.600000 20 | 413.266998 2.680000 21 | 435.018036 2.800000 22 | 450.835999 2.860000 23 | 467.849030 2.900000 24 | 486.196014 2.920000 25 | 506.041016 2.900000 26 | 527.575012 2.880000 27 | 551.022034 2.870000 28 | 576.651001 2.870000 29 | 604.781006 2.870000 30 | 635.795044 2.860000 31 | 670.162048 2.890000 32 | 708.456970 2.990000 33 | 751.393982 3.130000 34 | 799.871033 3.370000 35 | 855.033997 3.680000 36 | -------------------------------------------------------------------------------- /data/ior/SiC.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for crystalline SiC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; SiC_llnl_cxro + SiC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 2.850000 11 | 317.897003 2.923000 12 | 326.263000 2.899000 13 | 335.081024 2.877000 14 | 344.389008 2.856000 15 | 354.229004 2.836000 16 | 364.647003 2.817000 17 | 375.696991 2.799000 18 | 387.437988 2.781000 19 | 399.935028 2.765000 20 | 413.266998 2.750000 21 | 435.781982 2.730500 22 | 466.968018 2.707400 23 | 495.920013 2.684000 24 | 497.912018 2.687000 25 | 515.080994 2.678900 26 | 546.166992 2.663100 27 | 567.934021 2.655700 28 | 577.995056 2.651100 29 | 588.979004 2.648800 30 | 589.539001 2.647500 31 | 615.897034 2.641100 32 | 619.900024 2.634000 33 | 656.325989 2.629600 34 | 691.080994 2.624300 35 | 826.533020 2.598000 36 | -------------------------------------------------------------------------------- /data/ior/SiC.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for crystalline SiC 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; SiC_llnl_cxro + SiC_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 0.174000 11 | 317.897003 0.007650 12 | 326.263000 0.005980 13 | 335.081024 0.004930 14 | 344.389008 0.003750 15 | 354.229004 0.002890 16 | 364.647003 0.002040 17 | 375.696991 0.001380 18 | 387.437988 0.000839 19 | 399.935028 0.000191 20 | 413.266998 0.000044 21 | 435.781982 0.000000 22 | 466.968018 0.000000 23 | 495.920013 0.000012 24 | 497.912018 0.000000 25 | 515.080994 0.000000 26 | 546.166992 0.000000 27 | 567.934021 0.000000 28 | 577.995056 0.000000 29 | 588.979004 0.000000 30 | 589.539001 0.000000 31 | 615.897034 0.000000 32 | 619.900024 0.000000 33 | 656.325989 0.000000 34 | 691.080994 0.000000 35 | 826.533020 0.000000 36 | -------------------------------------------------------------------------------- /include/Eigen/StdDeque: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDDEQUE_MODULE_H 12 | #define EIGEN_STDDEQUE_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_DEQUE_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdDeque.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDDEQUE_MODULE_H 28 | -------------------------------------------------------------------------------- /data/ior/Rh.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Rh 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Rh_llnl_cxro + Rh_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 0.840000 11 | 309.950012 0.860000 12 | 317.897003 0.880000 13 | 326.263000 0.910000 14 | 335.081024 0.950000 15 | 344.389008 0.990000 16 | 354.229004 1.040000 17 | 364.647003 1.110000 18 | 375.696991 1.200000 19 | 387.437988 1.300000 20 | 399.935028 1.410000 21 | 413.266998 1.530000 22 | 427.516998 1.630000 23 | 459.185028 1.800000 24 | 476.846008 1.850000 25 | 495.920013 1.880000 26 | 516.583008 1.900000 27 | 539.044006 1.940000 28 | 563.545044 2.000000 29 | 590.381042 2.050000 30 | 619.900024 2.120000 31 | 652.526001 2.200000 32 | 688.778015 2.300000 33 | 729.294006 2.420000 34 | 774.875000 2.600000 35 | 826.533020 2.780000 36 | 885.570984 3.010000 37 | -------------------------------------------------------------------------------- /data/ior/Rh.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Rh 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Rh_llnl_cxro + Rh_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 3.030000 11 | 309.950012 3.120000 12 | 317.897003 3.230000 13 | 326.263000 3.340000 14 | 335.081024 3.450000 15 | 344.389008 3.580000 16 | 354.229004 3.710000 17 | 364.647003 3.840000 18 | 375.696991 3.970000 19 | 387.437988 4.090000 20 | 399.935028 4.200000 21 | 413.266998 4.290000 22 | 427.516998 4.360000 23 | 459.185028 4.490000 24 | 476.846008 4.550000 25 | 495.920013 4.650000 26 | 516.583008 4.780000 27 | 539.044006 4.940000 28 | 563.545044 5.110000 29 | 590.381042 5.300000 30 | 619.900024 5.510000 31 | 652.526001 5.760000 32 | 688.778015 6.020000 33 | 729.294006 6.330000 34 | 774.875000 6.640000 35 | 826.533020 6.970000 36 | 885.570984 7.310000 37 | -------------------------------------------------------------------------------- /include/Eigen/StdVector: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2009 Gael Guennebaud 5 | // Copyright (C) 2009 Hauke Heibel 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_STDVECTOR_MODULE_H 12 | #define EIGEN_STDVECTOR_MODULE_H 13 | 14 | #include "Core" 15 | #include 16 | 17 | #if EIGEN_COMP_MSVC && EIGEN_OS_WIN64 && (EIGEN_MAX_STATIC_ALIGN_BYTES<=16) /* MSVC auto aligns up to 16 bytes in 64 bit builds */ 18 | 19 | #define EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(...) 20 | 21 | #else 22 | 23 | #include "src/StlSupport/StdVector.h" 24 | 25 | #endif 26 | 27 | #endif // EIGEN_STDVECTOR_MODULE_H 28 | -------------------------------------------------------------------------------- /src/shapes/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'plugins') 2 | 3 | plugins += env.SharedLibrary('obj', ['obj.cpp']) 4 | plugins += env.SharedLibrary('ply', ['ply.cpp', 'ply/ply_parser.cpp'], 5 | CPPPATH = env['CPPPATH'] + ['#src/shapes']) 6 | plugins += env.SharedLibrary('serialized', ['serialized.cpp']) 7 | plugins += env.SharedLibrary('rectangle', ['rectangle.cpp']) 8 | plugins += env.SharedLibrary('disk', ['disk.cpp']) 9 | plugins += env.SharedLibrary('sphere', ['sphere.cpp']) 10 | plugins += env.SharedLibrary('cylinder', ['cylinder.cpp']) 11 | plugins += env.SharedLibrary('hair', ['hair.cpp']) 12 | plugins += env.SharedLibrary('shapegroup', ['shapegroup.cpp']) 13 | plugins += env.SharedLibrary('instance', ['instance.cpp']) 14 | plugins += env.SharedLibrary('cube', ['cube.cpp']) 15 | plugins += env.SharedLibrary('heightfield', ['heightfield.cpp']) 16 | #plugins += env.SharedLibrary('deformable', ['deformable.cpp']) 17 | 18 | Export('plugins') 19 | -------------------------------------------------------------------------------- /data/ior/Ir.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ir 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Ir_llnl_cxro + Ir_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 1.620000 11 | 309.950012 1.640000 12 | 317.897003 1.640000 13 | 326.263000 1.610000 14 | 335.081024 1.570000 15 | 344.389008 1.520000 16 | 354.229004 1.500000 17 | 364.647003 1.530000 18 | 375.696991 1.570000 19 | 387.437988 1.620000 20 | 399.935028 1.680000 21 | 413.266998 1.730000 22 | 427.516998 1.770000 23 | 442.785980 1.810000 24 | 459.185028 1.850000 25 | 476.846008 1.910000 26 | 495.920013 1.980000 27 | 516.583008 2.070000 28 | 539.044006 2.180000 29 | 563.545044 2.290000 30 | 590.381042 2.400000 31 | 619.900024 2.500000 32 | 652.526001 2.570000 33 | 688.778015 2.640000 34 | 729.294006 2.690000 35 | 774.875000 2.680000 36 | 826.533020 2.650000 37 | 885.570984 2.720000 38 | -------------------------------------------------------------------------------- /data/ior/Ir.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ir 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Ir_llnl_cxro + Ir_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 2.700000 11 | 309.950012 2.680000 12 | 317.897003 2.670000 13 | 326.263000 2.690000 14 | 335.081024 2.720000 15 | 344.389008 2.810000 16 | 354.229004 2.930000 17 | 364.647003 3.050000 18 | 375.696991 3.150000 19 | 387.437988 3.260000 20 | 399.935028 3.350000 21 | 413.266998 3.430000 22 | 427.516998 3.510000 23 | 442.785980 3.610000 24 | 459.185028 3.730000 25 | 476.846008 3.860000 26 | 495.920013 4.000000 27 | 516.583008 4.140000 28 | 539.044006 4.260000 29 | 563.545044 4.380000 30 | 590.381042 4.480000 31 | 619.900024 4.570000 32 | 652.526001 4.680000 33 | 688.778015 4.810000 34 | 729.294006 4.920000 35 | 774.875000 5.080000 36 | 826.533020 5.390000 37 | 885.570984 5.740000 38 | -------------------------------------------------------------------------------- /data/ior/Mo.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Mo 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Mo_llnl_cxro + Mo_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 2.910000 11 | 309.950012 3.010000 12 | 317.897003 3.040000 13 | 326.263000 3.040000 14 | 335.081024 3.040000 15 | 344.389008 3.050000 16 | 354.229004 3.060000 17 | 364.647003 3.060000 18 | 375.696991 3.060000 19 | 387.437988 3.050000 20 | 399.935028 3.030000 21 | 413.266998 3.040000 22 | 427.516998 3.050000 23 | 442.785980 3.080000 24 | 459.185028 3.130000 25 | 476.846008 3.220000 26 | 495.920013 3.360000 27 | 516.583008 3.590000 28 | 539.044006 3.790000 29 | 563.545044 3.760000 30 | 590.381042 3.680000 31 | 619.900024 3.680000 32 | 652.526001 3.740000 33 | 688.778015 3.810000 34 | 729.294006 3.840000 35 | 774.875000 3.770000 36 | 826.533020 3.530000 37 | 885.570984 3.150000 38 | -------------------------------------------------------------------------------- /data/ior/Mo.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Mo 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Mo_llnl_cxro + Mo_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 302.389984 3.670000 11 | 309.950012 3.510000 12 | 317.897003 3.400000 13 | 326.263000 3.310000 14 | 335.081024 3.270000 15 | 344.389008 3.240000 16 | 354.229004 3.210000 17 | 364.647003 3.190000 18 | 375.696991 3.180000 19 | 387.437988 3.180000 20 | 399.935028 3.220000 21 | 413.266998 3.270000 22 | 427.516998 3.330000 23 | 442.785980 3.420000 24 | 459.185028 3.510000 25 | 476.846008 3.610000 26 | 495.920013 3.730000 27 | 516.583008 3.780000 28 | 539.044006 3.610000 29 | 563.545044 3.410000 30 | 590.381042 3.450000 31 | 619.900024 3.520000 32 | 652.526001 3.580000 33 | 688.778015 3.580000 34 | 729.294006 3.510000 35 | 774.875000 3.410000 36 | 826.533020 3.300000 37 | 885.570984 3.400000 38 | -------------------------------------------------------------------------------- /data/ior/Cr.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cr 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Cr_llnl_cxro + Cr_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 300.194000 0.980000 11 | 307.643005 1.020000 12 | 316.276001 1.060000 13 | 323.708008 1.120000 14 | 333.279999 1.180000 15 | 341.542999 1.260000 16 | 351.217987 1.330000 17 | 362.514984 1.390000 18 | 372.312012 1.430000 19 | 385.031006 1.440000 20 | 396.102020 1.480000 21 | 409.175018 1.540000 22 | 424.589020 1.650000 23 | 438.092010 1.800000 24 | 455.808990 1.990000 25 | 471.406982 2.220000 26 | 490.040009 2.490000 27 | 512.314026 2.750000 28 | 532.102966 2.980000 29 | 558.468018 3.180000 30 | 582.066040 3.340000 31 | 610.739014 3.480000 32 | 700.452026 3.840000 33 | 815.658020 4.230000 34 | 826.533020 4.270000 35 | 849.178040 4.310000 36 | 860.971985 4.330000 37 | 885.570984 4.380000 38 | -------------------------------------------------------------------------------- /data/ior/Cr.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Cr 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; Cr_llnl_cxro + Cr_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 300.194000 2.670000 11 | 307.643005 2.760000 12 | 316.276001 2.850000 13 | 323.708008 2.950000 14 | 333.279999 3.040000 15 | 341.542999 3.120000 16 | 351.217987 3.180000 17 | 362.514984 3.240000 18 | 372.312012 3.310000 19 | 385.031006 3.400000 20 | 396.102020 3.540000 21 | 409.175018 3.710000 22 | 424.589020 3.890000 23 | 438.092010 4.060000 24 | 455.808990 4.220000 25 | 471.406982 4.360000 26 | 490.040009 4.440000 27 | 512.314026 4.460000 28 | 532.102966 4.450000 29 | 558.468018 4.410000 30 | 582.066040 4.380000 31 | 610.739014 4.360000 32 | 700.452026 4.370000 33 | 815.658020 4.340000 34 | 826.533020 4.330000 35 | 849.178040 4.320000 36 | 860.971985 4.320000 37 | 885.570984 4.310000 38 | -------------------------------------------------------------------------------- /data/schema/upgrade_0.5.0.xsl: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 0.5.0 12 | 13 | 14 | 15 | 16 | bumpmap 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /include/Eigen/src/Core/util/ReenableStupidWarnings.h: -------------------------------------------------------------------------------- 1 | #ifdef EIGEN_WARNINGS_DISABLED 2 | #undef EIGEN_WARNINGS_DISABLED 3 | 4 | #ifndef EIGEN_PERMANENTLY_DISABLE_STUPID_WARNINGS 5 | #ifdef _MSC_VER 6 | #pragma warning( pop ) 7 | #elif defined __INTEL_COMPILER 8 | #pragma warning pop 9 | #elif defined __clang__ 10 | #pragma clang diagnostic pop 11 | #elif defined __GNUC__ && __GNUC__>=6 12 | #pragma GCC diagnostic pop 13 | #endif 14 | 15 | #if defined __NVCC__ 16 | // Don't reenable the diagnostic messages, as it turns out these messages need 17 | // to be disabled at the point of the template instantiation (i.e the user code) 18 | // otherwise they'll be triggered by nvcc. 19 | // #pragma diag_default code_is_unreachable 20 | // #pragma diag_default initialization_not_reachable 21 | // #pragma diag_default 2651 22 | // #pragma diag_default 2653 23 | #endif 24 | 25 | #endif 26 | 27 | #endif // EIGEN_WARNINGS_DISABLED 28 | -------------------------------------------------------------------------------- /src/libhw/data/sh_directional.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | void main() { 20 | float depth = gl_FragCoord.z, 21 | dx = dFdx(depth), dy = dFdy(depth); 22 | gl_FragDepth = depth + sqrt(dx*dx+dy*dy); 23 | } 24 | -------------------------------------------------------------------------------- /src/mtsgui/resources/zoom.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/mtsgui/save.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include "common.h" 20 | 21 | extern void saveScene(QWidget *parent, SceneContext *ctx, const QString &targetFile); 22 | extern void cleanupXML(QTextStream &input, QTextStream &output); 23 | -------------------------------------------------------------------------------- /data/ior/Nb_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Nb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.330000 12 | 317.897003 2.290000 13 | 326.263000 2.280000 14 | 335.081024 2.270000 15 | 344.389008 2.290000 16 | 354.229004 2.330000 17 | 364.647003 2.380000 18 | 375.696991 2.450000 19 | 387.437988 2.530000 20 | 399.935028 2.600000 21 | 413.266998 2.680000 22 | 435.018036 2.800000 23 | 450.835999 2.860000 24 | 467.849030 2.900000 25 | 486.196014 2.920000 26 | 506.041016 2.900000 27 | 527.575012 2.880000 28 | 551.022034 2.870000 29 | 576.651001 2.870000 30 | 604.781006 2.870000 31 | 635.795044 2.860000 32 | 670.162048 2.890000 33 | 708.456970 2.990000 34 | 751.393982 3.130000 35 | 799.871033 3.370000 36 | 855.033997 3.680000 37 | -------------------------------------------------------------------------------- /data/ior/Nb_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Nb 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.640000 12 | 317.897003 2.620000 13 | 326.263000 2.590000 14 | 335.081024 2.560000 15 | 344.389008 2.520000 16 | 354.229004 2.480000 17 | 364.647003 2.460000 18 | 375.696991 2.440000 19 | 387.437988 2.450000 20 | 399.935028 2.480000 21 | 413.266998 2.510000 22 | 435.018036 2.580000 23 | 450.835999 2.660000 24 | 467.849030 2.740000 25 | 486.196014 2.830000 26 | 506.041016 2.890000 27 | 527.575012 2.920000 28 | 551.022034 2.930000 29 | 576.651001 2.920000 30 | 604.781006 2.890000 31 | 635.795044 2.820000 32 | 670.162048 2.690000 33 | 708.456970 2.540000 34 | 751.393982 2.360000 35 | 799.871033 2.150000 36 | 855.033997 1.950000 37 | -------------------------------------------------------------------------------- /src/mtsgui/resources/zoom-reset.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /data/ior/MgO.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for MgO 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; MgO_llnl_cxro + MgO_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 0.000000 11 | 330.613007 0.000000 12 | 351.118988 0.000000 13 | 355.549011 0.000001 14 | 360.932007 0.000001 15 | 361.141998 0.000001 16 | 364.968994 0.000000 17 | 382.065002 0.000000 18 | 386.712006 0.000000 19 | 393.337982 0.000000 20 | 404.634003 0.000000 21 | 430.935028 0.000000 22 | 435.781982 0.000000 23 | 457.829010 0.000000 24 | 477.949036 0.000000 25 | 486.004974 0.000000 26 | 487.918030 0.000000 27 | 499.919006 0.000000 28 | 502.350006 0.000000 29 | 508.531982 0.000000 30 | 514.440002 0.000000 31 | 546.166992 0.000000 32 | 589.258972 0.000000 33 | 632.874023 0.000000 34 | 643.718018 0.000000 35 | 656.325989 0.000000 36 | 667.635986 0.000000 37 | 690.695984 0.000000 38 | 706.439026 0.000000 39 | 767.677979 0.000000 40 | -------------------------------------------------------------------------------- /.hgignore: -------------------------------------------------------------------------------- 1 | # Documentation 2 | ^doc/apidocs/.*$ 3 | ^doc/.*\.aux$ 4 | ^doc/.*\.log$ 5 | ^doc/.*\.out$ 6 | ^doc/.*\.toc$ 7 | ^doc/.*\.bbl$ 8 | ^doc/.*\.blg$ 9 | ^doc/main.pdf$ 10 | ^doc/plugins_generated.tex$ 11 | 12 | # Build-related 13 | ^\.sconf_temp/.*$ 14 | ^build/release/.*$ 15 | ^build/debug/.*$ 16 | ^debian/.*$ 17 | ^.sconsign.dblite$ 18 | ^config.py$ 19 | ^config.log$ 20 | .*\.pyc$ 21 | 22 | # MSVC++-related 23 | ^build/mitsuba-msvc2010.sdf$ 24 | ^build/mitsuba-msvc2010.suo$ 25 | ^build/mitsuba-msvc2010.vcxproj.user$ 26 | ^data/windows/mitsuba_res.res$ 27 | ^dist/.*$ 28 | 29 | # Debugging history files 30 | ^\.gdb_history$ 31 | 32 | # Dependencies 33 | ^dependencies/.*$ 34 | 35 | # OSX binaries and byproducts 36 | ^Mitsuba.app/.*$ 37 | ^\.DS_Store$ 38 | 39 | # Imported geometry and some default output types 40 | ^meshes/.*$ 41 | ^textures/.*$ 42 | ^mitsuba.*.log$ 43 | .*\.exr$ 44 | 45 | # Eclipse CDT project files 46 | ^.externalToolBuilders/.*$ 47 | ^.settings/.*$ 48 | ^.cproject$ 49 | ^.project$ 50 | -------------------------------------------------------------------------------- /data/ior/MgO.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for MgO 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; MgO_llnl_cxro + MgO_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 309.950012 1.798000 11 | 330.613007 1.785000 12 | 351.118988 1.776800 13 | 355.549011 1.775500 14 | 360.932007 1.773200 15 | 361.141998 1.773180 16 | 364.968994 1.771860 17 | 382.065002 1.766800 18 | 386.712006 1.765500 19 | 393.337982 1.763800 20 | 404.634003 1.761040 21 | 430.935028 1.755700 22 | 435.781982 1.754710 23 | 457.829010 1.751200 24 | 477.949036 1.748300 25 | 486.004974 1.747110 26 | 487.918030 1.746900 27 | 499.919006 1.745400 28 | 502.350006 1.745300 29 | 508.531982 1.744460 30 | 514.440002 1.743900 31 | 546.166992 1.740770 32 | 589.258972 1.737370 33 | 632.874023 1.734600 34 | 643.718018 1.734000 35 | 656.325989 1.733350 36 | 667.635986 1.732770 37 | 690.695984 1.731910 38 | 706.439026 1.731010 39 | 767.677979 1.728720 40 | -------------------------------------------------------------------------------- /src/libhw/data/sh_cube_1pass.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | /* Linear depth from the vertex shader */ 20 | varying float depth; 21 | 22 | void main() { 23 | float dx = dFdx(depth), dy = dFdy(depth); 24 | gl_FragDepth = depth + sqrt(dx*dx+dy*dy); 25 | } 26 | -------------------------------------------------------------------------------- /data/ior/Rh_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Rh 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 0.840000 12 | 309.950012 0.860000 13 | 317.897003 0.880000 14 | 326.263000 0.910000 15 | 335.081024 0.950000 16 | 344.389008 0.990000 17 | 354.229004 1.040000 18 | 364.647003 1.110000 19 | 375.696991 1.200000 20 | 387.437988 1.300000 21 | 399.935028 1.410000 22 | 413.266998 1.530000 23 | 427.516998 1.630000 24 | 459.185028 1.800000 25 | 476.846008 1.850000 26 | 495.920013 1.880000 27 | 516.583008 1.900000 28 | 539.044006 1.940000 29 | 563.545044 2.000000 30 | 590.381042 2.050000 31 | 619.900024 2.120000 32 | 652.526001 2.200000 33 | 688.778015 2.300000 34 | 729.294006 2.420000 35 | 774.875000 2.600000 36 | 826.533020 2.780000 37 | 885.570984 3.010000 38 | -------------------------------------------------------------------------------- /data/ior/Rh_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Rh 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 3.030000 12 | 309.950012 3.120000 13 | 317.897003 3.230000 14 | 326.263000 3.340000 15 | 335.081024 3.450000 16 | 344.389008 3.580000 17 | 354.229004 3.710000 18 | 364.647003 3.840000 19 | 375.696991 3.970000 20 | 387.437988 4.090000 21 | 399.935028 4.200000 22 | 413.266998 4.290000 23 | 427.516998 4.360000 24 | 459.185028 4.490000 25 | 476.846008 4.550000 26 | 495.920013 4.650000 27 | 516.583008 4.780000 28 | 539.044006 4.940000 29 | 563.545044 5.110000 30 | 590.381042 5.300000 31 | 619.900024 5.510000 32 | 652.526001 5.760000 33 | 688.778015 6.020000 34 | 729.294006 6.330000 35 | 774.875000 6.640000 36 | 826.533020 6.970000 37 | 885.570984 7.310000 38 | -------------------------------------------------------------------------------- /src/libhw/data/sh_hemicube_1pass.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | /* Linear depth from the vertex shader */ 20 | varying float depth; 21 | 22 | void main() { 23 | float dx = dFdx(depth), dy = dFdy(depth); 24 | gl_FragDepth = depth + sqrt(dx*dx+dy*dy); 25 | } 26 | -------------------------------------------------------------------------------- /src/libhw/data/sh_unsupported.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | /* Uniform parameters */ 20 | uniform mat4 instanceTransform; 21 | 22 | void main() { 23 | vec4 pos = instanceTransform * gl_Vertex; 24 | gl_Position = gl_ModelViewProjectionMatrix * pos; 25 | } 26 | -------------------------------------------------------------------------------- /data/ior/SiC_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for hexagonal SiC, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.850000 12 | 317.897003 2.923000 13 | 326.263000 2.899000 14 | 335.081024 2.877000 15 | 344.389008 2.856000 16 | 354.229004 2.836000 17 | 364.647003 2.817000 18 | 375.696991 2.799000 19 | 387.437988 2.781000 20 | 399.935028 2.765000 21 | 413.266998 2.750000 22 | 435.781982 2.730500 23 | 466.968018 2.707400 24 | 495.920013 2.684000 25 | 497.912018 2.687000 26 | 515.080994 2.678900 27 | 546.166992 2.663100 28 | 567.934021 2.655700 29 | 577.995056 2.651100 30 | 588.979004 2.648800 31 | 589.539001 2.647500 32 | 615.897034 2.641100 33 | 619.900024 2.634000 34 | 656.325989 2.629600 35 | 691.080994 2.624300 36 | 826.533020 2.598000 37 | -------------------------------------------------------------------------------- /data/ior/SiC_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for hexagonal SiC, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.174000 12 | 317.897003 0.007650 13 | 326.263000 0.005980 14 | 335.081024 0.004930 15 | 344.389008 0.003750 16 | 354.229004 0.002890 17 | 364.647003 0.002040 18 | 375.696991 0.001380 19 | 387.437988 0.000839 20 | 399.935028 0.000191 21 | 413.266998 0.000044 22 | 435.781982 0.000000 23 | 466.968018 0.000000 24 | 495.920013 0.000012 25 | 497.912018 0.000000 26 | 515.080994 0.000000 27 | 546.166992 0.000000 28 | 567.934021 0.000000 29 | 577.995056 0.000000 30 | 588.979004 0.000000 31 | 589.539001 0.000000 32 | 615.897034 0.000000 33 | 619.900024 0.000000 34 | 656.325989 0.000000 35 | 691.080994 0.000000 36 | 826.533020 0.000000 37 | -------------------------------------------------------------------------------- /include/Eigen/Householder: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_HOUSEHOLDER_MODULE_H 9 | #define EIGEN_HOUSEHOLDER_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup Householder_Module Householder module 16 | * This module provides Householder transformations. 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | */ 22 | 23 | #include "src/Householder/Householder.h" 24 | #include "src/Householder/HouseholderSequence.h" 25 | #include "src/Householder/BlockHouseholder.h" 26 | 27 | #include "src/Core/util/ReenableStupidWarnings.h" 28 | 29 | #endif // EIGEN_HOUSEHOLDER_MODULE_H 30 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 31 | -------------------------------------------------------------------------------- /src/mtsgui/shaders/downsampling.frag: -------------------------------------------------------------------------------- 1 | uniform sampler2D source; 2 | uniform vec2 sourceSize; 3 | uniform vec2 invSourceSize; 4 | 5 | /* Perform a texture lookup by pixel coordinates */ 6 | vec4 lookupPixel(vec2 coords) { 7 | coords = coords + vec2(0.5, 0.5); 8 | if (coords.x < 0.0 || coords.y < 0.0 || 9 | coords.x > sourceSize.x || coords.y > sourceSize.y) 10 | return vec4(0); 11 | else 12 | return texture2D(source, coords*invSourceSize); 13 | } 14 | 15 | /* Find the max. luminance and the sum of all log-luminance values */ 16 | void main() { 17 | vec2 pos = (gl_TexCoord[0].xy-vec2(.5, .5))*2.0; 18 | vec2 pixel0 = lookupPixel(pos).rg, 19 | pixel1 = lookupPixel(pos + vec2(1, 0)).rg, 20 | pixel2 = lookupPixel(pos + vec2(0, 1)).rg, 21 | pixel3 = lookupPixel(pos + vec2(1, 1)).rg; 22 | gl_FragColor.r = pixel0.r + pixel1.r + pixel2.r + pixel3.r; 23 | gl_FragColor.g = max(pixel0.g, max(pixel1.g, max(pixel2.g, pixel3.g))); 24 | gl_FragColor.ba = vec2(0, 1); 25 | } 26 | -------------------------------------------------------------------------------- /data/ior/Ir_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ir 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 1.620000 12 | 309.950012 1.640000 13 | 317.897003 1.640000 14 | 326.263000 1.610000 15 | 335.081024 1.570000 16 | 344.389008 1.520000 17 | 354.229004 1.500000 18 | 364.647003 1.530000 19 | 375.696991 1.570000 20 | 387.437988 1.620000 21 | 399.935028 1.680000 22 | 413.266998 1.730000 23 | 427.516998 1.770000 24 | 442.785980 1.810000 25 | 459.185028 1.850000 26 | 476.846008 1.910000 27 | 495.920013 1.980000 28 | 516.583008 2.070000 29 | 539.044006 2.180000 30 | 563.545044 2.290000 31 | 590.381042 2.400000 32 | 619.900024 2.500000 33 | 652.526001 2.570000 34 | 688.778015 2.640000 35 | 729.294006 2.690000 36 | 774.875000 2.680000 37 | 826.533020 2.650000 38 | 885.570984 2.720000 39 | -------------------------------------------------------------------------------- /data/ior/Ir_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ir 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 2.700000 12 | 309.950012 2.680000 13 | 317.897003 2.670000 14 | 326.263000 2.690000 15 | 335.081024 2.720000 16 | 344.389008 2.810000 17 | 354.229004 2.930000 18 | 364.647003 3.050000 19 | 375.696991 3.150000 20 | 387.437988 3.260000 21 | 399.935028 3.350000 22 | 413.266998 3.430000 23 | 427.516998 3.510000 24 | 442.785980 3.610000 25 | 459.185028 3.730000 26 | 476.846008 3.860000 27 | 495.920013 4.000000 28 | 516.583008 4.140000 29 | 539.044006 4.260000 30 | 563.545044 4.380000 31 | 590.381042 4.480000 32 | 619.900024 4.570000 33 | 652.526001 4.680000 34 | 688.778015 4.810000 35 | 729.294006 4.920000 36 | 774.875000 5.080000 37 | 826.533020 5.390000 38 | 885.570984 5.740000 39 | -------------------------------------------------------------------------------- /data/ior/Mo_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Mo 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 2.910000 12 | 309.950012 3.010000 13 | 317.897003 3.040000 14 | 326.263000 3.040000 15 | 335.081024 3.040000 16 | 344.389008 3.050000 17 | 354.229004 3.060000 18 | 364.647003 3.060000 19 | 375.696991 3.060000 20 | 387.437988 3.050000 21 | 399.935028 3.030000 22 | 413.266998 3.040000 23 | 427.516998 3.050000 24 | 442.785980 3.080000 25 | 459.185028 3.130000 26 | 476.846008 3.220000 27 | 495.920013 3.360000 28 | 516.583008 3.590000 29 | 539.044006 3.790000 30 | 563.545044 3.760000 31 | 590.381042 3.680000 32 | 619.900024 3.680000 33 | 652.526001 3.740000 34 | 688.778015 3.810000 35 | 729.294006 3.840000 36 | 774.875000 3.770000 37 | 826.533020 3.530000 38 | 885.570984 3.150000 39 | -------------------------------------------------------------------------------- /data/ior/Mo_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Mo 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 3.670000 12 | 309.950012 3.510000 13 | 317.897003 3.400000 14 | 326.263000 3.310000 15 | 335.081024 3.270000 16 | 344.389008 3.240000 17 | 354.229004 3.210000 18 | 364.647003 3.190000 19 | 375.696991 3.180000 20 | 387.437988 3.180000 21 | 399.935028 3.220000 22 | 413.266998 3.270000 23 | 427.516998 3.330000 24 | 442.785980 3.420000 25 | 459.185028 3.510000 26 | 476.846008 3.610000 27 | 495.920013 3.730000 28 | 516.583008 3.780000 29 | 539.044006 3.610000 30 | 563.545044 3.410000 31 | 590.381042 3.450000 32 | 619.900024 3.520000 33 | 652.526001 3.580000 34 | 688.778015 3.580000 35 | 729.294006 3.510000 36 | 774.875000 3.410000 37 | 826.533020 3.300000 38 | 885.570984 3.400000 39 | -------------------------------------------------------------------------------- /data/ior/V_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for V 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 1.510000 12 | 309.950012 1.560000 13 | 317.897003 1.640000 14 | 326.263000 1.730000 15 | 335.081024 1.840000 16 | 344.389008 1.960000 17 | 354.229004 2.070000 18 | 364.647003 2.180000 19 | 375.696991 2.300000 20 | 387.437988 2.420000 21 | 399.935028 2.550000 22 | 413.266998 2.710000 23 | 427.516998 2.840000 24 | 442.785980 3.030000 25 | 459.185028 3.190000 26 | 476.846008 3.360000 27 | 495.920013 3.530000 28 | 516.583008 3.630000 29 | 539.044006 3.680000 30 | 563.545044 3.680000 31 | 590.381042 3.650000 32 | 619.900024 3.550000 33 | 652.526001 3.500000 34 | 688.778015 3.430000 35 | 729.294006 3.410000 36 | 774.875000 3.420000 37 | 826.533020 3.470000 38 | 885.570984 3.430000 39 | -------------------------------------------------------------------------------- /data/ior/V_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for V 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 2.730000 12 | 309.950012 2.810000 13 | 317.897003 2.890000 14 | 326.263000 2.970000 15 | 335.081024 3.060000 16 | 344.389008 3.140000 17 | 354.229004 3.220000 18 | 364.647003 3.260000 19 | 375.696991 3.310000 20 | 387.437988 3.330000 21 | 399.935028 3.380000 22 | 413.266998 3.380000 23 | 427.516998 3.420000 24 | 442.785980 3.400000 25 | 459.185028 3.380000 26 | 476.846008 3.330000 27 | 495.920013 3.260000 28 | 516.583008 3.150000 29 | 539.044006 3.050000 30 | 563.545044 2.980000 31 | 590.381042 2.940000 32 | 619.900024 2.930000 33 | 652.526001 2.990000 34 | 688.778015 3.050000 35 | 729.294006 3.080000 36 | 774.875000 3.140000 37 | 826.533020 3.180000 38 | 885.570984 3.220000 39 | -------------------------------------------------------------------------------- /data/windows/mitsuba-msvc2017.vcxproj.filters.template: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 6 | h;hpp;hxx;hm;inl;inc;xsd 7 | 8 | 9 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 10 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /src/libhw/data/sh_background.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | uniform mat4 clipToWorld; 20 | varying vec3 position; 21 | 22 | void main() { 23 | vec4 pos = ftransform(); 24 | gl_Position = pos; 25 | 26 | vec4 tmp = clipToWorld * pos; 27 | position = tmp.xyz / tmp.w; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /data/darwin/lipo.sh: -------------------------------------------------------------------------------- 1 | rm -Rf Mitsuba.app 2 | cp -R Mitsuba64.app/ Mitsuba.app 3 | for i in Mitsuba32.app/plugins/*; do 4 | base=$(basename $i) 5 | echo "Running lipo on $base" 6 | lipo -create Mitsuba32.app/plugins/$base Mitsuba64.app/plugins/$base -output Mitsuba.app/plugins/$base 7 | done 8 | for i in Mitsuba32.app/Contents/MacOS/*; do 9 | base=$(basename $i) 10 | echo "Running lipo on $base" 11 | lipo -create Mitsuba32.app/Contents/MacOS/$base Mitsuba64.app/Contents/MacOS/$base -output Mitsuba.app/Contents/MacOS/$base 12 | done 13 | for i in Mitsuba32.app/Contents/Frameworks/libmitsuba*; do 14 | base=$(basename $i) 15 | echo "Running lipo on $base" 16 | lipo -create Mitsuba32.app/Contents/Frameworks/$base Mitsuba64.app/Contents/Frameworks/$base -output Mitsuba.app/Contents/Frameworks/$base 17 | done 18 | lipo -create Mitsuba32.app/python/2.6/mitsuba.so Mitsuba64.app/python/2.6/mitsuba.so -output Mitsuba.app/python/2.6/mitsuba.so 19 | lipo -create Mitsuba32.app/python/2.7/mitsuba.so Mitsuba64.app/python/2.7/mitsuba.so -output Mitsuba.app/python/2.7/mitsuba.so 20 | -------------------------------------------------------------------------------- /data/darwin/extract-symbols.sh: -------------------------------------------------------------------------------- 1 | rm -Rf symbols32 symbols64 2 | dependencies/bin/symbolstore.py -a "i386" dependencies/bin/dump_syms symbols32 \ 3 | `find Mitsuba.app -type f -and \( -name *.dylib -or -name mtsgui -or -name mitsuba -or -name mtsutil \)` \ 4 | dependencies/frameworks/QtCore.framework/QtCore dependencies/frameworks/QtGui.framework/QtGui dependencies/frameworks/QtNetwork.framework/QtNetwork \ 5 | dependencies/frameworks/QtXml.framework/QtXml dependencies/frameworks/QtXmlPatterns.framework/QtXmlPatterns dependencies/frameworks/QtOpenGL.framework/QtOpenGL 6 | 7 | dependencies/bin/symbolstore.py -a "x86_64" dependencies/bin/dump_syms symbols64 \ 8 | `find Mitsuba.app -type f -and \( -name *.dylib -or -name mtsgui -or -name mitsuba -or -name mtsutil \)` \ 9 | dependencies/frameworks/QtCore.framework/QtCore dependencies/frameworks/QtGui.framework/QtGui dependencies/frameworks/QtNetwork.framework/QtNetwork \ 10 | dependencies/frameworks/QtXml.framework/QtXml dependencies/frameworks/QtXmlPatterns.framework/QtXmlPatterns dependencies/frameworks/QtOpenGL.framework/QtOpenGL 11 | -------------------------------------------------------------------------------- /src/libhw/gpusync.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | MTS_NAMESPACE_BEGIN 22 | 23 | GPUSync::GPUSync() { } 24 | GPUSync::~GPUSync() { } 25 | std::string GPUSync::toString() const { 26 | return "GPUSync[]"; 27 | } 28 | 29 | MTS_IMPLEMENT_CLASS(GPUSync, true, Object) 30 | MTS_NAMESPACE_END 31 | -------------------------------------------------------------------------------- /src/mtsgui/tabbar.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #if !defined(__TABBAR_H) 20 | #define __TABBAR_H 21 | 22 | #include 23 | 24 | class CustomTabBar : public QTabBar { 25 | Q_OBJECT 26 | public: 27 | CustomTabBar(QWidget *parent); 28 | virtual ~CustomTabBar(); 29 | }; 30 | 31 | #endif // __TABBAR_H 32 | -------------------------------------------------------------------------------- /include/Eigen/Sparse: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPARSE_MODULE_H 9 | #define EIGEN_SPARSE_MODULE_H 10 | 11 | /** \defgroup Sparse_Module Sparse meta-module 12 | * 13 | * Meta-module including all related modules: 14 | * - \ref SparseCore_Module 15 | * - \ref OrderingMethods_Module 16 | * - \ref SparseCholesky_Module 17 | * - \ref SparseLU_Module 18 | * - \ref SparseQR_Module 19 | * - \ref IterativeLinearSolvers_Module 20 | * 21 | \code 22 | #include 23 | \endcode 24 | */ 25 | 26 | #include "SparseCore" 27 | #include "OrderingMethods" 28 | #ifndef EIGEN_MPL2_ONLY 29 | #include "SparseCholesky" 30 | #endif 31 | #include "SparseLU" 32 | #include "SparseQR" 33 | #include "IterativeLinearSolvers" 34 | 35 | #endif // EIGEN_SPARSE_MODULE_H 36 | 37 | -------------------------------------------------------------------------------- /data/ior/MgO_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for MgO 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.798000 12 | 330.613007 1.785000 13 | 351.118988 1.776800 14 | 355.549011 1.775500 15 | 360.932007 1.773200 16 | 361.141998 1.773180 17 | 364.968994 1.771860 18 | 382.065002 1.766800 19 | 386.712006 1.765500 20 | 393.337982 1.763800 21 | 404.634003 1.761040 22 | 430.935028 1.755700 23 | 435.781982 1.754710 24 | 457.829010 1.751200 25 | 477.949036 1.748300 26 | 486.004974 1.747110 27 | 487.918030 1.746900 28 | 499.919006 1.745400 29 | 502.350006 1.745300 30 | 508.531982 1.744460 31 | 514.440002 1.743900 32 | 546.166992 1.740770 33 | 589.258972 1.737370 34 | 632.874023 1.734600 35 | 643.718018 1.734000 36 | 656.325989 1.733350 37 | 667.635986 1.732770 38 | 690.695984 1.731910 39 | 706.439026 1.731010 40 | 767.677979 1.728720 41 | -------------------------------------------------------------------------------- /data/ior/MgO_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for MgO 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.000000 12 | 330.613007 0.000000 13 | 351.118988 0.000000 14 | 355.549011 0.000001 15 | 360.932007 0.000001 16 | 361.141998 0.000001 17 | 364.968994 0.000000 18 | 382.065002 0.000000 19 | 386.712006 0.000000 20 | 393.337982 0.000000 21 | 404.634003 0.000000 22 | 430.935028 0.000000 23 | 435.781982 0.000000 24 | 457.829010 0.000000 25 | 477.949036 0.000000 26 | 486.004974 0.000000 27 | 487.918030 0.000000 28 | 499.919006 0.000000 29 | 502.350006 0.000000 30 | 508.531982 0.000000 31 | 514.440002 0.000000 32 | 546.166992 0.000000 33 | 589.258972 0.000000 34 | 632.874023 0.000000 35 | 643.718018 0.000000 36 | 656.325989 0.000000 37 | 667.635986 0.000000 38 | 690.695984 0.000000 39 | 706.439026 0.000000 40 | 767.677979 0.000000 41 | -------------------------------------------------------------------------------- /include/Eigen/Jacobi: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_JACOBI_MODULE_H 9 | #define EIGEN_JACOBI_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup Jacobi_Module Jacobi module 16 | * This module provides Jacobi and Givens rotations. 17 | * 18 | * \code 19 | * #include 20 | * \endcode 21 | * 22 | * In addition to listed classes, it defines the two following MatrixBase methods to apply a Jacobi or Givens rotation: 23 | * - MatrixBase::applyOnTheLeft() 24 | * - MatrixBase::applyOnTheRight(). 25 | */ 26 | 27 | #include "src/Jacobi/Jacobi.h" 28 | 29 | #include "src/Core/util/ReenableStupidWarnings.h" 30 | 31 | #endif // EIGEN_JACOBI_MODULE_H 32 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 33 | 34 | -------------------------------------------------------------------------------- /src/mitsuba/darwin_stub.mm: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #import 20 | 21 | extern int mts_main(int argc, char **argv); 22 | 23 | int main(int argc, char **argv) { 24 | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 25 | int retval = mts_main(argc, argv); 26 | [pool release]; 27 | return retval; 28 | } 29 | 30 | -------------------------------------------------------------------------------- /data/linux/fontgen/bin2c.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, char **argv) { 5 | FILE *f1, *f2; 6 | unsigned char buf[12]; 7 | unsigned int count, i, size = 0; 8 | 9 | if (argc != 4) { 10 | fprintf(stderr, "Syntax: bin2c \n"); 11 | return -1; 12 | } 13 | 14 | f1 = fopen(argv[1], "rb"); 15 | 16 | if (!f1) { 17 | fprintf(stderr, "Error opening %s\n", argv[1]); 18 | return -1; 19 | } 20 | 21 | f2 = fopen(argv[2], "w"); 22 | if (!f2) { 23 | fprintf(stderr, "Error opening %s\n", argv[2]); 24 | return -1; 25 | } 26 | 27 | fprintf(f2, "/* Autogenerated by bin2c */\n\n"); 28 | fprintf(f2, "uint8_t %s[] = {\n", argv[3]); 29 | 30 | while ((count = fread(buf, 1, sizeof(buf), f1)) > 0) { 31 | fprintf(f2, "\t"); 32 | for (i=0; i 5 | // Copyright (C) 2007-2009 Benoit Jacob 6 | // 7 | // This Source Code Form is subject to the terms of the Mozilla 8 | // Public License v. 2.0. If a copy of the MPL was not distributed 9 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 10 | 11 | #ifndef EIGEN_DIAGONALPRODUCT_H 12 | #define EIGEN_DIAGONALPRODUCT_H 13 | 14 | namespace Eigen { 15 | 16 | /** \returns the diagonal matrix product of \c *this by the diagonal matrix \a diagonal. 17 | */ 18 | template 19 | template 20 | inline const Product 21 | MatrixBase::operator*(const DiagonalBase &a_diagonal) const 22 | { 23 | return Product(derived(),a_diagonal.derived()); 24 | } 25 | 26 | } // end namespace Eigen 27 | 28 | #endif // EIGEN_DIAGONALPRODUCT_H 29 | -------------------------------------------------------------------------------- /data/ior/TiO2.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, ordinary ray 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiO2_llnl_cxro + TiO2_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 305.972015 1.950000 11 | 317.979004 2.180000 12 | 334.990997 0.788000 13 | 344.007019 0.000000 14 | 359.988007 0.251000 15 | 388.044006 0.000000 16 | 399.935028 0.000000 17 | 412.031006 0.022000 18 | 419.985992 0.000000 19 | 439.957001 0.000000 20 | 460.037018 0.000000 21 | 479.985016 0.000000 22 | 499.919006 0.000000 23 | 520.049988 0.000000 24 | 539.044006 0.000000 25 | 539.983032 0.000000 26 | 559.981995 0.000000 27 | 579.888000 0.000000 28 | 600.097046 0.000000 29 | 619.900024 0.000000 30 | 640.062012 0.000000 31 | 659.819031 0.000000 32 | 680.088013 0.000000 33 | 700.056030 0.000000 34 | 719.976990 0.000000 35 | 740.179016 0.000000 36 | 760.147034 0.000000 37 | 779.747986 0.000000 38 | 799.871033 0.000000 39 | 819.974060 0.000000 40 | 839.973083 0.000000 41 | 859.778015 0.000000 42 | 879.915039 0.000000 43 | 899.709961 0.000000 44 | -------------------------------------------------------------------------------- /data/ior/TiO2.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, ordinary ray 3 | # ; 4 | # ; Concatenation of: 5 | # ; 6 | # ; TiO2_llnl_cxro + TiO2_palik 7 | # ; 8 | # ; Lambda (A) n k 9 | # ;----------------------------------------- 10 | 305.972015 3.840000 11 | 317.979004 5.380000 12 | 334.990997 4.220000 13 | 344.007019 4.360000 14 | 359.988007 3.870000 15 | 388.044006 3.490000 16 | 399.935028 3.400000 17 | 412.031006 3.240000 18 | 419.985992 3.290000 19 | 439.957001 3.200000 20 | 460.037018 3.130000 21 | 479.985016 3.080000 22 | 499.919006 3.030000 23 | 520.049988 3.000000 24 | 539.044006 2.950000 25 | 539.983032 2.970000 26 | 559.981995 2.940000 27 | 579.888000 2.920000 28 | 600.097046 2.900000 29 | 619.900024 2.880000 30 | 640.062012 2.870000 31 | 659.819031 2.850000 32 | 680.088013 2.840000 33 | 700.056030 2.830000 34 | 719.976990 2.820000 35 | 740.179016 2.810000 36 | 760.147034 2.810000 37 | 779.747986 2.800000 38 | 799.871033 2.790000 39 | 819.974060 2.790000 40 | 839.973083 2.780000 41 | 859.778015 2.780000 42 | 879.915039 2.770000 43 | 899.709961 2.770000 44 | -------------------------------------------------------------------------------- /include/Eigen/QtAlignedMalloc: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_QTMALLOC_MODULE_H 9 | #define EIGEN_QTMALLOC_MODULE_H 10 | 11 | #include "Core" 12 | 13 | #if (!EIGEN_MALLOC_ALREADY_ALIGNED) 14 | 15 | #include "src/Core/util/DisableStupidWarnings.h" 16 | 17 | void *qMalloc(std::size_t size) 18 | { 19 | return Eigen::internal::aligned_malloc(size); 20 | } 21 | 22 | void qFree(void *ptr) 23 | { 24 | Eigen::internal::aligned_free(ptr); 25 | } 26 | 27 | void *qRealloc(void *ptr, std::size_t size) 28 | { 29 | void* newPtr = Eigen::internal::aligned_malloc(size); 30 | std::memcpy(newPtr, ptr, size); 31 | Eigen::internal::aligned_free(ptr); 32 | return newPtr; 33 | } 34 | 35 | #include "src/Core/util/ReenableStupidWarnings.h" 36 | 37 | #endif 38 | 39 | #endif // EIGEN_QTMALLOC_MODULE_H 40 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 41 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Documentation 2 | doc/apidocs/* 3 | doc/*.aux 4 | doc/*.log 5 | doc/*.out 6 | doc/*.toc 7 | doc/*.bbl 8 | doc/*.blg 9 | doc/main.pdf 10 | doc/plugins_generated.tex 11 | 12 | # Build-related 13 | conftest_0.obj 14 | .sconf_temp 15 | build/release 16 | build/debug 17 | debian 18 | .sconsign.dblite 19 | config.py 20 | config.log 21 | *.pyc 22 | 23 | # MSVC++-related 24 | build/mitsuba-msvc2019.sdf 25 | build/mitsuba-msvc2019.suo 26 | build/mitsuba-msvc2019.vcxproj.user 27 | build/.vs/**/* 28 | build/debug_* 29 | build/release_* 30 | data/windows/mitsuba_res.res 31 | data/windows/wmain_stub.obj 32 | dist 33 | *.user 34 | 35 | # VSCode-related 36 | .vscode/ipch 37 | **/.vscode/ipch 38 | 39 | # Debugging history files 40 | \.gdb_history 41 | 42 | # Dependencies 43 | dependencies 44 | deps 45 | 46 | # OSX binaries and byproducts 47 | Mitsuba.app 48 | .DS_Store 49 | 50 | # Imported geometry and some default output types 51 | /meshes 52 | /textures 53 | mitsuba.*.log 54 | *.mip 55 | /scenes/**/*.exr 56 | 57 | # Eclipse CDT project files 58 | .externalToolBuilders 59 | .settings 60 | .cproject 61 | .project 62 | 63 | # LEGG 64 | doc/ 65 | *.bak* 66 | -------------------------------------------------------------------------------- /include/Eigen/MetisSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_METISSUPPORT_MODULE_H 9 | #define EIGEN_METISSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | extern "C" { 16 | #include 17 | } 18 | 19 | 20 | /** \ingroup Support_modules 21 | * \defgroup MetisSupport_Module MetisSupport module 22 | * 23 | * \code 24 | * #include 25 | * \endcode 26 | * This module defines an interface to the METIS reordering package (http://glaros.dtc.umn.edu/gkhome/views/metis). 27 | * It can be used just as any other built-in method as explained in \link OrderingMethods_Module here. \endlink 28 | */ 29 | 30 | 31 | #include "src/MetisSupport/MetisSupport.h" 32 | 33 | #include "src/Core/util/ReenableStupidWarnings.h" 34 | 35 | #endif // EIGEN_METISSUPPORT_MODULE_H 36 | -------------------------------------------------------------------------------- /src/libhw/data/sh_cube_6pass.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | /* Linear depth from the vertex shader */ 20 | varying float depth; 21 | 22 | void main() { 23 | float dx = dFdx(depth), dy = dFdy(depth); 24 | 25 | #ifndef DEPTH_CUBEMAPS_UNSUPPORTED 26 | gl_FragDepth = depth + sqrt(dx*dx+dy*dy); 27 | #else 28 | gl_FragDepth = gl_FragColor.r = depth + sqrt(dx*dx+dy*dy); 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /src/libhw/data/sh_cube_6pass.vert: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | /* Transformation matrix for the current cube map face */ 20 | uniform mat4 transform; 21 | 22 | /* Depth projection axis */ 23 | uniform vec4 projDir; 24 | 25 | /* -> Fragment shader */ 26 | varying float depth; 27 | 28 | void main() { 29 | vec4 pos = gl_ModelViewMatrix * gl_Vertex; 30 | gl_Position = transform * pos; 31 | depth = dot(projDir, pos); 32 | } 33 | -------------------------------------------------------------------------------- /data/ior/Ni_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ni 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 1.740000 12 | 309.950012 1.730000 13 | 317.897003 1.720000 14 | 326.263000 1.690000 15 | 335.081024 1.660000 16 | 344.389008 1.640000 17 | 354.229004 1.630000 18 | 364.647003 1.620000 19 | 375.696991 1.610000 20 | 387.437988 1.610000 21 | 399.935028 1.610000 22 | 413.266998 1.610000 23 | 427.516998 1.620000 24 | 442.785980 1.620000 25 | 459.185028 1.640000 26 | 476.846008 1.660000 27 | 495.920013 1.670000 28 | 516.583008 1.710000 29 | 539.044006 1.750000 30 | 563.545044 1.800000 31 | 590.381042 1.850000 32 | 619.900024 1.930000 33 | 635.795044 1.980000 34 | 652.526001 2.020000 35 | 670.162048 2.080000 36 | 688.778015 2.140000 37 | 708.456970 2.210000 38 | 729.294006 2.280000 39 | 751.393982 2.360000 40 | 774.875000 2.430000 41 | 799.871033 2.480000 42 | 826.533020 2.530000 43 | 855.033997 2.590000 44 | 885.570984 2.650000 45 | -------------------------------------------------------------------------------- /data/ior/Ni_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for Ni 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 1.990000 12 | 309.950012 1.980000 13 | 317.897003 1.980000 14 | 326.263000 1.990000 15 | 335.081024 2.020000 16 | 344.389008 2.070000 17 | 354.229004 2.110000 18 | 364.647003 2.170000 19 | 375.696991 2.230000 20 | 387.437988 2.300000 21 | 399.935028 2.360000 22 | 413.266998 2.440000 23 | 427.516998 2.520000 24 | 442.785980 2.610000 25 | 459.185028 2.710000 26 | 476.846008 2.810000 27 | 495.920013 2.930000 28 | 516.583008 3.060000 29 | 539.044006 3.190000 30 | 563.545044 3.330000 31 | 590.381042 3.480000 32 | 619.900024 3.650000 33 | 635.795044 3.740000 34 | 652.526001 3.820000 35 | 670.162048 3.910000 36 | 688.778015 4.000000 37 | 708.456970 4.090000 38 | 729.294006 4.180000 39 | 751.393982 4.250000 40 | 774.875000 4.310000 41 | 799.871033 4.380000 42 | 826.533020 4.470000 43 | 855.033997 4.550000 44 | 885.570984 4.630000 45 | -------------------------------------------------------------------------------- /data/windows/mitsuba-msvc2017.sln.template: -------------------------------------------------------------------------------- 1 | 2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.26730.12 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mitsuba-msvc2017", "mitsuba-msvc2017.vcxproj", "{14BF8B5B-8DCA-4A28-83CA-CE9962153946}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Release|x64 = Release|x64 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.ActiveCfg = Debug|x64 15 | {14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Debug|x64.Build.0 = Debug|x64 16 | {14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.ActiveCfg = Release|x64 17 | {14BF8B5B-8DCA-4A28-83CA-CE9962153946}.Release|x64.Build.0 = Release|x64 18 | EndGlobalSection 19 | GlobalSection(SolutionProperties) = preSolution 20 | HideSolutionNode = FALSE 21 | EndGlobalSection 22 | GlobalSection(ExtensibilityGlobals) = postSolution 23 | SolutionGuid = {881D9083-39B3-458C-965B-C455BED48F34} 24 | EndGlobalSection 25 | EndGlobal 26 | -------------------------------------------------------------------------------- /data/ior/TiO2-e.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 307.033020 3.420000 12 | 317.979004 4.000000 13 | 327.037994 3.870000 14 | 344.007019 4.300000 15 | 358.013000 3.380000 16 | 388.044006 2.880000 17 | 399.935028 3.000000 18 | 402.010010 3.000000 19 | 419.985992 2.910000 20 | 439.957001 2.840000 21 | 460.037018 2.790000 22 | 479.985016 2.750000 23 | 499.919006 2.710000 24 | 520.049988 2.680000 25 | 539.983032 2.660000 26 | 559.981995 2.640000 27 | 579.888000 2.620000 28 | 600.097046 2.600000 29 | 619.900024 2.590000 30 | 640.062012 2.580000 31 | 659.819031 2.570000 32 | 680.088013 2.560000 33 | 700.056030 2.550000 34 | 719.976990 2.540000 35 | 740.179016 2.540000 36 | 760.147034 2.530000 37 | 779.747986 2.520000 38 | 799.871033 2.520000 39 | 819.974060 2.520000 40 | 839.973083 2.510000 41 | 859.778015 2.510000 42 | 879.915039 2.500000 43 | 899.709961 2.500000 44 | -------------------------------------------------------------------------------- /data/ior/TiO2-e.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 307.033020 1.610000 12 | 317.979004 1.790000 13 | 327.037994 0.810000 14 | 344.007019 0.000000 15 | 358.013000 0.117000 16 | 388.044006 0.000000 17 | 399.935028 0.000000 18 | 402.010010 0.008000 19 | 419.985992 0.000000 20 | 439.957001 0.000000 21 | 460.037018 0.000000 22 | 479.985016 0.000000 23 | 499.919006 0.000000 24 | 520.049988 0.000000 25 | 539.983032 0.000000 26 | 559.981995 0.000000 27 | 579.888000 0.000000 28 | 600.097046 0.000000 29 | 619.900024 0.000000 30 | 640.062012 0.000000 31 | 659.819031 0.000000 32 | 680.088013 0.000000 33 | 700.056030 0.000000 34 | 719.976990 0.000000 35 | 740.179016 0.000000 36 | 760.147034 0.000000 37 | 779.747986 0.000000 38 | 799.871033 0.000000 39 | 819.974060 0.000000 40 | 839.973083 0.000000 41 | 859.778015 0.000000 42 | 879.915039 0.000000 43 | 899.709961 0.000000 44 | -------------------------------------------------------------------------------- /data/ior/TiO2-e_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 307.033020 3.420000 12 | 317.979004 4.000000 13 | 327.037994 3.870000 14 | 344.007019 4.300000 15 | 358.013000 3.380000 16 | 388.044006 2.880000 17 | 399.935028 3.000000 18 | 402.010010 3.000000 19 | 419.985992 2.910000 20 | 439.957001 2.840000 21 | 460.037018 2.790000 22 | 479.985016 2.750000 23 | 499.919006 2.710000 24 | 520.049988 2.680000 25 | 539.983032 2.660000 26 | 559.981995 2.640000 27 | 579.888000 2.620000 28 | 600.097046 2.600000 29 | 619.900024 2.590000 30 | 640.062012 2.580000 31 | 659.819031 2.570000 32 | 680.088013 2.560000 33 | 700.056030 2.550000 34 | 719.976990 2.540000 35 | 740.179016 2.540000 36 | 760.147034 2.530000 37 | 779.747986 2.520000 38 | 799.871033 2.520000 39 | 819.974060 2.520000 40 | 839.973083 2.510000 41 | 859.778015 2.510000 42 | 879.915039 2.500000 43 | 899.709961 2.500000 44 | -------------------------------------------------------------------------------- /data/ior/TiO2-e_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 307.033020 1.610000 12 | 317.979004 1.790000 13 | 327.037994 0.810000 14 | 344.007019 0.000000 15 | 358.013000 0.117000 16 | 388.044006 0.000000 17 | 399.935028 0.000000 18 | 402.010010 0.008000 19 | 419.985992 0.000000 20 | 439.957001 0.000000 21 | 460.037018 0.000000 22 | 479.985016 0.000000 23 | 499.919006 0.000000 24 | 520.049988 0.000000 25 | 539.983032 0.000000 26 | 559.981995 0.000000 27 | 579.888000 0.000000 28 | 600.097046 0.000000 29 | 619.900024 0.000000 30 | 640.062012 0.000000 31 | 659.819031 0.000000 32 | 680.088013 0.000000 33 | 700.056030 0.000000 34 | 719.976990 0.000000 35 | 740.179016 0.000000 36 | 760.147034 0.000000 37 | 779.747986 0.000000 38 | 799.871033 0.000000 39 | 819.974060 0.000000 40 | 839.973083 0.000000 41 | 859.778015 0.000000 42 | 879.915039 0.000000 43 | 899.709961 0.000000 44 | -------------------------------------------------------------------------------- /data/ior/TiO2_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 305.972015 3.840000 12 | 317.979004 5.380000 13 | 334.990997 4.220000 14 | 344.007019 4.360000 15 | 359.988007 3.870000 16 | 388.044006 3.490000 17 | 399.935028 3.400000 18 | 412.031006 3.240000 19 | 419.985992 3.290000 20 | 439.957001 3.200000 21 | 460.037018 3.130000 22 | 479.985016 3.080000 23 | 499.919006 3.030000 24 | 520.049988 3.000000 25 | 539.044006 2.950000 26 | 539.983032 2.970000 27 | 559.981995 2.940000 28 | 579.888000 2.920000 29 | 600.097046 2.900000 30 | 619.900024 2.880000 31 | 640.062012 2.870000 32 | 659.819031 2.850000 33 | 680.088013 2.840000 34 | 700.056030 2.830000 35 | 719.976990 2.820000 36 | 740.179016 2.810000 37 | 760.147034 2.810000 38 | 779.747986 2.800000 39 | 799.871033 2.790000 40 | 819.974060 2.790000 41 | 839.973083 2.780000 42 | 859.778015 2.780000 43 | 879.915039 2.770000 44 | 899.709961 2.770000 45 | -------------------------------------------------------------------------------- /data/ior/TiO2_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for tetragonal TiO2, ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1985. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 305.972015 1.950000 12 | 317.979004 2.180000 13 | 334.990997 0.788000 14 | 344.007019 0.000000 15 | 359.988007 0.251000 16 | 388.044006 0.000000 17 | 399.935028 0.000000 18 | 412.031006 0.022000 19 | 419.985992 0.000000 20 | 439.957001 0.000000 21 | 460.037018 0.000000 22 | 479.985016 0.000000 23 | 499.919006 0.000000 24 | 520.049988 0.000000 25 | 539.044006 0.000000 26 | 539.983032 0.000000 27 | 559.981995 0.000000 28 | 579.888000 0.000000 29 | 600.097046 0.000000 30 | 619.900024 0.000000 31 | 640.062012 0.000000 32 | 659.819031 0.000000 33 | 680.088013 0.000000 34 | 700.056030 0.000000 35 | 719.976990 0.000000 36 | 740.179016 0.000000 37 | 760.147034 0.000000 38 | 779.747986 0.000000 39 | 799.871033 0.000000 40 | 819.974060 0.000000 41 | 839.973083 0.000000 42 | 859.778015 0.000000 43 | 879.915039 0.000000 44 | 899.709961 0.000000 45 | -------------------------------------------------------------------------------- /src/converter/SConscript: -------------------------------------------------------------------------------- 1 | Import('mainEnv', 'hasCollada', 'stubs', 'winstubs') 2 | 3 | 4 | converter_objects = [] 5 | 6 | if hasCollada: 7 | import platform 8 | 9 | colladaEnv = mainEnv.Clone() 10 | colladaEnv.Prepend(CXXFLAGS=['-DCOLLADA_DOM_2_4']) 11 | 12 | # Build the COLLADA importer if COLLADA-DOM is vailable 13 | colladaEnv.Append(LIBS=['mitsuba-hw']) 14 | colladaEnv.Append(LIBPATH=['#src/libhw']) 15 | if colladaEnv.has_key('COLLADAINCLUDE'): 16 | colladaEnv.Prepend(CPPPATH=colladaEnv['COLLADAINCLUDE']) 17 | if colladaEnv.has_key('COLLADALIBDIR'): 18 | colladaEnv.Prepend(LIBPATH=colladaEnv['COLLADALIBDIR']) 19 | if colladaEnv.has_key('COLLADALIB'): 20 | colladaEnv.Prepend(LIBS=colladaEnv['COLLADALIB']) 21 | converter_objects += [ 22 | colladaEnv.StaticObject('collada.cpp'), 23 | colladaEnv.StaticObject('obj.cpp'), 24 | colladaEnv.StaticObject('converter.cpp') 25 | ] 26 | colladaEnv.Program('mtsimport', stubs + winstubs + ['mtsimport.cpp'] 27 | + converter_objects) 28 | 29 | Return('converter_objects') 30 | -------------------------------------------------------------------------------- /data/ior/ThF4.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline ThF4 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.000000 12 | 319.947998 0.000000 13 | 329.997009 0.000000 14 | 340.044006 0.000000 15 | 349.929016 0.000000 16 | 359.988007 0.000000 17 | 369.979004 0.000000 18 | 379.957001 0.000000 19 | 389.997009 0.000000 20 | 399.935028 0.000000 21 | 409.987030 0.000000 22 | 419.985992 0.000000 23 | 430.037994 0.000000 24 | 435.781982 0.000000 25 | 439.957001 0.000000 26 | 450.018036 0.000000 27 | 460.037018 0.000000 28 | 469.977020 0.000000 29 | 479.985016 0.000000 30 | 490.040009 0.000000 31 | 499.919006 0.000000 32 | 509.996002 0.000000 33 | 520.049988 0.000000 34 | 539.983032 0.000000 35 | 545.927002 0.000000 36 | 559.981995 0.000000 37 | 579.888000 0.000000 38 | 600.097046 0.000000 39 | 619.900024 0.000000 40 | 640.062012 0.000000 41 | 659.819031 0.000000 42 | 700.056030 0.000000 43 | 739.737000 0.000000 44 | 779.747986 0.000000 45 | 799.871033 0.000000 46 | -------------------------------------------------------------------------------- /data/ior/ThF4.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline ThF4 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.545000 12 | 319.947998 1.542000 13 | 329.997009 1.540000 14 | 340.044006 1.538000 15 | 349.929016 1.536000 16 | 359.988007 1.534000 17 | 369.979004 1.532000 18 | 379.957001 1.531000 19 | 389.997009 1.530000 20 | 399.935028 1.529000 21 | 409.987030 1.528000 22 | 419.985992 1.527000 23 | 430.037994 1.526000 24 | 435.781982 1.533000 25 | 439.957001 1.526000 26 | 450.018036 1.525000 27 | 460.037018 1.524000 28 | 469.977020 1.524000 29 | 479.985016 1.523000 30 | 490.040009 1.523000 31 | 499.919006 1.523000 32 | 509.996002 1.522000 33 | 520.049988 1.522000 34 | 539.983032 1.521000 35 | 545.927002 1.521000 36 | 559.981995 1.521000 37 | 579.888000 1.520000 38 | 600.097046 1.520000 39 | 619.900024 1.520000 40 | 640.062012 1.519000 41 | 659.819031 1.519000 42 | 700.056030 1.519000 43 | 739.737000 1.518000 44 | 779.747986 1.518000 45 | 799.871033 1.518000 46 | -------------------------------------------------------------------------------- /data/ior/ThF4_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline ThF4 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 0.000000 12 | 319.947998 0.000000 13 | 329.997009 0.000000 14 | 340.044006 0.000000 15 | 349.929016 0.000000 16 | 359.988007 0.000000 17 | 369.979004 0.000000 18 | 379.957001 0.000000 19 | 389.997009 0.000000 20 | 399.935028 0.000000 21 | 409.987030 0.000000 22 | 419.985992 0.000000 23 | 430.037994 0.000000 24 | 435.781982 0.000000 25 | 439.957001 0.000000 26 | 450.018036 0.000000 27 | 460.037018 0.000000 28 | 469.977020 0.000000 29 | 479.985016 0.000000 30 | 490.040009 0.000000 31 | 499.919006 0.000000 32 | 509.996002 0.000000 33 | 520.049988 0.000000 34 | 539.983032 0.000000 35 | 545.927002 0.000000 36 | 559.981995 0.000000 37 | 579.888000 0.000000 38 | 600.097046 0.000000 39 | 619.900024 0.000000 40 | 640.062012 0.000000 41 | 659.819031 0.000000 42 | 700.056030 0.000000 43 | 739.737000 0.000000 44 | 779.747986 0.000000 45 | 799.871033 0.000000 46 | -------------------------------------------------------------------------------- /data/ior/ThF4_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for polycrystalline ThF4 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.545000 12 | 319.947998 1.542000 13 | 329.997009 1.540000 14 | 340.044006 1.538000 15 | 349.929016 1.536000 16 | 359.988007 1.534000 17 | 369.979004 1.532000 18 | 379.957001 1.531000 19 | 389.997009 1.530000 20 | 399.935028 1.529000 21 | 409.987030 1.528000 22 | 419.985992 1.527000 23 | 430.037994 1.526000 24 | 435.781982 1.533000 25 | 439.957001 1.526000 26 | 450.018036 1.525000 27 | 460.037018 1.524000 28 | 469.977020 1.524000 29 | 479.985016 1.523000 30 | 490.040009 1.523000 31 | 499.919006 1.523000 32 | 509.996002 1.522000 33 | 520.049988 1.522000 34 | 539.983032 1.521000 35 | 545.927002 1.521000 36 | 559.981995 1.521000 37 | 579.888000 1.520000 38 | 600.097046 1.520000 39 | 619.900024 1.520000 40 | 640.062012 1.519000 41 | 659.819031 1.519000 42 | 700.056030 1.519000 43 | 739.737000 1.518000 44 | 779.747986 1.518000 45 | 799.871033 1.518000 46 | -------------------------------------------------------------------------------- /data/windows/qmake_fake.c: -------------------------------------------------------------------------------- 1 | /* Minimal QMake stub to trick CMake into using the Mitsuba Qt distribution */ 2 | #include 3 | #include 4 | 5 | /* 6 | MSVC Compile flags: 7 | cl qmake_fake.c /nologo /Os /MT /arch:SSE2 /link /OUT:"qmake.exe" 8 | */ 9 | 10 | /* Qt version currently provided in the Mitsuba dependencies */ 11 | #define QT_VERSION "4.8.5" 12 | 13 | void printUsage(FILE* out) 14 | { 15 | fprintf(out, "Usage: qmake -query QT_VERSION\n\n"); 16 | fprintf(out, "This is a minimal QMake stub so that CMake may find " 17 | "the Qt distribution bundled with the Mitsuba dependencies.\n"); 18 | } 19 | 20 | int main(int argc, char **argv) 21 | { 22 | if (argc != 3) { 23 | fprintf(stderr, "***Unknown options\n"); 24 | printUsage(stderr); 25 | return 1; 26 | } else if (strcmp(argv[1], "-query") != 0) { 27 | fprintf(stderr, "***Unknown option %s\n", argv[1]); 28 | printUsage(stderr); 29 | return 1; 30 | } 31 | 32 | if (strcmp(argv[2], "QT_VERSION") == 0) { 33 | puts(QT_VERSION); 34 | return 0; 35 | } 36 | else { 37 | puts("**Unknown**"); 38 | return 101; 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /include/Eigen/src/SparseCore/SparseFuzzy.h: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // Copyright (C) 2008-2014 Gael Guennebaud 5 | // 6 | // This Source Code Form is subject to the terms of the Mozilla 7 | // Public License v. 2.0. If a copy of the MPL was not distributed 8 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 9 | 10 | #ifndef EIGEN_SPARSE_FUZZY_H 11 | #define EIGEN_SPARSE_FUZZY_H 12 | 13 | namespace Eigen { 14 | 15 | template 16 | template 17 | bool SparseMatrixBase::isApprox(const SparseMatrixBase& other, const RealScalar &prec) const 18 | { 19 | const typename internal::nested_eval::type actualA(derived()); 20 | typename internal::conditional::type, 22 | const PlainObject>::type actualB(other.derived()); 23 | 24 | return (actualA - actualB).squaredNorm() <= prec * prec * numext::mini(actualA.squaredNorm(), actualB.squaredNorm()); 25 | } 26 | 27 | } // end namespace Eigen 28 | 29 | #endif // EIGEN_SPARSE_FUZZY_H 30 | -------------------------------------------------------------------------------- /src/mtsgui/aboutdlg.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #if !defined(__ABOUTDLG_H) 20 | #define __ABOUTDLG_H 21 | 22 | #include "common.h" 23 | 24 | namespace Ui { 25 | class AboutDialog; 26 | } 27 | 28 | class AboutDialog : public QDialog { 29 | Q_OBJECT 30 | public: 31 | AboutDialog(QWidget *parent); 32 | ~AboutDialog(); 33 | 34 | protected slots: 35 | void onCredits(); 36 | protected: 37 | void changeEvent(QEvent *e); 38 | private: 39 | Ui::AboutDialog *ui; 40 | }; 41 | 42 | #endif // __ABOUTDLG_H 43 | -------------------------------------------------------------------------------- /include/Eigen/PardisoSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_PARDISOSUPPORT_MODULE_H 9 | #define EIGEN_PARDISOSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include 16 | 17 | /** \ingroup Support_modules 18 | * \defgroup PardisoSupport_Module PardisoSupport module 19 | * 20 | * This module brings support for the Intel(R) MKL PARDISO direct sparse solvers. 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * In order to use this module, the MKL headers must be accessible from the include paths, and your binary must be linked to the MKL library and its dependencies. 27 | * See this \ref TopicUsingIntelMKL "page" for more information on MKL-Eigen integration. 28 | * 29 | */ 30 | 31 | #include "src/PardisoSupport/PardisoSupport.h" 32 | 33 | #include "src/Core/util/ReenableStupidWarnings.h" 34 | 35 | #endif // EIGEN_PARDISOSUPPORT_MODULE_H 36 | -------------------------------------------------------------------------------- /data/ior/AlAs.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlAs 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 2.680000 12 | 309.950012 2.490000 13 | 317.897003 2.150000 14 | 326.263000 1.300000 15 | 335.081024 0.752000 16 | 344.389008 0.519000 17 | 354.229004 0.334000 18 | 364.647003 0.233000 19 | 375.696991 0.139000 20 | 387.437988 0.115000 21 | 393.587006 0.119000 22 | 397.372009 0.115000 23 | 399.935028 0.113000 24 | 403.187012 0.110000 25 | 406.492004 0.106000 26 | 409.850983 0.099800 27 | 413.266998 0.063800 28 | 416.739990 0.031500 29 | 420.270996 0.018900 30 | 423.863007 0.011800 31 | 427.516998 0.010500 32 | 431.235016 0.010300 33 | 435.018036 0.009930 34 | 442.785980 0.001610 35 | 459.185028 0.001560 36 | 476.846008 0.001530 37 | 495.920013 0.001250 38 | 516.583008 0.000682 39 | 539.044006 0.000275 40 | 563.545044 0.000040 41 | 590.381042 0.000002 42 | 619.900024 0.000000 43 | 652.526001 0.000000 44 | 688.778015 0.000000 45 | 729.294006 0.000000 46 | 774.875000 0.000000 47 | 826.533020 0.000000 48 | 885.570984 0.000000 49 | -------------------------------------------------------------------------------- /data/ior/AlAs.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlAs 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 4.470000 12 | 309.950012 4.920000 13 | 317.897003 5.350000 14 | 326.263000 5.390000 15 | 335.081024 4.990000 16 | 344.389008 4.720000 17 | 354.229004 4.480000 18 | 364.647003 4.300000 19 | 375.696991 4.130000 20 | 387.437988 3.930000 21 | 393.587006 0.000000 22 | 397.372009 0.000000 23 | 399.935028 0.000000 24 | 403.187012 0.000000 25 | 406.492004 0.000000 26 | 409.850983 0.000000 27 | 413.266998 0.000000 28 | 416.739990 0.000000 29 | 420.270996 0.000000 30 | 423.863007 0.000000 31 | 427.516998 0.000000 32 | 431.235016 0.000000 33 | 435.018036 0.000000 34 | 442.785980 3.703000 35 | 459.185028 3.570000 36 | 476.846008 3.472000 37 | 495.920013 3.394000 38 | 516.583008 3.329000 39 | 539.044006 3.273000 40 | 563.545044 3.225000 41 | 590.381042 3.183000 42 | 619.900024 3.145000 43 | 652.526001 3.112000 44 | 688.778015 3.082000 45 | 729.294006 3.056000 46 | 774.875000 3.032000 47 | 826.533020 3.010000 48 | 885.570984 2.990000 49 | -------------------------------------------------------------------------------- /data/ior/AlAs_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlAs 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 2.680000 12 | 309.950012 2.490000 13 | 317.897003 2.150000 14 | 326.263000 1.300000 15 | 335.081024 0.752000 16 | 344.389008 0.519000 17 | 354.229004 0.334000 18 | 364.647003 0.233000 19 | 375.696991 0.139000 20 | 387.437988 0.115000 21 | 393.587006 0.119000 22 | 397.372009 0.115000 23 | 399.935028 0.113000 24 | 403.187012 0.110000 25 | 406.492004 0.106000 26 | 409.850983 0.099800 27 | 413.266998 0.063800 28 | 416.739990 0.031500 29 | 420.270996 0.018900 30 | 423.863007 0.011800 31 | 427.516998 0.010500 32 | 431.235016 0.010300 33 | 435.018036 0.009930 34 | 442.785980 0.001610 35 | 459.185028 0.001560 36 | 476.846008 0.001530 37 | 495.920013 0.001250 38 | 516.583008 0.000682 39 | 539.044006 0.000275 40 | 563.545044 0.000040 41 | 590.381042 0.000002 42 | 619.900024 0.000000 43 | 652.526001 0.000000 44 | 688.778015 0.000000 45 | 729.294006 0.000000 46 | 774.875000 0.000000 47 | 826.533020 0.000000 48 | 885.570984 0.000000 49 | -------------------------------------------------------------------------------- /data/ior/AlAs_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for cubic AlAs 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 302.389984 4.470000 12 | 309.950012 4.920000 13 | 317.897003 5.350000 14 | 326.263000 5.390000 15 | 335.081024 4.990000 16 | 344.389008 4.720000 17 | 354.229004 4.480000 18 | 364.647003 4.300000 19 | 375.696991 4.130000 20 | 387.437988 3.930000 21 | 393.587006 0.000000 22 | 397.372009 0.000000 23 | 399.935028 0.000000 24 | 403.187012 0.000000 25 | 406.492004 0.000000 26 | 409.850983 0.000000 27 | 413.266998 0.000000 28 | 416.739990 0.000000 29 | 420.270996 0.000000 30 | 423.863007 0.000000 31 | 427.516998 0.000000 32 | 431.235016 0.000000 33 | 435.018036 0.000000 34 | 442.785980 3.703000 35 | 459.185028 3.570000 36 | 476.846008 3.472000 37 | 495.920013 3.394000 38 | 516.583008 3.329000 39 | 539.044006 3.273000 40 | 563.545044 3.225000 41 | 590.381042 3.183000 42 | 619.900024 3.145000 43 | 652.526001 3.112000 44 | 688.778015 3.082000 45 | 729.294006 3.056000 46 | 774.875000 3.032000 47 | 826.533020 3.010000 48 | 885.570984 2.990000 49 | -------------------------------------------------------------------------------- /src/mtsgui/acknowledgmentdlg.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #if !defined(__ACKNOWLEDGEMENTDLG_H) 20 | #define __ACKNOWLEDGEMENTDLG_H 21 | 22 | #include "common.h" 23 | 24 | namespace Ui { 25 | class AcknowledgmentDialog; 26 | } 27 | 28 | class AcknowledgmentDialog : public QDialog { 29 | Q_OBJECT 30 | public: 31 | AcknowledgmentDialog(QWidget *parent); 32 | ~AcknowledgmentDialog(); 33 | protected: 34 | void changeEvent(QEvent *e); 35 | private: 36 | Ui::AcknowledgmentDialog *ui; 37 | }; 38 | 39 | #endif // __ACKNOWLEDGEMENTDLG_H 40 | -------------------------------------------------------------------------------- /src/mtsgui/sceneinfodlg.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #if !defined(__SCENEINFODLG_H) 20 | #define __SCENEINFODLG_H 21 | 22 | #include "common.h" 23 | 24 | namespace Ui { 25 | class SceneInformationDialog; 26 | } 27 | 28 | class SceneInformationDialog : public QDialog { 29 | Q_OBJECT 30 | public: 31 | SceneInformationDialog(QWidget *parent, Scene *scene); 32 | ~SceneInformationDialog(); 33 | protected: 34 | void changeEvent(QEvent *e); 35 | private: 36 | Ui::SceneInformationDialog *ui; 37 | }; 38 | 39 | #endif // __SCENEINFODLG_H 40 | -------------------------------------------------------------------------------- /src/mtsgui/upgrade.h: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #if !defined(__UPGRADEMGR_H) 20 | #define __UPGRADEMGR_H 21 | 22 | #include "common.h" 23 | #include 24 | 25 | class UpgradeManager : public QObject { 26 | Q_OBJECT 27 | public: 28 | UpgradeManager(const FileResolver *resolver); 29 | 30 | void performUpgrade(const QString &path, const Version &version); 31 | private: 32 | const FileResolver *m_resolver; 33 | std::vector > m_transformations; 34 | }; 35 | 36 | #endif // __UPGRADEMGR_H 37 | -------------------------------------------------------------------------------- /include/Eigen/SPQRSupport: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPQRSUPPORT_MODULE_H 9 | #define EIGEN_SPQRSUPPORT_MODULE_H 10 | 11 | #include "SparseCore" 12 | 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | #include "SuiteSparseQR.hpp" 16 | 17 | /** \ingroup Support_modules 18 | * \defgroup SPQRSupport_Module SuiteSparseQR module 19 | * 20 | * This module provides an interface to the SPQR library, which is part of the suitesparse package. 21 | * 22 | * \code 23 | * #include 24 | * \endcode 25 | * 26 | * In order to use this module, the SPQR headers must be accessible from the include paths, and your binary must be linked to the SPQR library and its dependencies (Cholmod, AMD, COLAMD,...). 27 | * For a cmake based project, you can use our FindSPQR.cmake and FindCholmod.Cmake modules 28 | * 29 | */ 30 | 31 | #include "src/CholmodSupport/CholmodSupport.h" 32 | #include "src/SPQRSupport/SuiteSparseQRSupport.h" 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /data/scripts/rendertime.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import subprocess, sys, re 4 | 5 | if len(sys.argv) == 1: 6 | print('rendertime.py: Simple utility to extract the rendering time of an EXR file created using Mitsuba') 7 | print('Syntax: rendertime.py ') 8 | 9 | for arg in sys.argv[1:]: 10 | sys.stdout.write("%s: " % arg) 11 | 12 | p = subprocess.Popen(["exrheader", arg], stdout=subprocess.PIPE, stderr=subprocess.PIPE) 13 | matches = re.findall('Render time: ([^\n]*)', p.communicate()[0]) 14 | if len(matches) != 1: 15 | sys.stdout.write('error reading metadata!\n') 16 | continue 17 | 18 | value = matches[0] 19 | 20 | units = [ 21 | ['d', 60*60*24], 22 | ['h', 60*60], 23 | ['m', 60], 24 | ['s', 1], 25 | ['ms', 0.001] 26 | ]; 27 | 28 | for unit in units: 29 | if value[-len(unit[0]):] == unit[0]: 30 | value = float(value[0:-len(unit[0])]) * unit[1] 31 | break 32 | 33 | force = False 34 | for unit in units: 35 | if value > unit[1] or force: 36 | amount = int(value / unit[1]) 37 | value -= amount * unit[1] 38 | force = True 39 | sys.stdout.write('%i%s ' % (amount, unit[0])) 40 | sys.stdout.write('\n') 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # An Efficient Transport Estimator for Complex Layered Materials 2 | 3 | [Luis E. Gamboa](https://lc.fie.umich.mx/~legg/), [Adrien Gruson](https://beltegeuse.github.io/research/), [Derek Nowrouzezahrai](http://www.cim.mcgill.ca/~derek/). 4 | In Computer Graphics Forum (Eurographics 2020). 5 | [[Project page]](https://lc.fie.umich.mx/~legg/complexlayered.php) 6 | 7 | ## Installation 8 | This is a branch of mitsuba 0.6.0 renderer. 9 | In this release, we provide the following plugins inside `src/devplugins`: 10 | - `fast_accurate`: our method 11 | - `multilayered_guo2018`: Guo2018 method ([project page](https://shuangz.com/projects/layered-sa18/)) 12 | - and all the required supporting plugins to render with both methods. 13 | 14 | 15 | ## Scenes 16 | - Coffee table, including the red mug. 17 | 18 | ## Rendering 19 | To render a scene file using our material set and 512 samples per pixel use: 20 | `mitsuba -D materials=ours -D spp=512 scene.xml` 21 | 22 | Set `materials=guo` to render using Guo2018. 23 | 24 | To test different integrators, use `-D integrator=` to: 25 | - `pathwsampler`: path tracing w/MIS. 26 | - `directwsampler`: direct illumination w/MIS. 27 | - `directlightsampling`: direct illumination using only Light Sampling. 28 | -------------------------------------------------------------------------------- /src/libhw/gpugeometry.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #include 20 | 21 | MTS_NAMESPACE_BEGIN 22 | 23 | GPUGeometry::GPUGeometry(const TriMesh *mesh) 24 | : m_mesh(mesh), m_shader(NULL) { 25 | } 26 | 27 | GPUGeometry::~GPUGeometry() { 28 | } 29 | 30 | std::string GPUGeometry::toString() const { 31 | std::ostringstream oss; 32 | oss << "GPUGeometry[" << endl 33 | << " mesh = " << indent(m_mesh->toString()) << endl 34 | << "]"; 35 | return oss.str(); 36 | } 37 | 38 | MTS_IMPLEMENT_CLASS(GPUGeometry, true, Object) 39 | MTS_NAMESPACE_END 40 | -------------------------------------------------------------------------------- /src/shapes/ply/io_operators.hpp: -------------------------------------------------------------------------------- 1 | #ifndef PLY_IO_OPERATORS_HPP_INCLUDED 2 | #define PLY_IO_OPERATORS_HPP_INCLUDED 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | namespace ply { 9 | 10 | namespace io_operators { 11 | 12 | inline std::istream& operator>>(std::istream& istream, int8 &value) 13 | { 14 | int16 tmp; 15 | if (istream >> tmp) { 16 | if (tmp <= std::numeric_limits::max()) { 17 | value = static_cast(tmp); 18 | } 19 | else { 20 | istream.setstate(std::ios_base::failbit); 21 | } 22 | } 23 | return istream; 24 | } 25 | 26 | inline std::istream& operator>>(std::istream& istream, uint8 &value) 27 | { 28 | uint16 tmp; 29 | if (istream >> tmp) { 30 | if (tmp <= std::numeric_limits::max()) { 31 | value = static_cast(tmp); 32 | } 33 | else { 34 | istream.setstate(std::ios_base::failbit); 35 | } 36 | } 37 | return istream; 38 | } 39 | 40 | inline std::ostream& operator<<(std::ostream& ostream, int8 value) 41 | { 42 | return ostream << static_cast(value); 43 | } 44 | 45 | inline std::ostream& operator<<(std::ostream& ostream, uint8 value) 46 | { 47 | return ostream << static_cast(value); 48 | } 49 | 50 | } // namespace io_operators 51 | 52 | } // namespace ply 53 | 54 | #endif // PLY_IO_OPERATORS_HPP_INCLUDED 55 | -------------------------------------------------------------------------------- /include/Eigen/SparseQR: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_SPARSEQR_MODULE_H 9 | #define EIGEN_SPARSEQR_MODULE_H 10 | 11 | #include "SparseCore" 12 | #include "OrderingMethods" 13 | #include "src/Core/util/DisableStupidWarnings.h" 14 | 15 | /** \defgroup SparseQR_Module SparseQR module 16 | * \brief Provides QR decomposition for sparse matrices 17 | * 18 | * This module provides a simplicial version of the left-looking Sparse QR decomposition. 19 | * The columns of the input matrix should be reordered to limit the fill-in during the 20 | * decomposition. Built-in methods (COLAMD, AMD) or external methods (METIS) can be used to this end. 21 | * See the \link OrderingMethods_Module OrderingMethods\endlink module for the list 22 | * of built-in and external ordering methods. 23 | * 24 | * \code 25 | * #include 26 | * \endcode 27 | * 28 | * 29 | */ 30 | 31 | #include "OrderingMethods" 32 | #include "src/SparseCore/SparseColEtree.h" 33 | #include "src/SparseQR/SparseQR.h" 34 | 35 | #include "src/Core/util/ReenableStupidWarnings.h" 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /src/mtsgui/resources/crop.svg: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /src/libhw/data/sh_background.frag: -------------------------------------------------------------------------------- 1 | /* 2 | This file is part of Mitsuba, a physically based rendering system. 3 | 4 | Copyright (c) 2007-2014 by Wenzel Jakob and others. 5 | 6 | Mitsuba is free software; you can redistribute it and/or modify 7 | it under the terms of the GNU General Public License Version 3 8 | as published by the Free Software Foundation. 9 | 10 | Mitsuba is distributed in the hope that it will be useful, 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | GNU General Public License for more details. 14 | 15 | You should have received a copy of the GNU General Public License 16 | along with this program. If not, see . 17 | */ 18 | 19 | #extension GL_EXT_gpu_shader4 : enable 20 | 21 | varying vec3 position; 22 | 23 | #if defined(DIRECTIONAL_CAMERA) 24 | uniform vec3 camDirection; 25 | #else 26 | uniform vec3 camPosition; 27 | #endif 28 | 29 | uniform float emitterScale; 30 | 31 | {{ SUPPLEMENTAL CODE }} 32 | 33 | void main() { 34 | vec3 result; 35 | 36 | #if !defined(DIRECTIONAL_CAMERA) 37 | result = BACKGROUND_EVAL_NAME(normalize(position - camPosition)); 38 | #else 39 | result = BACKGROUND_EVAL_NAME(camDirection); 40 | #endif 41 | 42 | gl_FragColor = vec4(result * emitterScale, 1.0); 43 | } 44 | -------------------------------------------------------------------------------- /include/Eigen/Cholesky: -------------------------------------------------------------------------------- 1 | // This file is part of Eigen, a lightweight C++ template library 2 | // for linear algebra. 3 | // 4 | // This Source Code Form is subject to the terms of the Mozilla 5 | // Public License v. 2.0. If a copy of the MPL was not distributed 6 | // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. 7 | 8 | #ifndef EIGEN_CHOLESKY_MODULE_H 9 | #define EIGEN_CHOLESKY_MODULE_H 10 | 11 | #include "Core" 12 | #include "Jacobi" 13 | 14 | #include "src/Core/util/DisableStupidWarnings.h" 15 | 16 | /** \defgroup Cholesky_Module Cholesky module 17 | * 18 | * 19 | * 20 | * This module provides two variants of the Cholesky decomposition for selfadjoint (hermitian) matrices. 21 | * Those decompositions are also accessible via the following methods: 22 | * - MatrixBase::llt() 23 | * - MatrixBase::ldlt() 24 | * - SelfAdjointView::llt() 25 | * - SelfAdjointView::ldlt() 26 | * 27 | * \code 28 | * #include 29 | * \endcode 30 | */ 31 | 32 | #include "src/Cholesky/LLT.h" 33 | #include "src/Cholesky/LDLT.h" 34 | #ifdef EIGEN_USE_LAPACKE 35 | #ifdef EIGEN_USE_MKL 36 | #include "mkl_lapacke.h" 37 | #else 38 | #include "src/misc/lapacke.h" 39 | #endif 40 | #include "src/Cholesky/LLT_LAPACKE.h" 41 | #endif 42 | 43 | #include "src/Core/util/ReenableStupidWarnings.h" 44 | 45 | #endif // EIGEN_CHOLESKY_MODULE_H 46 | /* vim: set filetype=cpp et sw=2 ts=2 ai: */ 47 | -------------------------------------------------------------------------------- /data/ior/Te.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for trigonal Te,ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.320000 12 | 330.613007 1.500000 13 | 354.229004 1.720000 14 | 381.477020 2.020000 15 | 403.975006 2.370000 16 | 413.266998 2.510000 17 | 416.599030 2.560000 18 | 430.037994 2.770000 19 | 442.785980 3.030000 20 | 444.373016 3.010000 21 | 459.696014 3.270000 22 | 476.114014 3.550000 23 | 476.846008 3.570000 24 | 489.266022 3.760000 25 | 498.512024 3.910000 26 | 507.906982 4.070000 27 | 516.583008 4.240000 28 | 517.877991 4.250000 29 | 528.024048 4.430000 30 | 538.809021 4.620000 31 | 549.799988 4.810000 32 | 561.249023 5.010000 33 | 563.545044 5.100000 34 | 573.450989 5.260000 35 | 599.226990 5.670000 36 | 612.851990 5.820000 37 | 619.900024 5.940000 38 | 627.429016 5.970000 39 | 642.382996 6.070000 40 | 658.416992 6.110000 41 | 674.904968 6.120000 42 | 688.778015 6.100000 43 | 692.625977 6.090000 44 | 710.895020 6.040000 45 | 730.583008 5.950000 46 | 750.939026 5.870000 47 | 772.943054 5.860000 48 | 774.875000 5.880000 49 | 796.275024 5.840000 50 | 820.516052 5.780000 51 | 846.858032 5.680000 52 | 874.330017 5.590000 53 | 885.570984 5.560000 54 | -------------------------------------------------------------------------------- /data/ior/Te.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for trigonal Te,ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.010000 12 | 330.613007 2.370000 13 | 354.229004 2.700000 14 | 381.477020 3.030000 15 | 403.975006 3.290000 16 | 413.266998 3.390000 17 | 416.599030 3.390000 18 | 430.037994 3.470000 19 | 442.785980 3.630000 20 | 444.373016 3.570000 21 | 459.696014 3.660000 22 | 476.114014 3.720000 23 | 476.846008 3.750000 24 | 489.266022 3.760000 25 | 498.512024 3.770000 26 | 507.906982 3.770000 27 | 516.583008 3.770000 28 | 517.877991 3.780000 29 | 528.024048 3.760000 30 | 538.809021 3.690000 31 | 549.799988 3.630000 32 | 561.249023 3.570000 33 | 563.545044 3.610000 34 | 573.450989 3.520000 35 | 599.226990 3.160000 36 | 612.851990 2.940000 37 | 619.900024 2.690000 38 | 627.429016 2.700000 39 | 642.382996 2.450000 40 | 658.416992 2.250000 41 | 674.904968 2.020000 42 | 688.778015 1.800000 43 | 692.625977 1.720000 44 | 710.895020 1.520000 45 | 730.583008 1.360000 46 | 750.939026 1.260000 47 | 772.943054 1.170000 48 | 774.875000 1.150000 49 | 796.275024 1.060000 50 | 820.516052 0.895000 51 | 846.858032 0.760000 52 | 874.330017 0.659000 53 | 885.570984 0.630000 54 | -------------------------------------------------------------------------------- /src/librender/SConscript: -------------------------------------------------------------------------------- 1 | Import('env', 'sys', 'os') 2 | 3 | renderEnv = env.Clone() 4 | renderEnv.Append(CPPDEFINES = [['MTS_BUILD_MODULE', 'MTS_MODULE_RENDER']] ) 5 | if renderEnv.has_key('XERCESINCLUDE'): 6 | renderEnv.Prepend(CPPPATH=renderEnv['XERCESINCLUDE']) 7 | if renderEnv.has_key('XERCESLIBDIR'): 8 | renderEnv.Prepend(LIBPATH=renderEnv['XERCESLIBDIR']) 9 | if renderEnv.has_key('XERCESLIB'): 10 | renderEnv.Prepend(LIBS=renderEnv['XERCESLIB']) 11 | 12 | librender = renderEnv.SharedLibrary('mitsuba-render', [ 13 | 'bsdf.cpp', 'film.cpp', 'integrator.cpp', 'emitter.cpp', 'sensor.cpp', 14 | 'skdtree.cpp', 'medium.cpp', 'renderjob.cpp', 'imageproc.cpp', 15 | 'rectwu.cpp', 'renderproc.cpp', 'imageblock.cpp', 'particleproc.cpp', 16 | 'renderqueue.cpp', 'scene.cpp', 'subsurface.cpp', 'texture.cpp', 17 | 'shape.cpp', 'trimesh.cpp', 'sampler.cpp', 'util.cpp', 'irrcache.cpp', 18 | 'testcase.cpp', 'photonmap.cpp', 'gatherproc.cpp', 'volume.cpp', 19 | 'vpl.cpp', 'shader.cpp', 'scenehandler.cpp', 'intersection.cpp', 20 | 'common.cpp', 'phase.cpp', 'noise.cpp', 'photon.cpp' 21 | ]) 22 | 23 | if sys.platform == "darwin": 24 | renderEnv.AddPostAction(librender, 'install_name_tool -id @rpath/libmitsuba-render.dylib $TARGET') 25 | 26 | env.Append(LIBS=['mitsuba-render']) 27 | env.Append(LIBPATH=[os.path.join(env['BUILDDIR'], 'librender')]) 28 | -------------------------------------------------------------------------------- /data/ior/Te-e.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for trigonal Te, extraordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.640000 12 | 330.613007 3.060000 13 | 354.229004 3.440000 14 | 381.477020 3.780000 15 | 403.975006 3.960000 16 | 413.266998 4.160000 17 | 416.599030 4.150000 18 | 430.037994 4.270000 19 | 442.785980 4.420000 20 | 444.373016 4.390000 21 | 459.696014 4.520000 22 | 476.114014 4.710000 23 | 476.846008 4.770000 24 | 489.266022 4.850000 25 | 498.512024 4.930000 26 | 507.906982 5.010000 27 | 516.583008 5.080000 28 | 517.877991 5.080000 29 | 528.024048 5.160000 30 | 538.809021 5.200000 31 | 549.799988 5.210000 32 | 561.249023 5.200000 33 | 563.545044 5.160000 34 | 573.450989 5.160000 35 | 599.226990 4.920000 36 | 612.851990 4.770000 37 | 619.900024 4.670000 38 | 627.429016 4.600000 39 | 642.382996 4.360000 40 | 658.416992 4.100000 41 | 674.904968 3.860000 42 | 688.778015 3.700000 43 | 692.625977 3.650000 44 | 710.895020 3.470000 45 | 730.583008 3.180000 46 | 750.939026 3.030000 47 | 772.943054 2.930000 48 | 774.875000 2.910000 49 | 796.275024 2.890000 50 | 820.516052 2.860000 51 | 846.858032 2.800000 52 | 874.330017 2.560000 53 | 885.570984 2.460000 54 | -------------------------------------------------------------------------------- /data/ior/Te_palik.eta.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for trigonal Te,ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 1.320000 12 | 330.613007 1.500000 13 | 354.229004 1.720000 14 | 381.477020 2.020000 15 | 403.975006 2.370000 16 | 413.266998 2.510000 17 | 416.599030 2.560000 18 | 430.037994 2.770000 19 | 442.785980 3.030000 20 | 444.373016 3.010000 21 | 459.696014 3.270000 22 | 476.114014 3.550000 23 | 476.846008 3.570000 24 | 489.266022 3.760000 25 | 498.512024 3.910000 26 | 507.906982 4.070000 27 | 516.583008 4.240000 28 | 517.877991 4.250000 29 | 528.024048 4.430000 30 | 538.809021 4.620000 31 | 549.799988 4.810000 32 | 561.249023 5.010000 33 | 563.545044 5.100000 34 | 573.450989 5.260000 35 | 599.226990 5.670000 36 | 612.851990 5.820000 37 | 619.900024 5.940000 38 | 627.429016 5.970000 39 | 642.382996 6.070000 40 | 658.416992 6.110000 41 | 674.904968 6.120000 42 | 688.778015 6.100000 43 | 692.625977 6.090000 44 | 710.895020 6.040000 45 | 730.583008 5.950000 46 | 750.939026 5.870000 47 | 772.943054 5.860000 48 | 774.875000 5.880000 49 | 796.275024 5.840000 50 | 820.516052 5.780000 51 | 846.858032 5.680000 52 | 874.330017 5.590000 53 | 885.570984 5.560000 54 | -------------------------------------------------------------------------------- /data/ior/Te_palik.k.spd: -------------------------------------------------------------------------------- 1 | # data from www.luxpop.com database 2 | # ; Optical constants for trigonal Te,ordinary ray 3 | # ; 4 | # ; taken from: 5 | # ; 6 | # ; 'Handbook of Optical Constants of Solids II', Ed. by Edward D. Palik, 7 | # ; Academic Press, Inc., 1991. 8 | # ; 9 | # ; Lambda (A) n k 10 | # ;----------------------------------------- 11 | 309.950012 2.010000 12 | 330.613007 2.370000 13 | 354.229004 2.700000 14 | 381.477020 3.030000 15 | 403.975006 3.290000 16 | 413.266998 3.390000 17 | 416.599030 3.390000 18 | 430.037994 3.470000 19 | 442.785980 3.630000 20 | 444.373016 3.570000 21 | 459.696014 3.660000 22 | 476.114014 3.720000 23 | 476.846008 3.750000 24 | 489.266022 3.760000 25 | 498.512024 3.770000 26 | 507.906982 3.770000 27 | 516.583008 3.770000 28 | 517.877991 3.780000 29 | 528.024048 3.760000 30 | 538.809021 3.690000 31 | 549.799988 3.630000 32 | 561.249023 3.570000 33 | 563.545044 3.610000 34 | 573.450989 3.520000 35 | 599.226990 3.160000 36 | 612.851990 2.940000 37 | 619.900024 2.690000 38 | 627.429016 2.700000 39 | 642.382996 2.450000 40 | 658.416992 2.250000 41 | 674.904968 2.020000 42 | 688.778015 1.800000 43 | 692.625977 1.720000 44 | 710.895020 1.520000 45 | 730.583008 1.360000 46 | 750.939026 1.260000 47 | 772.943054 1.170000 48 | 774.875000 1.150000 49 | 796.275024 1.060000 50 | 820.516052 0.895000 51 | 846.858032 0.760000 52 | 874.330017 0.659000 53 | 885.570984 0.630000 54 | --------------------------------------------------------------------------------