(insert navigation_bar.md.html here)
Welcome to The Malia Rendering Framework!
# Presentation MRF stands for Malia Rendering Framework, an open source library for predictive, physically-realistic rendering. It comes with several [applications](./main.md.html#applications), including a spectral path tracer, RGB-to-spectral conversion routines, a Blender Bridge and a Spectral Viewer. 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.

Four spheres rendered using MRF. From left to right: rough conductor, mirror, dielectric, and measured material.
The rightmost sphere exhibits subtle spectral variations that can be reproduced accurately only with a spectral renderer.
For more images go to the gallery. 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. In the remainder of this documentation, we detail how to install MRF, present available applications, list library features, explain the scene file format and discuss current limitations of the framework. For technical details, one may read the developer documentation and/or browse the doxygen documentation. The gitlab project of MRF is available here: [https://gitlab.com/mrf-devteam/mrf](https://gitlab.com/mrf-devteam/mrf) # Applications
## Malia Renderer 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 page.
## Blender Bridge Using MRF, you can directly export and render your scenes from Blender. This permits the quick specification of a scene a nd enables easy camera setup. For more information, visit the [Blender integration page]("./blender_integration.md.html").
## Spectral Viewer One advantage of the Malia Renderer is to ouptut spectral images in high dynamic range (HDR). Since there is no standard application to open such images, we provide an opensource 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: Spectral Viewer.
## RGB2SPEC 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 spectal 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, as detailed on the [RGB2SPEC page]("./apps/rgb2spec/rgb2spec.md.html").
# Typical Workflow ************************************************************** * .---------. .-----. .-------. .-----------------. * * | Blender +-+->| MRF +-+->| Malia +-+->| Spectral Viewer | * * '---------' '-----' '-------' '-----------------' * ************************************************************** A typical worlflow using these applications starts by designing a scene in Blender and use the [Blender Bridge](./blender_integration.md.html) to convert it to a MRF-compliant scene. In this process, RGB-colored assets are converted to spectral representations using the [RGB2SPEC](./apps/rgb2spec/rgb2spec.md.html#rgbtospectral) routine, and the scene is sent to the [Malia Renderer]("./apps/malia/main.md.html") to produce a spectral image. The [Spectral Viewer](https://adufay.gitlabpages.inria.fr/SpectralViewer/) is finally employed to visualize the resulting spectral image and optionally convert it to a RGB image. # Library features The MRF library provides a number of functionalities that are required in the implementation of a spectral renderer such as: - Radiometry and colorimetry: conversion between tristimulus and spectral data (HDR & LDR) - Sampling routines: low-discrepancy samplers (Halton, Sobol) - Material & light sources: evaluation, sampling, PDF, sub-routines (ex: Fresnel) - File IO for various formats: OBJ, PLY, ALTA, EXR, etc It also provides a scene format that may be defined by hand or exported from Blender. ## Scene format The Malia Scene Format (MSF) is based on XML and handles assets that include: - Geometry: meshes, mesh instances, quads, shadow catchers; - Materials: Lambertian, dielectric, conductor, rough interfaces, measured data; - Light sources: point and directional lights, environment maps, quad and spherical sources. For more details, consult the MRF scene format documentation.

A MSF scene containting multiple meshes, a shadow catcher and an environment map for lighting.
# Contributors + Arthur Dufay + Romain Pacanowski + David Murray + Alban Fichet + Simon Lucas + Pascal Barla ## BibTeX Below is the BibTeX entry for MRF that you can use to cite MRF in your academis or industrial publications ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ tex @MISC{mrfweb, authors = {Arthur Dufay and David Murray, and Romain Pacanowski, and others}, title = {The Malia Rendering Framework }, howpublished = {https://gitlab.com/mrf-devteam/mrf/main.md.html}, year = {2021} } ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~