Upgrading from mental ray 3.6 to 3.7
What's new in Version 3.7
Scene Description Language
Shader Writing and Integration
Incompatible Changes
Known Limitations

What's new in Version 3.7

Here is a summary of some of the new features and feature improvements in version 3.7 of mental ray. Please refer to the release notes for more details and for other changes which are not mentioned here.

Irradiance Particles

This version adds a novel and alternative global illumination technique called Irradiance Particles (short: IP), which is in many cases superior to finalgather and/or photon mapping in terms of image quality, usability and performance. It is based on importons which are shot to the scene from the camera before rendering starts. Their hit positions with information on the amount of direct (and possibly indirect) illumination coming at their position (hence the name "irradiance particles") are combined into a map. Optionally, one or more passes of indirect illumination can be computed. By the nature of the algorithm, this computation is importance-driven. During rendering, Irradiance Particles are used to estimate the irradiance for every shading point: if just direct illumination was collected for irradiance particles, this is equivalent to one bounce of indirect lighting. Irradiance can also be interpolated from precomputed values found at nearby particle positions.

Native BRDF/BSDF Support

Support for built-in illumination models represented by a Bidirectional Scattering Distribution Function (BSDF, commonly known as BRDF for non-transmitting materials) has been added to mental ray. In the current version, mental ray provides the most common Lambert, Mirror, Phong and Ashikhmin BSDFs, as well as an Architectural BSDF to closely simulate the behavior of the respective advanced mental ray shader. More BRDF/BSDF standard models will follow in future versions.

With BSDF shaders, it is possible to omit photon shaders. For materials with a BSDF shader but no photon shader specified mental ray automatically uses the BSDF shader and use its sample function to simulate photon shader behavior. For the future version, this fallback into BSDF will be enabled for other indirect illumination techniques.

BSDFs may be split into up to 6 components (reflection and refraction, with diffuse, glossy, and specular components each). The eval function evaluates all BSDF components, or a subset thereof, for a pair of incoming and outgoing directions. The Bsdf interface also provides a sample function, which allows importance sampling of outgoing directions for a given incoming direction. In addition, this function provides information about the sampled component and the sample weight. The latter can easily be combined with Russian roulette for absorption, which could be used e.g. for writing photon shaders.

A BSDF shader may be attached as material shader into miMaterial. In this case, mental ray takes care of simulating a material shader based on the BSDF.

An instance of a BSDF shader with given parameters may be specified with the usual shader syntax. Input parameters of a BSDF shader can be specified as the result of other shaders, allowing conventional shading trees and phenomena to be used.

Map Container

Initial support for generalized Map containers has been added. Maps are particle systems in N dimensional space. Each particle has a position and set data assigned.

mental ray provides functionality for creating, accessing and editing of Maps, as well as loading them from files and saving them to files. An efficient nearest neighbor lookup functionality is implemented, utilizing either euclidean distance or arbitrary distance functor provided by user. The distance functor may implement rejections by returning the miHUGE_SCALAR value.

Particle data may be any structure consisting of the common types including scalars, integers, vectors, colors and transforms. All particles in a single map have identical layout. The position of a particle is an N-dimensional float vector, where N varies in range from 1 to 6 in the current implementation.

In this version, Maps need to be created or loaded by applications or geometry shaders. Tutorials are added to mental ray releases.

Catmull-Clark Mesh Features

Implemented adaptive tessellation for Catmull-Clark meshes. Each region can now have a different refinement level. t-vertices with neighbor regions having different refinement levels are fixed with triangle fans. Positions are always computed on the limit surface.

For the Catmull-Clark meshes, improved texture seams quality by implementing spline-rule evaluation.

Hair Approximation

Added approximation for hair. In addition to the old approximation syntax which directly specifies the number of approximating segments, it is now possible to specify adaptive length, distance, angle approximation including view-dependent approximations. Parametric approximations depending on the degree of the hair curves are supported as well.

Especially for curved hair and hair at higher viewing distance, the new approximation criterion allows to have high approximation resolution restricted to the area where needed. The lower number of hair segments result in reduced memory consumption and increase rendering speed.

In order to get benefit from curvature-dependent approximations, hair needs to be modelled appropriately with hair degree > 1.

Motion Blur Displacement

For moving polygonal objects with displacement, added functionality to automatically control the quality of displacement according to the amount of visual motion. For fast moving objects, images with comparable visual quality may be achieved with fewer displacement tessellation details compared to static or slow moving objects. Though it is also possible to tweak displacement approximation on a per-object basis, this would require a lot of manual efforts and is rarely done in practice. Per-object granularity may also be not fine enough for object having different amount of motion in different parts. The new approximation motion factor provides an automatic way for adjusting the displacement quality according to the amount of motion for a given object part.

For view-dependent fine poly displacement the adaptive subdivision checks motion length in screen space. The measured motion length is used to modify the use of the approximation constant. Geometry is reduced only in areas of the object with strong motion.

A new option can be used to modify the amount of geometry reduction compared to static case. The feature is enabled by default at a rather conservative setting, which reduces displacement quality only for very fast moving objects.

OpenEXR Features

For OpenEXR textures, added ability to use display window. If the registry setting _MI_OPENEXR_WINDOW is set to "display" (in contrast to "data"), then the OpenEXR display window will be used. Note that display window is not compatible with mipmap pyramids for filtered local textures.

The OpenEXR version as been updated to 1.6.1.

OpenEXR library is linked statically. On an attempt to link mi_openexr.dll, a warning message is printed.

Network Rendering

Added IPv6 support for mental ray multi-hosting rendering. In the .rayhosts file, as well as on the command line, IPv6 addresses may be specified. Host names and IPv4 addresses are still supported. IPv6 addresses need to be put into the ][ ] brackets following common URL convention. Note that if slave host is specified on the command line, the [ ] brackets may need encapsulation depending on the shell used.

mental ray master host tries to establish connections to slaves using either TCP or TCPv6 protocol, whatever is available and applicable to a slave host (if a slave host is given by name, both TCP and TCPv6 protocols are tried out, the order depends on operating system used and OS configuration).

Added IPv6 support for the socket layer of mental ray DISP protocol (immediate display of tiles as they rendered). mental ray would listen for connections done with either TCP or TCPv6 on the same port id. The imf_disp tool would try to get the connection with any of TCPv6 and TCP protocols.

Scene Description Language

The following changes were made in the .mi scene description syntax:

Shader Writing and Integration

Incompatible Changes

Copyright © 1986-2008 by mental images GmbH