MRF stands for Malia Rendering Framework, an open source library for predictive, physically-realistic rendering. It comes with several applications. Spectral rendering can quickly become time-consuming when the number of spectral channels increases, which is why MRF is geared toward GPU acceleration.
There are many renderers out there, so why the need of another one? One reason is that renderers that combine spectral functionalities and GPU acceleration are not commonplace. Notable exceptions include Maxwell renderer and Iray; however these software are neither free nor open source.
The main benefit of MRF is thus to provide an open source solution to fast, GPU-friendly spectral rendering. It is intended for students, researchers and experimenters that wish to explore complex light-material interaction scenarios. Applications that come with MRF should help speed up the prototyping and development of new ideas.
We provide a path tracer based on MRF routines, and decline it in two versions: a spectral and a RGB renderer. Both are currently based on an NVidia OptiX backend, and may be run in interactive mode using progressive rendering. For more information, please consult the Malia Renderer documentation.
Using MRF, you can directly export and render your scenes from Blender. This permits the quick specification of a scene and enables easy camera setup. For more information, visit the Blender integration page https://pacanows.gitlabpages.inria.fr/MRF/blender_integration.md.html.
One advantage of the Malia Renderer is to output spectral images in high dynamic range (HDR). Since there is no standard application to open such images, we provide an open-source spectral image viewer built on MRF, simply called Spectral Viewer. Besides spectral HDR images, it permits to open a host of image formats, including
.spd files (spectrum distributions) and RGB images (both high and low dynamic range). The project page is located here: https://adufay.gitlabpages.inria.fr/SpectralViewer/
RGB To Spectral
Most assets used in 3D scenes are defined in RGB; hence they must be somehow converted to spectral representations in order to be used in spectral rendering. The RGB2SPEC routine precisely does that, for either emittance or reflectance spectra. More complex spectral dependencies can be achieved by using custom light source or material models, which are used in place of existing assets via dedicated python scripts.