Mitsuba is an extensible rendering framework written in portable C++. It implements unbiased as well as biased techniques and contains heavy optimizations targeted towards current CPU architectures.

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

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

 

Built upon a scalable parallel computation layer, Mitsuba can transparently distribute work over a cluster without the need for a shared filesystem. Most implemented algorithms can be run in parallel over massive numbers of networked cores.

It is possible to organize machines into hierarchies, which is useful when working remotely: by designating a central scheduling node at work, you can communicate with a single machine, which will then spread out the work within its fast local network.

 

Mitsuba supports the most commonly used scattering models: Lambertian surfaces, ideal dielectrics & mirrors as well as the the Phong & anisotropic Ward BRDFs. A range of microfacet models are also available, including rough glass, plastic & metal. Subsurface scattering can either be simulated using a BSSRDF approach, or more rigorously using volumetric light transport.

For volumes, the supported scattering models are isotropic, Henyey-Greenstein, Kajiya-Kay fiber scattering and micro-flakes.

 
 

A wide range of rendering techniques are available, including:

  • Direct illumination
  • Monte-Carlo path tracer which solves the full Radiative Transfer Equation
  • Photon mapper with irradiance gradients
  • Adjoint particle tracer
  • Instant Radiosity (hardware-accelerated)
  • Progressive Photon Mapper
  • Stochastic Progressive Photon Mapper
  • Veach-style Bidirectional Path Tracer
  • Kelemen-style Metropolis Light Transport
  • Veach-style Metropolis Light Transport

 
Mitsuba can compute global illumination solutions in scenes containing large isotropic or anisotropic participating media. The underlying volumes can be represented as sparse voxel octrees or as hierarchical grids, where grid cells are directly mapped from files into memory.
 
Mitsuba internally uses a O(n log n) SAH kd-tree compiler with support for primitive clipping (aka. perfect splits). The ray tracing core is built on Havran's fast traversal algorithm. On Intel platforms, it is possible to trace coherent rays packets using SSE2. Mitsuba supports analytic shapes such as cylinders and spheres and makes use of additional SSE2 accelerations when working with triangle meshes, which allows it to intersect up to 4 triangles at a time.
 
Data exchange with the major modeling packages is supported using the COLLADA file format. Mitsuba can read DAE files and convert them into its native XML-based file format. In the future, additional integration is planned, e.g. plugins for Maya and 3ds max.
 
Other features are:
  • Spectral rendering, black body radiation and dispersion
  • Customizable image reconstruction filters
  • High dynamic-range input/output using the OpenEXR format
  • Deterministic Quasi-Monte Carlo sampling
  • Adaptive integration
  • Depth of field