GitHub - mitsuba-renderer/mitsuba3: Mitsuba 3: A Retargetable Forward and Inverse Renderer (original) (raw)

Mitsuba banner

Mitsuba Renderer 3

Documentation Tutorial videos Linux MacOS Windows PyPI
docs vids rgl-ci rgl-ci rgl-ci pypi

Introduction

Mitsuba 3 is a research-oriented rendering system for forward and inverse light transport simulation developed at EPFL in Switzerland. It consists of a core library and a set of plugins that implement functionality ranging from materials and light sources to complete rendering algorithms.

Mitsuba 3 is retargetable: this means that the underlying implementations and data structures can transform to accomplish various different tasks. For example, the same code can simulate both scalar (classic one-ray-at-a-time) RGB transport or differential spectral transport on the GPU. This all builds onDr.Jit, a specialized just-in-time(JIT) compiler developed specifically for this project.

Main Features

Tutorial videos, documentation

We've recorded several YouTube videos that provide a gentle introduction Mitsuba 3 and Dr.Jit. Beyond this you can find complete Juypter notebooks covering a variety of applications, how-to guides, and reference documentation on readthedocs.

Installation

We provide pre-compiled binary wheels via PyPI. Installing Mitsuba this way is as simple as running

on the command line. The Python package includes thirteen variants by default:

The scalar variants perform one-ray-at-a-time simulations, while the LLVM and CUDA variants can be used for inverse rendering on the CPU or GPU respectively. To access additional variants, you will need to compile a custom version of Dr.Jit using CMake. Please see thedocumentationfor details on this.

Requirements

Usage

Here is a simple "Hello World" example that shows how simple it is to render a scene using Mitsuba 3 from Python:

Import the library using the alias "mi"

import mitsuba as mi

Set the variant of the renderer

mi.set_variant('scalar_rgb')

Load a scene

scene = mi.load_dict(mi.cornell_box())

Render the scene

img = mi.render(scene)

Write the rendered image to an EXR file

mi.Bitmap(img).write('cbox.exr')

Tutorials and example notebooks covering a variety of applications can be found in the documentation.

About

This project was created by Wenzel Jakob. Significant features and/or improvements to the code were contributed bySébastien Speierer,Nicolas Roussel,Merlin Nimier-David,Delio Vicini,Tizian Zeltner,Baptiste Nicolet,Miguel Crespo,Vincent Leroy, andZiyi Zhang.

When using Mitsuba 3 in academic projects, please cite:

@software{Mitsuba3, title = {Mitsuba 3 renderer}, author = {Wenzel Jakob and Sébastien Speierer and Nicolas Roussel and Merlin Nimier-David and Delio Vicini and Tizian Zeltner and Baptiste Nicolet and Miguel Crespo and Vincent Leroy and Ziyi Zhang}, note = {https://mitsuba-renderer.org}, version = {3.1.1}, year = 2022 }