Mitsuba
Mitsuba is a GPLv3 research-oriented rendering system in the style of physically-based rendering technology. It is written in C++, implements unbiased as well as biased techniques, and contains heavy optimizations targeted towards current CPU architectures.
It is experimental by its own mission statement, so it is not a rendering engine for everyday use without testing, but its code has been used as a basis for some very important engines, and the render results speak for themselves.
Strengths [Weaknesses]
Features
Mitsuba has not only all the usual features of modern render engines, but it maintains a lead ahead of others due to its commitment to experimentation. It features important advances in ambient occlusion, direct illumination, photon mapping, particle tracing, instant radiosity, and much more.
Physically Based
Physically based rendering is a popular trend, so Mitsuba is not unique in taking this approach, but its results are very good. Its code has been used and referenced by very accomplished rendering systems, making it interesting to use at least in render tests.
Weaknesses [Strengths]
Experimental
If you are looking for a rendering engine to adopt for day-to-day work, this may not be the best choice, given that it is in frequent flux. According to its own mission statement, it is an academic and experimental project.
Install
Installing Mitsuba broadly requires, like other renderers, the installation of the Mitsuba base package, and then the plugin that will make it useful in your application of choice (probably blender).
To get the basic Mitsuba package installed, first install its dependencies; all of them are available from http://slackbuilds.org.
Once the dependencies are installed, install Mitsuba from http://slackbuilds.org.
OpenGL (libGLEW)
Mitsuba requires libglewmx
. While Slackware ships with GLEW
, it has not been compiled to include libglewmx
(Slackermedia sent a patch to Slackware, so libglewmx
will be included in the next version), so you will have to re-compile and re-install it manually.
To do this, get the glew
SlackBuild from your install disc (it is in the x
series) or download it from your nearest Slackware mirror (for example, ftp://ftp.osuosl.org/pub/slackware/slackware-14.1/source/x). Download the glew
source code.
Change the make
line in the SlackBuild to:
make install.all GLEW_DEST=$PKG/usr
Remove the old version of glew
and install the new version with upgradepkg
:
# upgradepkg --install-new \ --reinstall /tmp/glew*tgz
Install only the same version of glew
as the version that Slackware ships with. If you impulsively decide to upgrade to later GLEW code, then other packages using libglew
could break, since they have been built to look for a specific version and, after your new install, they will not be able to find them.
Sometimes repairing a missing library is as easy as lying to your system:
ln -s /usr/lib64/libGLEW.so.1.12 /usr/lib64/libGLEW.so.1.9
This often fixes the problem, but theoretically it can cause less obvious problems in the application wanting the older version of the library, especially if something important has changed between the old version and the new version, so it's best to avoid situations like this.
Confirm that libglewmx
support has been built. If nothing is returned, then glewmx
is still missing. Otherwise, the install was a success:
$ grep glewmx /var/log/packages/glew-X.Y.Z-x86_64 usr/lib64/pkgconfig/glewmx.pc
Once all dependencies and the glew
patch has been made, install Mitsuba.
Blender
If you intend to use Mitsuba with Blender, install the Mitsuba-blender package from SlackBuilds.org
Usage
Mitsuba has several entry points. It can be launched as a shell application:
$ mitsuba /path/to/file.xml -o render.exr
It has a stand-alone GUI frontend, which you can launch from the K Menu or from a shell:
$ mtsgui&
And finally, the Blender plugin, which can be activated and used the same as any other Blender plugin:
- Activate the Blender plugin in the User Preferences panel → Render. (There is no need to install the plugin as you might other Blender addons, because the LuxRender installer from SlackBuilds has already installed it for you.)
- Make it your active renderer in the Info panel