RMS Geometric Area Lights

RMS Geometric Area Lights

About Geometric Area Lights

With the release of RMS 18 we get to take advantage of the Geometric Area Lights introduced in RPS 18. These lights have a number of exciting new features, described below.

The first thing that might come to mind when considering geometric area lights is emissive geometry. Emissive geometry is fully supported, but there are a number of other features that are not so obvious.

Geometric Area Lights samples are managed by the renderer through the directlightingsamples option. This insures proper importance sampling and frees the user from needing to manage light samples on a per-light basis.

Beyond the improved sample management and geometry as area lights, support for portals, gobos, and volume blockers have also been added. On top of that, we now offer native support for IES profiles to further enhance the quality of the lighting in your shots.

There are also a few new features that will enhance composting workflows. The new Geometric Area Lights support the notion of groups. When you assign a group to a light it then becomes eligible to be written out as a per-group AOV. We also have the ability to write out the shadowed and unshadowed AOVs.

The new RMSGeoAreaLight and RMSGeoLightBlocker have been created to take advantage of all of this new functionality. The RMSEnvLight, RMSGPSurface, and RMSMatte have been updated to be able to act as real area lights as well (in fact, the RMSEnvLight is now a geometric area light by default).

The sections below provide a brief overview of how to take advantage of these new capabilities.

Using Groups

There are three simple steps you need to complete to use light groups:

  1. Adding the group to the light(s)
  2. Adding the group to the surface(s)
  3. Adding the AOV for the groups

Let's say that we want to create a scene with three lights, called Left, Right, and Up. Create three RMSGeoAreaLights; you can do this using the area light button on the RenderMan shelf.

In the attribute editor for each light, find the Light Group parameter and add one group to each of them.

Next, move the lights into position around your "hero" model so that you can see the results clearly. Attach an RMSGPSurface shader to your "hero", and, in the attribute editor, find the "Light Groups" parameter (under Advanced). This is an array parameter. Type in the name of one of the groups, then add the next one in the text field that appears below. (Note that, due to a refresh issue when editing array parameters, you will need to click away from the shader and back to see the next line appear. If you can see the node for the shader in the node graph or outliner you can simply click on that node and it will cause the parameters to refresh without changing the active selection in the attribute editor).

The final step is to add the AOVs. Open up the Renderman Controls window and change the view to Job Settings. There you will find the output pass that you want to add the AOVs to. Click on the pass, then choose:

Outputs -> Add Channels/Outputs -> Custom

Add, for example, "color GroupedSpecular_Left" in the text field, then press the add (+) button. The do the same thing to add "color GroupedSpecular_Right", "color GroupedSpecular_Up", "color GroupedDiffuse_Left", "color GroupedDiffuse_Right", and "color GroupedDiffuse_Up".

Once you've added these custom AOVs, select them in the list and right-click, then choose Create Outputs from Channels. Now everything is set up and, when you render, if you have aovs turned on for your preview render, you will get AOVs for each light group.

Using Portals, Gobos, and Volume Blockers

The new Geometric Area Lights natively support the notion of portals, which act as a virtual window where light comes through, gobos, which filter the light that passes through them, and volume blockers, which reduce the intensity of the light within a superellipsoid volume. They all have the same usage, and you can use as many of them as you like per light.


Let's look at using portals with an environment light first.

Create or open an "interior" scene and attach a RMSGPSurface to the objects, then create a RMSEnvLight (you can use the handy shelf button to do both of these operations) and connect an environment map to the light. Set up this way, you will be wasting most of the image-based lighting samples on areas that are shadowed by the room's walls, resulting in a noisy render. Instead, let's add a portal - this tells the renderer that all light from the environment light has to be able to pass through that region defined by the portal.

In the attribute editor for the EnvLight you will see a Blockers group, and a parameter called Blocker 0. Right-click and choose Create RMSGeoLightBlocker. This will create a new shader that will act as a portal, and an associated node in your Maya viewport. Move it into position in the window and render again; you will see a pleasant reduction in the amount of noise.

The Attenuation parameter controls how much light gets through the blocker volume. If you wanted to attenuate specular and diffuse separately, set Attenuation to 1 and then use Specular Attenuation and Diffuse Attenuation. Note that the attenuation parameters only apply to volume blockers.


