Keywords: main

Next: 1.9 Area Light Sources Up: 1. Functionality Previous: 1.7 Materials

# 1.8 Light Sources

A light source illuminates the objects in a scene. Light sources in mental ray are programmable and consist of a light source name, a named light shader function, and an optional origin and direction (exactly one of the two must be present). All light shaders also accept shader parameters that depend on the shader.

The lights available in a scene are defined outside materials and typically referenced by name inside materials. Most material shaders have a parameter of type ``light array'' that allows referencing a list of light instances by name. The material shader then applies the illumination from these lights to the shaded surface. Material shaders also have the option of obtaining a list of all lights in the scene directly from mental ray.

The shading function for light sources may be either a user written function linked at run time, or it may be one of the standard functions. There are standard shader libraries for Alias, AliasWavefront Maya, Autodesk 3D Studio MAX, Dassault Systèmes CATIA, SOFTIMAGE, SolidWorks, and Wavefront compatibility, as well as generic shader libraries such as mental images' base, physics, and Lume shader libraries.

Some shaders accept a boolean parameter `shadow` that turns shadow casting on or off for that light source, and a floating point `factor` that is the shadow factor. The shadow factor controls penetration of opaque objects. The computation of shadows is a responsibility of light shaders in mental ray; in order to compute transparent shadows this may involve the cooperation of shadow shaders attached to semi-transparent shadow-casting objects.

For example, the `mib_light_spot` shader in the base shader library implements a spot light. It has a `color` parameter that must be set to the color of the light, as three scalars for the red, green, and blue components. It also allows a boolean `shadow` parameter that enables shadows cast from this light if its value is `on`, and a `factor` parameter that controls shadow penetration, ranging from `0.0` for black shadows to `1.0` for invisible shadows. The shader also accepts a boolean `atten` parameter that turns distance attenuation on or off, and two scalar parameters `start` and `stop` that specify the range over which the attenuation falls off if `atten` is `on`. The spot light mode requires an origin, a direction, and a spread value in the light definition in the scene description file. The spread value in the light definition and the `cone` parameter of the shader together define the spot characteristics of the light. The `cone` parameter specifies the angle of the inner solid cone and the spread statement specifies the outer falloff cone. The spot casts a cone of light with a softened edge where the intensity falls off to zero between the cone and spread angles. This and most other shaders specify angles not in degrees but in the cosine of one-half of the opening angle to improve performance: 1.0 is an opening angle of 0 degrees (a laser beam too narrow to see), 0.707 specifies an opening angle of approximately 90 degrees (because cos 0.707) and 0.0 specifies an opening angle of 180 degrees.

Next: 1.9 Area Light Sources Up: 1. Functionality Previous: 1.7 Materials