mental ray Technical Specifications

mental ray is founded on a network transparent scene and rendering database. Scene data can be provided as files using the .mi scene description language, in either ASCII or mixed ASCII/binary form. The supported geometric primitives include triangle and arbitrary polygon meshes, trimmed free-form surfaces, hierarchical subdivision surfaces and fast subdivision meshes, specialized hair geometry, and particle data or point clouds. User-supplied functions, typically written in MetaSL® or C/C++ programming language, allow to procedurally create textures, materials, new lighting models, volume and lens effects, as well as geometry and displacement. They can also be used to control global illumination simulation through photon shaders and the Photon Map™. The free-form surface processing and approximation capabilities, and the mathematical accuracy of mental ray are superior to those of competing rendering software products.


mental ray comes with a number of standard shader packages, many of them in source code. They range from shaders for basic illumination tasks to comprehensive and optimized packages for common applications, like shaders for typical materials used in architecture and design, subsurface scattering and car paint shaders, as well as physical sun and sky lighting.

The following is a summary of key technical features of mental ray.

Please refer to the mental ray handbook series for detailed information.

1. Rendering


1.1 Algorithms

  • ray tracing architecture for automatic, accurate, and general simulation of reflections, refractions, shadows, and complex illumination
  • rasterizer for fast, high quality rendering of directly visible objects, with efficient support for motion blur and displacement mapping, and with separate control of shading quality and visibility anti-aliasing
  • scanline rendering method for fast rendering of scenes in low to medium complexity

  • physically correct simulation of global illumination

    • photon mapping combines forward and backward ray tracing and simulates all possible light paths, without the need to prepare and combine each effect separately
    • final gathering for efficient and easy to use computation of one or more diffuse indirect light bounces, optionally combined with photon mapping
    • computation of caustics using dedicated photon maps (light patterns caused by reflected or refracted light)
    • interaction with participating media: volume caustics and multiple volume scattering in diffuse media like fog (e.g. light beams in fog)


  • use of graphics hardware (GPUs) for high quality rendering, with support for:

    • Cg shaders
    • Phenomena
    • order independent transparency
    • motion blur


  • anti-aliasing

    • strictly deterministic low-discrepancy sampling ensures faster convergence to the correct solution. Algorithms are completely deterministic (no animation flickering due to randomness; re-rendering a frame produces exactly the same result).
    • automatic anti-aliasing of all features such as transparency, refractions, reflections, shadows, area lights, textures, global illumination, caustics, volume caustics, and multiple volume scattering
    • adaptive recursive oversampling and under-sampling (fewer than one sample per pixel taken initially, automatically refined where necessary)
    • strictly deterministic low-discrepancy jittering to avoid "stair casing" at sharp edges


  • motion blur, depth of field

    • object motion blur by motion transformation matrices
    • motion deformations by per-vertex motion vectors
    • multi-segment vertex motion blur for curved motion blur
    • full motion blur of reflections, refractions, light sources, shadows, global illumination, and caustics
    • depth of field implemented in lens shaders
    • motion and depth output for post-processing motion blur and depth of field


  • light mapping: baking of illumination into texture maps, per vertex and per texel
  • multipass rendering for compositing of layers with sub-pixel accuracy, collecting sample data from multiple render passes, including user-defined data. Pass data can be merged into the final image with a custom merging function.


1.2 Shading and Color

  • Programmable shaders

    • shading language: C and C++; any existing development environments (compilers and debuggers) including their optimization features can be used
    • shaders have full access to the scene graph, and may extend the scene graph at runtime (for example, to build procedural geometry or perform on-demand creation of geometry)


  • shade trees and shader graphs: shaders can be linked into graphs such that one or more outputs of a shader feeds one or more inputs of another shader
  • encapsulated cooperating shader graphs (Phenomena) that package one or more shader graphs and scene insertion points into an easy-to-use "black box" with simple external parameters, hiding internal complexity without the need to write a program or plug-in
  • shader types: material, texture, light, volume, shadow, atmosphere, lens, environment, photon, photon emitter, displacement, output, contour, geometry, inheritance, and state shader
  • volume shaders implement non-geometric volume effects such as fire or smoke, in both scanline and full ray tracing modes
  • ray marching for volume shading (sampling space iteratively or recursively, for example to render visible light cones)
  • arbitrarily many and arbitrarily large frame buffers, stored on disk during rendering to conserve memory
  • arbitrary frame buffer types, including color, depth, motion, normals, labels, and coverage
  • HDRI (high dynamic range imaging) using RGBE, float, and half float data types
  • incremental image preview during rendering
  • more than 30 image types for textures and output, including OpenEXR
  • full support for IES and Eulumdat light profile data with accurate illumination estimation (light profiles for commercial light fixtures are available from the light vendors to describe accurate lighting parameters of their products.)
  • support for color spaces with higher perceptual precision than RGB
  • support for arbitrary BRDFs
  • spectral rendering, with arbitrarily many samples per color spectrum
  • contour rendering for cartoon animation, with fine control over contour placement, overlaps, width, color, transparency, and other user-definable criteria

  • shaders:

    • extensive base shader library
    • subsurface scattering
    • glossy reflections & refractions
    • metallic car paint
    • physically correct shaders
    • spectral rendering shaders
    • contour lines
    • depth of field
    • 2D motion blur
    • Cg shaders for hardware accelerated rendering


