Re-Rendering with Irma

Speeding the Process of Iterative Lighting and Shading. 


Introduction  - Irma


In this lesson we'll show how to use Irma. Irma speeds the lighting and shading of scenes, by caching a lot of data about a scene to accelerate render times. Irma is primarily a lighting tool, allowing you to tweak lights, create new lights, and adjust light-linking. Irma also supports some shader editing, but with less of a performance boost.

Ideally, you have Irma installed on a number of machines in your network and you've already added these machines to your Alfred huntgroup. Each machine that you want to use as an Irma server should be designated with the PixarIrma Service Key. By restricting the Irma Service Key to certain machines on your network you can reserve other machines for other duties, such as generating shadows during an Irma session or other general rendering purposes. 


Lighting a scene with Irma


1 -   Using Irma: Open the Maya Scene


For this tutorial, open the tutorial scene: 

/mtor/scenes/irma/scene.ma

(Where are the scene files?)

For a tutorial scene, this is on the large side, with lots of shading networks. We've included a somewhat larger scene to better showcase the benefits of using Irma, but the scene will take several minutes to load. You'll find that it's with more complicated scenes that Irma's acceleration is worthwhile.

We have a scene with a few different objects. We'll explore Irma's potential in this scene. We'll focus on all of the different things Irma can do, rather than focus on lighting the scene. We'll leave lighting techniques to you, but by the end of the tutorial you'll see how you can incorporate Irma into your workflow.

In this lesson we'll do the following:

  1. Adjust light parameters
  2. Adjust shadow parameters
  3. Move lights
  4. Update shadows on a per light basis
  5. Create new lights
  6. Adjust shader parameters
  7. Adjust coordinate systems
  8. Tweak fog
  9. Make and break light links


The Maya scene


2 - Pre-Render


Before you can re-render you must first pre-render. This pre-render process will take as long as a normal PRMan render, but once it's finished a cache will be stored and you'll be ready to re-render.

For this scene we have a transparent glass lamp shade, so we want to set the "Levels of Transparency" to 5 so the glass displays properly. If the setting remains at 1, then nothing behind the glass will be seen. This is a quality/speed setting and increasing this number will slow things down. Use it if you need it.

Open the Irma control panel using from the option box: RenderMan-> Irma-> Pre-Render [ ]

Now hit "Pre-Render" from the Irma Control Panel…

Pre-Render will cause the creation of a shadebuffer and render an image to "it". 

You may not re-render until the pre-render is finished. Wait until the pre-render image completes in "it" and then wait for the initialization to complete.

 


The Irma Control Panel


Take a look in Alfred's Job Window during the pre-render. Here we see the Irma Pre-Render job. Once the pre-render finishes initializing, re-renders may be submitted. 


The Pre-Render job sports the Irma icon


Here the final pre-render is finished. We're ready to begin re-rendering. 


The finished pre-render


3 - Re-Render


Irma is ready for render requests when the message "Setting Up Shadebuffer.  Please Wait…" goes away from the "it" image pre-render window. 

Once the initialization message goes away you're ready to re-render. You must always wait until the pre-render completes in entirety before re-rendering. Irma must initialize the shadebuffer and bring the re-render servers online. During this initialization phase, Irma is unavailable for re-render requests.  

When your pre-render is finished you can re-render:

Even though the re-render has identical settings to the pre-render, there may be slight differences between the two images. For instance, transparent objects like the glass may appear black, if this is your case now, go back to Step #2 and read about "Levels of Transparency". Custom shaders can be written to work better with Irma; for more info see Shader Optimization.

Note: You can re-render from the Irma panel or by right-clicking in the "it" window and selecting "Re-Render" as you would for a normal PRMan render. "it" is smart enough to know the difference between a PRMan and Irma re-render.


The initial re-render


4 - Adjust Light Parameters


Now we can start using Irma. Open the shader attached to the spotlight (the "Volume Spot") in the attribute editor. Increase the intensity of the light. Then re-render. 

Keep in mind that only external parameters can be adjusting during a re-render session. Editing internal parameters has no effect. Irma caches external parameters so they can be edited, but this requires some overhead, so it's good to be selective about which parameters are set to external. Remember, parameters must be set to external before the pre-render. After the pre-render it's too late to switch to external.  


The light becomes brighter…


5 - Adjust Shadow Parameters


Shadow parameters can also be tweaked during re-render sessions. This provides quick feedback for getting the right shadow blur…or finding the right shadow bias so the shadows attach firmly to the ground. 

Now let's blur the shadows that are emitted from the spot light. In the Volume Spot shader attached to the spotlight, increase the "Shadow Blur" parameter to "7" for a dramatic amount of blur, and then re-render.  

Keep in mind that only external parameters can be adjusting during a re-render session. 


The shadows become blurrier…


6 - Move Lights


You can move any light source before re-rendering. Lights can be moved all around, or their cone angles can be changed, etc.

Here we'll just point the spotlight at the chair and reduce its cone angle to "55," to focus on the chair. Try some other different configurations, too.

Note: The fog doesn't update. To get the fog to update we'd need to enable "Rebuild Atmospheric Cache" in the Irma control panel, but we'll do that later. (Alright…you can do it now if you're an "advanced" student.)

 
The spot light focuses on the chair…


7 - Create New Lights


Irma's ability to create new lights with new shaders, delete old lights, and attach different light shaders to pre-existing light sources provides a lot of potential for lighting scenes.

