home << prev next >> contents  

Built-in Shaders3.5

builtin_material
builtin_constant_color
builtin_directional_light
builtin_point_light

As of version 3.5, mental ray has a small set of simple built-in shaders. These are intended for simple visualizations, where speed and simplicity of scene setup are more important than customization of shading elements. The shaders are designed to be flexible, but to offer only little control over shading details. Since the shaders are part of mental ray, their executation can be better optimized for performance by avoiding a few steps necessary when calling dynamically linked, external shaders.

Built-in shaders are used just like other (dynamically linked) shaders in a scene. They are referenced by name, and shader arguments may be specified which must conform to the declarations of the shader. However, built-in shaders do not need to be declared in the .mi input files or linked with mental ray using link statements. The shaders and their declarations are known to mental ray.

Textures, global illumination, and final gathering are not supported by built-in shaders at this time. This is likely to change in a later release of mental ray.

Note: built-in shaders can not be used in conjunction with any other (dynamically linked) shaders in this version of mental ray. A scene may contain either just built-in shaders or no built-in shaders at all, but not both.

builtin_material

mental ray provides a single material shader. It is similar to a typical Phong shader but uses a more realistic shading model which can model the characteristics of many actual materials better. In particular, the amount and directional characteristics of specular highlights at grazing angles are rendered more realistically. It also supports anisotropy for materials like brushed metals or velvet. The declaration of the built-in material in .mi syntax follows:

declare "builtin_material"(
    color "ambient",
    color "diffuse",
    color "specular",
    scalar "shininess" = 100.0,
    scalar "anisotropy",
    color "reflect",
    color "transparency",
    array light "lights")

Parameters

ambient
A constant ambient color component. Set only the ambient color, in order to get constant color shading. Note that when this is set to something other than zero, energy in the scene is no longer preserved, which can lead to unrealistic and undesirable results.
diffuse
The diffuse color of the material.
specular
The specular color of the material
shininess
This parameter specifies the shininess of the material, similar to the well-known Phong exponent. The higher the value is, the sharper and "more shiny" are the specular highlights. A useful range is between 10 and 1000, but any strictly positive number is valid. The default is 100.
anisotropy
If this is set to a value other than zero then shading will be anistropic, that is, the shininess of the surface varies depending on the surface orientation.

For positive values there are more specular reflections in the u direction of the surface, and for negative values there are more specular reflections in the v direction of the surface. A useful range is typically between -1 and 1, although values outside this range can be used, too.

reflect
The reflective color of the material. If this is set to something else than black and if ray tracing is enabled then a reflection ray will be shot and added filtered by this color. The ray is shot in the ideal reflection direction, and does not simulate any glossiness or speculariy off the ideal reflection direction.
transparency
The transparency color of the material, similar to reflections, except that no index of refraction is used, and the ray continues straight through the material.
lights
An array of references to light instances which are used to illuminate the material. If it is not set, then only the ambient color is used.

builtin_constant_color

This shader returns a constant color. Its declaration is:

declare "builtin_constant_color"(
    color "color")
    

Parameters:

color
The color returned by the shader.

builtin_directional_light

declare "builtin_directional_light"(
    color "color",
    boolean "shadow",
    scalar "factor")
    

Parameters:

color
The color of the light source
shadow
This flag indicates whether shadows should be computed for the light source. Shadows are turned off by default.
factor
The shadow factor determines how dark shadows cast by this light source are. A value of 0.0 renders black shadows, and a value of 1.0 uses full illumination without any shadowing. A useful range is between 0.0 and 1.0, the default is 0.0.

builtin_point_light

declare "builtin_point_light"(
    color "color",
    boolean "shadow"
    scalar "factor",
    boolean "attenuation",
    scalar "start",
    scalar "stop")
    

Parameters:

color
The color of the light source
shadow
This flag indicates whether shadows should be computed for the light source. Shadows are turned off by default.
factor
The shadow factor determines how dark shadows cast by this light source are. A value of 0.0 renders black shadows, and a value of 1.0 uses full illumination without any shadowing. A useful range is between 0.0 and 1.0, the default is 0.0.
attenuation
This flag indicates whether light is attenuated with distance. It is turned off by default.
start
The distance from the light source at which light begins to be attenuated if attenuation is set.
stop
The distance from the light source at which light is fully attenuated to black if attenuation is set.
home << prev next >> contents  


Copyright © 1986-2007 by mental images GmbH