Lighting

Lighting

images/alien3pointLighting.png

Lighting in RIS is via geometric area lights, which makes it expressive and highly performant, and offers both explicit control as well as mechanisms for alleviating the need to explicitly control sample counts for lighting, making it highly flexible, suitable for all manner of workflows and pipelines.

Lights are expressed as geometric primitives that describe the shape of the emitting surface. A rectangular area light is therefore expressed as a polygon or a bilinear patch. Spherical lights are simply a sphere with an AreaLight shader, and so on.

Emission shapes and the directionality of the emitted light - i.e. profiles are separately controllable, allowing easy setup of both simple and complex lighting scenarios. Three point lighting is straightforward and it's easy to make complex objects emit light.

The lighting system also provides control over other properties - such as the emission color and intensity - and supports normalization.


Shapes

In RenderMan, the shape of the emitting surface is somewhat distinct from the directionality of the emission - or the emission profile. For most light types, with the exception of distant lights and environment lights, the profile (shaping) of the emission can be controlled separately.

Here we have a rectangular light, disc light, sphere, and arbitrary geometry (in this case, a helix):

rectangle disc sphere helix

The infinite lights, distant light and environment light:

distant environment

Profiles - Shaping Light, etc.

Spotlights may be specified using coneangle and penumbraangle. The angle is measured against z of the specified profilespace - usually the coordinate system of the geometry that defines the light shape.

The images below present a decreasing coneangle sequence.

images/lighting/lightTypes_spot0.jpg images/lighting/lightTypes_spot1.jpg images/lighting/lightTypes_spot2.jpg images/lighting/lightTypes_spot3.jpg images/lighting/lightTypes_spot4.jpg images/lighting/lightTypes_spot5.jpg images/lighting/lightTypes_spot6.jpg

Penumbra angle controls the sharpness of the transition from light to shadow for the spotlight.

images/lighting/lightTypes_penumbra0.jpg images/lighting/lightTypes_penumbra1.jpg images/lighting/lightTypes_penumbra2.jpg

The cone's eccentricity may be controlled by scaling the profilespace in which it is specified differently in x and y (the angle is measured against z).

images/lighting/lightTypes_conesquish0.jpg images/lighting/lightTypes_conesquish1.jpg images/lighting/lightTypes_conesquish2.jpg

In another case, one may wish to focus the emitted light, such that it is not emitted in a cosine fashion from the light, but is more strongly directional. This is possible by setting the cosine power on the light:

images/lighting/lightTypes_cosine3.jpg images/lighting/lightTypes_cosine2.jpg images/lighting/lightTypes_cosine1.jpg images/lighting/lightTypes_cosine0.jpg

Complex shaping can be achieved with IES profiles (iesprofile), which can be adapted by remapping their angular distribution using profilerange and coneangle.

images/lighting/lightTypes_ies0.jpg images/lighting/lightTypes_ies1.jpg images/lighting/lightTypes_ies2.jpg images/lighting/lightTypes_ies3.jpg

Other Properties

The emission color and intensity of light from the surface is, of course, controllable.

images/lighting/lightTypes_color0.jpg images/lighting/lightTypes_color1.jpg images/lighting/lightTypes_color2.jpg images/lighting/lightTypes_color3.jpg

For certain types of lighting a constant color is perfectly sufficient. In other cases, the emissivity is expected to vary over the emitter. This can be achieved by passing a non-constant color when specifying emission. The effect of focusing light via cosinepower is more pronounced with a textured emission, as you can more clearly see the focus effect.Contrast this with a spotlight's coneangle, which merely restricts light to within a defined cone.

textured emission cosinepower combined with textured emission coneangle combined with textured emission

Normalization

If areanormalize is non-zero, a light's output is normalized such that rescaling it does not alter its power. This does not mean that there will be no intensity change - since light comes from a variety of different angles as lights get larger or smaller, the interplay with the Bxdf can alter the perceived intensity. However, the light's total output is guaranteed to be constant under scaling, which is very helpful when setting up a lighting rig.

The images below illustrate, from left to right, a light with normalization, a larger light with normalization still on, and the same larger light without normalization. Normalization effectively has intensity specified as if the light were unit area.

images/lighting/lightTypes_lightscale0.jpg images/lighting/lightTypes_lightscale1.jpg images/lighting/lightTypes_lightscale2.jpg