1.3 Shadows

  • ray traced shadows for correct computation of shadows, including transparency
  • shadow maps for fast shadowing where the accuracy of ray traced shadows and area light sources is not required
  • detail shadow maps for fast, high quality shadowing of hair, partial shadows, and transparent shadows
  • area lights create shadows with variable and accurate softness: spheres, disks, rectangles, cylinders (fluorescent lights), and arbitrarily shaped geometric light objects; no fixed manual blurring of shadow maps required
  • effects such as colored shadows cast by stained glass using shadow shader graphs or Phenomena
  • volume cast shadows and volume self-shadowing by applying volume shaders to shadows or shadow ray segments


1.4 Textures

  • texture tiling and caching, loading only small, currently needed portions of textures
  • more than 30 supported texture image formats, including HDR formats
  • mipmapping and pyramid textures for fast and smooth texture interpolation
  • reflection maps for fast and simple distant environments such as sky cloud images
  • memory-mapped textures and memory-mapped pyramid textures (only the pieces of the texture that are actually required are loaded/unloaded on demand from disk to memory)
  • high quality ellyptic texture filtering


2. Geometry

  • free-form surfaces in Bezier, B-spline (including NURBS), Cardinal, Taylor, and arbitrary basis matrix representations; rational and non-rational, up to degree 21
  • any number of trimming curves, hole curves, and special curves and points (that control tessellation) can be applied to free-form surfaces
  • connectivity between surfaces

    • polygons

  • hierarchical subdivision surfaces with support for:

    • quads (Catmull-Clark scheme)
    • triangles (Loop scheme)
    • sharp features: creases and points
    • optional wavelet-based multiresolution editing and data compression/LOD (mental matter)
    • optional conversion from and to NURBS (mental matter)


  • trimming
  • approximation, controllable by parametric subdivisions, edge length, analytic distance, and angle
  • displacement mapping, including very precise sub-pixel displacement that resolves even the finest detail of the displacement map, without excessive memory consumption and with very easy-to-use quality control settings, using mental ray's data flow mechanism
  • texture surfaces and multiple texture coordinate systems
  • special hair primitives for optimized rendering of hair and fur
  • multiple instancing of objects and light sources
  • object and instance flags to control visibility, shadows, reflections, etc. per object instance: for example, there may be different versions of an object for beauty passes, reflection passes, and shadow passes, even within a single rendering operation
  • on-demand loading of object files and on-demand procedural object creation using geometry shaders and placeholders: geometry is not created until it is needed, the geometry cache maintains only objects currently or recently in use to reduce rendering times and concurrent memory requirements



3. Performance

  • full data flow architecture which maintains a scene/data cache to store only data which is currently needed, creating data on demand wherever possible. This enables mental ray to render scenes with great complexity with limited amounts of available memory.
  • multi-threading parallelism for scalable exploitation of multi-processor machines
  • network parallel rendering for scalable, efficient rendering on heterogeneous networks of machines regardless of operating system, byte order, and word size (32 and 64 bits) differences, using an adaptive load-balancing algorithm for tessellation, rendering, and other computations
  • rasterizer for fast, high quality rendering of directly visible objects
  • BSP tree (kd-tree) acceleration method for fast ray tracing, with memory caching for very complex scenes
  • scanline rendering method for fast rendering of scenes in low to medium complexity
  • incremental changes for animation and interactive rendering, defining, transmitting, and tessellating only the differences between frames
  • no-master option in network parallel rendering, relieving the master host from performing rendering computations, and helping to reduce memory consumption on the master host
  • full support for 64 bit architectures (see supported platforms)
  • full support for multi-core processors with close to 100% scaling efficiency
  • Satellites for network parallel rendering in many OEM applications, using a number of machines to increase rendering performance without requiring additional licenses


4. Integration

  • optional developer library form available for integration into OEM products
  • translators and plugins are available for a variety of front-end applications
  • C language API for entire scene description language and other features, such as API calls for support of parallelism in shaders
  • simple, efficient, and full-featured hierarchical scene description language (.mi), fully text-based with optional binary vector data for increased performance
  • material and parameter inheritance
  • OEM specific software protection and licensing technology


Legal and Privacy Information
© NVIDIA ARC GmbH | Fasanenstr. 81 10623 Berlin Germany | phone +49.30.315.99.70 | fax +49.30.315.99.733 | arc-office@nvidia.com