Gobos are added to the light in the same manner. If you look at the RMSEnvLight in the attribute editor you will see that there is now a new parameter called Blockers 1; this is an array parameter and will grow to accomodate all of the RMSGeoLightBlockers you want to add. If you right-click in Blockers 1 you will see that you can choose from the existing RMSGeoLightBlockers (this makes it easy to share blockers between lights), or create a new one. Go ahead and create another blocker. When you create it you will be taken to it in the attribute editor. Change the shape from the default Portal to Gobo. Now you can choose a texture map that you want to use to filter the light passing through it. If you choose a colored map and move it around in your room, you will see that it is tinting the illumination from the environment light.

Volume Blockers

Finally, follow the same procedure to add one more blocker to the environment light. This time, change the shape to Volume. Now you will see that the icon in the viewport has changed to a 3D shape - a super ellipsoid. Its shape is controlled using the Exponent 1 and Exponent 2 parameters. These are a little obscure, but when you edit them you will see the shape change in the viewport. Anything that falls inside of the volume defined by the shape will be shadowed. You can adjust the falloff of the shape by using the Falloff Distance parameter, but there won't be any viewport feedback.

Using Barn Doors

The RMSGeoAreaLight supports all of the same features as the RMSEnvLight, regarding blockers, but it also has a number of additional features, including support for barn doors. Barn doors are implemented "under the covers" as gobos and, as such, can be used in conjunction with a texture map (in fact, the current implemetation requires that a map is specified). To use barn doors, select your RMSGeoAreaLight, open the Barndoors disclosure in the attribute editor, and check the Enable Barndoors parameter. You will know that it is on when you see the visualizer in the viewport. As you adjust the sliders you can see the barn doors rotate between 0 and 180 degrees. With a map in play they will occlude the light just as though they were physical cards. Be aware that they are affected by non-uniform scales.

Spot Lights

Another feature that RMSGeoAreaLight brings that isn't avaliable in the RMSAreaLight is the ability to behave like a spot light. This spot light is a little different than spot lights that you have used in the past because it is still an area light. When you set the shape to spot light you will see the disk of the light as well as the cone. If you want to change the sharpness of the shadows, scale the spot light. This will also change the size of the highlight. Cone Angle and Penumbra Angle will work like you woud expect - Penumbra Angle is added to the Cone Angle. Penumbra Exponent will change the falloff of of the penumbra region.

Using IES Profiles

IES profiles are a brand new feature as well, controlled via the Light Profile settings. Users can now load IES photometric profiles to modulate the intensity of your light. IES profiles can be added to any of the area light types. Additionally, you can use a latlong texture map to provide a custom emission map. Profile Range will allow you to squeeze or stretch the IES behavior around the light, giving you a little more than you would get just using the file itself. Distribution Angle can be used with the profiles and focuses the area light's light throw. 90 is the default behavior for an area light.

Color Temperature

To facilitate emulation of real lights, a color temperature slider has been added the lights in RMS. Increasing the number will cool the light color, lowering it will warm the light color. -1 will disable it completly.

Using RMSGPSurface As A Light Source

Finally, you can also add lights to your RMS 18 scene via an RMSGPSurface or RMSMatte shader attached to any geometry in your scene. As an example, create a torus and attach an RMSGPSurface shader to it. To enable light behavior, add the Emissive attribute to the shader using via Attributes -> RenderMan -> Make Emissive. Now the incandescence of the shader will control the light's intensity. You will find a new Shadows disclosure holding all of the regular shadow behavior parameters that you would find on a light.

Additionally, in the Advanced Diffuse section there is a Distribution Angle parameter, which focuses the light, just like in the RMSGeoAreaLight. (Note: currently this isn't implemented as an angle, but it will be corrected during beta.)

When using geometry as area lights you will want to change a few of the render settings for best quailty.

  1. Make the geometry single-sided, otherwise the renderer will think that you want light to be computed from both sides, even if the model is closed. This will waste some of the direct lighting samples. (Direct Lighting Samples is set via the globals and is used to control the total budget of light samples for the scene.)
  2. Turn off shadow casting. This isn't mandatory,but unless you need your light to cast shadows, this will improve quality because all of the light samples will be valid and not shadowed by the light source.