• MRF - Main Page
  • Malia Renderer
  • Blender Bridge
  • Spectral Viewer
  • MRF - Scene format
  • Gallery
  • RGB To Spectral
  • For Developers
  • Malia
    ![](./images/logo_malia3.png width="100px")alia is an Open-Source Monte-Carlo-based Spectral Rendering Engine that aims at producing spectral images as predictable as possible. Malia is measurement data (Light, Source, BRDF, Index of Refraction) oriented although one may also use it to test new rendering techniques and methods. Malia 1.0.0 main features are: - Interactive mode for fast preview or offline mode for batch rendering - Support for measured and analytical materials (see Section [Materials]) - Separate applications for Spectral (`malia`) and RGB (`malia_rgb`) versions - Modular Software Architecture for multiple Rendering backends architecture (e.g., OptiX, CPU, Embree...) Malia is part of the Malia Rendering Framework aka [MRF](../../main.md.html) and as such, uses the [MRF scene format](../../scene_format.md.html). Scenes can be generated using a Blender plugin, as presented in the [Blender Bridge](../../blender_integration.md.html) section. # Download Pre-compiled Binaries At the moment Malia supports only NVIDIA GPU through the OptiX backend. Pre-compiled binaries are standalone executable which do not require any installation. These pre-compiled binaries provide Malia as well as some tools such as the [Blender Bridge](), [rgb2spec]() and [Malia Image Converter](). Some demo scenes are also provided (the in the scenes/ directory) more assets can be found by cloning the MRF Assets repository. To use, do the following: 1. Download the appropriate archive for your GPU 2. Extract it 3. Use it directly (double-click on `malia` or `malia_rgb`)! --> If it doesn't work check that your NVIDIA driver version are up-to-date (see sec. [Minimal NVIDIA Drivers Versions Required] ) Releases ------------------------------------ Stable releases can be downloaded from our Gitlab repository: We also provide a snap package: Get it from the Snap Store Continuous Builds from Master Branch ------------------------------------ We also provide a pre-compiled binary from our continuous integration builds: | NVIDIA Card | Windows | Linux | | ------------ | ----------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | >= Maxwell | [Programs](https://gitlab.inria.fr/pacanows/MRF/-/jobs/artifacts/master/raw/Malia-1.0.0-win64.7z?job=malia_win10) | [AppImage spectral](https://gitlab.inria.fr/pacanows/MRF/-/jobs/artifacts/master/raw/malia.AppImage?job=malia_ubuntu_18_04) / [AppImage RGB](https://gitlab.inria.fr/pacanows/MRF/-/jobs/artifacts/master/raw/malia_rgb.AppImage?job=malia_ubuntu_18_04) | !!! Warning The continuous builds may be unstable. Minimal NVIDIA Drivers Versions Required ---------------------------------------- Assuming that you have downloaded the correct version of Malia below are (according to the different Release Notes from NVIDIA) the minimal driver versions required for each family of GPU. If your GPU Architecture is more recent than Maxwell (i.e., Volta or Turing or Ampere) use the latest Malia builds with OptiX 6.5 | KEPLER with OptiX 5.1.0 | MAXWELL with OptiX 6.0.0 | Maxwell with OptiX 6.5.0 | Maxwell with OptiX 7.0.0 ------------------------------------------|-------------------------|--------------------------|--------------------------|-------------------------- ![](./images/windows_logo.png width=30px) | >= 396.65 | >= 418.81 | >= 436.02 | NOT SUPPORTED | ![](./images/linux_logo.png width=30px) | >= 390.42 | >= 418.30 | >= 435.17 | NOT SUPPORTED | ![](./images/apple.svg width=30px) | macOS >= 10.9 | NOT SUPPORTED | NOT SUPPORTED | NOT SUPPORTED | Assets ------ Additional assets are available on: * [The MRF assets](https://gitlab.inria.fr/adufay/mrf_assets/-/tree/master) repository: ``` shell git clone https://gitlab.inria.fr/adufay/mrf_assets.git ``` Or by direct download: [MRF assets ZIP](https://gitlab.inria.fr/adufay/mrf_assets/-/archive/master/mrf_assets-master.zip) * [The Spectral Assets](https://gitlab.inria.fr/dmurray/mrf_envmap_assets) repository # Running Malia * Section Basic Usage * Section Advanced Usage * Section Hacking CUDA Kernels Overview of the Malia Renderer pipeline for offline and interactive mode: ![](images/malia_overview.png) Basic Usage ----------- ![Figure [malia_interactive]: Malia running interactively](./images/malia_ui_3.png width="300px" border="1") To run malia and malia_rgb with a scene, several ways are available: - by dropping an scene file (.msf) on the desired application (`malia` or `malia_rgb`) executable file. This option will launch the application in interactive mode (cf. Figure [malia_interactive]). - by double-clicking on `malia` (or `malia_rgb`) executable file. The application will run in interactive mode with a demonstration scene. --> You can load a scene later by dropping an MSF file in the application window or by using the dedicated button. - with a shell (UNIX) or from the windows command line (cmd.exe). See below for the different command line options. This way is recommended as it provide full control other the rendering parameters. ## Advanced Usage The full list of available command line options is available with the (-h) option. - Common Options subsection - Spectral Options subsection - Sampling Options subsection - Random Number Generator (RNG) Options subsection - Camera Options subsection - Debugging and fine tuning Options subsection ### Common Options Option Name | Arguments | Explanations ------------|----------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -h | None | Prints a help message, with all the command-line options. -scene | A Path to a .msf file| Specifies the scene file. Note: (1) if empty or not used, a default scene is used in offline rendering. (2) In interactive mode you will have opportunity to load a scene file. -cam | A Path to a .mcf file| Specifies the camera file. Note: (1) if the file contains many cameras, an image will be generated for each camera view point. (2) If no camera file is specified Malia will try to locate one using the same filename as the scene file. -o | A Path to a filename | Specifies a path to a filename where the image will be saved. By default, malia saves images in spectral format (.hdr + .raw) whereas malia_rgb uses EXR format. -i | None | Starts malia renderer in interactive mode. -nogui | None | Starts malia renderer in interactive mode without any GUI. ### Spectral Options The options listed below are NOT available for the **malia_rgb** renderer Option Name | Arguments | Explanations ---------------------|-----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------- -wr | 3 positive integer {uint}: start:end:step | Specifies the range of wavelengths (in nanometres) that are uniformly sampled from start to end (both included) by step. -wavelengths | A list of positive integer {uint} DISABLED | Specifies the list of wavelengths (in manometers) sampled. DISABLED ! -wpp | A postive integer {uint} | Number of wavelengths sampled per pass of rendering. Default=1. A Value > 1 means spectral multiplexing. -continuous_sampling | Use continuous sampling in monochromatic mode | Default monochromatic mode use fixed, discrete wavelength sampling (specified by -wr), with possible bias due to interpolating the assets. Using continuous sampling ensure an unbiased result. CAUTION: rendering may be slow for scene with textures and environment maps. ### Sampling Options Option Name | Arguments | Explanations ---------------|-------------------------------------|-------------------------------------------------------------------------------- -samples | A positive integer {uint} | Specifies the number of samples per pixel (SPP). Default value is 100. -mpl | A positive integer {uint} | Specifies the maximum Level of recursion of a path. Default value is 10. -next_event | A string equal to "one" or "none" | Activate the Multiple Importance Sampling (M.I.S.). Default value is "one" -spf | A positive integer {uint} | Specifies the number of samples per frame. Only useful interactive mode. -envmap_is | A string to "on" or "off" | Activates or not environment map importance sampling. Default value is "on". ### Random Number Generator (RNG) Options Option Name | Arguments | Explanations -------------|--------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------ -rng | A string equal to "optix", "sobol" or "halton" | Specifies the type of random number generator. Default is halton. WARNING choosing halton limits the paths length to 10 bounces !! -rng_seed | A positive integer {uint} | Specified the seed for RNG (useful when debugging) but does not work with OptiX RNG ### Camera Options Option Name | Arguments | Explanations -------------|--------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------- -width | A positive integer | Specifies the width of the generated image and overrides the value in the .mcf file. -height | A positive integer | Specifies the height of the generated image and overrides the value in the .mcf file. -numcam | A positive integer | Specifies the number N_{cam} of cameras that will be rendered from. (by default all) -startingcam | A positive integer | Starts the rendering from the given camera number (by default 1) assuming that cameras number are stored between $[0,N_{cam}-1]$ in the associated .mcf file ### Debugging and fine tuning Options Option Name | Arguments | Explanations ------------|----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -logging | A string or One positive integer | Specifies the verbosity of the renderer and much information will be output on the console window. Possible values are : No_Log (0) Fatal (1) Warning (2) Info (3) Trace (4) Debug (5). -logfile | A string | Specifies the path to a log file and appends the SPP and rendering time at the end of this file. -max_time | A positive integer | Specifies the maximum Rendering time in seconds. A value of -1 deactivates this termination criterion, default value is 3600 (one hour). ## Hacking CUDA Kernels When downloading the archive (file .tar.gz or .7z) for Malia pre-compiled binaries, you have access to the source code of all CUDA kernels. Inside the `cuda/` subdirectory you will find two subdirecties: - `materials/` which contains all BRDFs (shaders) - `intersection_programs/` : which contains CUDA kernels related to the ray-geometry intersections. It is completely possible to change their behavior because they are dynamically recompiled (thanks to the NVIDIA Runtime Compile library) every time Malia starts. The only limitations is that you cannot change the layout and type of data the shaders are expecting. It is even possible to change the file `optixPathTracer.cu` (located in the same directory as `malia`) if you want to change the core algorithm of the Path-Tracer. # Compilation from Sources See the dedicated section. # Known Limitations The Malia Renderer lacks a number of features that we wish to include in future versions: - No depth of field or motion blur: currently, we use a simple pinhole camera; - No complex light transport algorithm: only path tracing with next event estimation for now; - No fluorescence nor polarization: a fully predictive renderer should take these aspects into account.