The scene database is the main storage for all scene data that comprise the model to be rendered, including geometry data, the scene DAG hierarchy, light and camera information, as well as material properties and its referenced set of individual shaders and phenomena, and last but not least custom user data.
The relations between elements of a scene are expressed as a hierarchy using a Directed Acyclic Graph, known as the DAG. It is built from instances and groups of instances. An instance is used to place elements in 3D space, namely groups, geometric objects, lights, and cameras. A group is a container that references multiple child instances. This allows to exploit multiple instancing, where several instances may reference the same group, object, or light, to render copies of an element at different locations of the scene as determined by their instance transformation. Furthermore, creating instances of a group which itself references instances will establish a parent-child relationship forming a hierarchy, where properties of a higher level element affect those of the lower elements according to inheritance rules. For rendering, mental ray expects all elements that comprise a scene to be provided as a single root group.
mental ray supports a wide variety of common geometry descriptions as source of input, like surface models based on polygons or triangles, freeform surfaces with trimming curves in several representations, and subdivision surface geometry in hierarchical or plain base mesh form. mental ray will convert such surface descriptions into a renderable representation as needed, known as tessellation, which generates an approximate version of the original surface shape in a certain desired quality, controllable by a set of criteria. It is possible to directly pass a final render-time surface representation to mental ray, for applications which already perform all the steps like modelling, splitting, and tessellation for rendering.
Other types of supported geometric entities include curves. They are used for trimming purposes on surfaces, or for specific modelling and rendering algorithms in the form of space curves and hair. Since they don't describe true surfaces they require customized tessellation and shading algorithms to be renderable.
Any other type of source geometry can be implemented with the help of geometry shaders as procedural geometry. For example, a shader may create a surface description from a set of input points only, to reconstruct a shape from a point-sampled model. Typical applications include particle cloud and surface blob rendering based on point data, as well as fluid volume or surface effects from a density field.
Copyright © 1986, 2013 NVIDIA Corporation