Any number of lights can be added during a re-render session. In this case, duplicate the spot and move it over the table. It will inherit the light shader (Volume Spot) attached to it. Re-render. And lo…

 


A table with a funkadelic pattern


Alternatively, you can create a new light source and attach a new shader to it. You can also create new light shaders and attach them to pre-existing lights. 

To demonstrate this, we stuck a point light under the table, and created a new Slim light shader, colored it an evilish green, and attached it to the new point light. But since this isn't an x-file, we'll delete it just as quickly. (Whew…that was a close one.)

Note: Surface shaders cannot be attached and detached in the same fashion as light shaders. Don't even think about it.


An evilish point light stuck under the table


8 - Update Shadows on a Per-Light Basis  


When moving lights around it's not always necessary to have the shadows update. Other times you'll want to update shadows, and sometimes you'll just want to update shadows for particular lights. To address this highly personal matter, shadows can be updated on a per-light basis as needed. 

We notice that in this scene the new spotlight is casting light on the table, but no shadows. Next we'll update shadow for that spot light, so that the cup casts a shadow on the table.

We can compute the shadows for this light by both selecting the light in Maya and enabling "Rebuild Selected Shadows" in the Irma control panel. Now re-render from Irma to see the new shadows. (Don't re-render from the "it" window.)

To update shadows for both the new spot light and the old spot light, just select both lights and re-render. It is in this way multiple shadow maps may be updated at once.

Note: These shadow jobs are sent to PRMan for recalculation. You'll have to have at least one machine available in your huntgroup to handle these requests. If all machines in your huntgroup are busy with the Irma session, you're not going to have any machines available to calculate shadows and the job will sit in the queue, doing nothing. You can add another machine to take care of the map, or for a more permanent solution, include a machine in your huntgroup the doesn't have the PixarIrma Service Key.

Double note: As of this writing, for shadows to update "re-render" must be invoked from the Irma menu, and not the "it" window.


The cup gets a darker side…


9 - Adjust Surface Shader Parameters


Shader parameters can also be adjusted during Irma sessions. 

However, remember that the lighting cache must be rebuilt for every re-render in which you've made adjustments to shader parameters for the shaders to update correctly. Rebuilding the lighting cache involves some extra overhead. When adjusting surface shader parameters be sure to enable the "Rebuild Prelighting Cache" in the Irma control panel.

For this case, we'll change the color of the floor, and darken it a bit, by adjusting the shader (floor_1) attached to the plane. We set the Kd to ".35" and changed the color of the cells to yellow. 

Remember, any external parameter is fair game. Internal parameters are not fair game. 


The floor changes color and darkens…


10 - Adjust Coordinate Systems


Geometry in a scene can't be moved during a re-render session, but the coordinate systems that define shader space referenced by a piece of geometry space can be. Coordinate systems can be translated, scaled, and rotated.

For example, select the sphere shaped coordinate system under the table and rotate and resize it. This coordinate system defines the pattern on the table top. By moving the coordinate system the pattern can be quickly repositioned.

Here we enlarged and rotated the coordinate system…a nice way to quickly adjust the placement of procedural textures.

You'll want to enable "Rebuild Prelighting Cache" in the Irma control panel before re-rendering, just like you would with surface shaders. 


The table pattern is redefined by adjusting its coordinate system


11 - Tweak Fog


Atmospheric shaders can also be edited during re-render sessions. However, this means recalculating the atmosphere cache, which carries additional overhead. When adjusting atmospheric shaders such as fog, be sure to enable "Rebuild Atmospheric Cache" in the Irma control panel.

In this scene there is a Volume Spot shader attached to the main spot light. It's creating some volumetric fog. We've tweaked the fog here. Better to have left well enough alone, but it conveys the idea, no? 

Make sure you enable "Rebuild Atmospheric Cache" when working with fog effects.


Trampy fog…


12 - Light Link It


Finally, Irma also supports light linking. That means you can edit light links during an Irma session. You can also make and break links. Plus, you can create new lights and then link them to objects.

In this scene we created a spot light, colored it red, pointed it at the chair, and then linked it so it would only illuminate the chair…and not the wall or the floor. Genius!

 


A fabulous light linked chair


13 - Clean Up After Yourself


When you're done re-rendering, delete the Irma Job from the Alfred Job Queue. Otherwise the job will persist indefinitely, waiting for re-render requests. Delete it instead.

Congratulations! You've made it all the way through. Have fun with Irma.


Delete this job…unless you're a system resource hog.


Tips and Tricks for working with Irma


Note A - Neato, So What Can't Irma Do?


Irma has her limitations as well. These scene elements cannot be edited during re-render sessions:

  • Any and all geometry: NURBS, particles, fur, etc.
  • Shader Attachment/Detachment (other than to lights)
  • Displacements cannot be edited
  • Depth of Field cannot be edited
  • 3d Motion Blur cannot be edited

 



Note B - More System Resources are Good. Less Bad.


Irma requires lots of system resources. Without enough resources Irma servers might crash, causing dropped buckets (areas where the re-render fills in with black). See Hardware Requirements for more info. 


 

Pixar Animation Studios
(510) 752-3000 (voice)   (510) 752-3151 (fax)
Copyright © 1996- Pixar. All rights reserved.
RenderMan® is a registered trademark of Pixar.