Rendering Passes |
2D Textures Vs. 3D Point Clouds
Fundamentally, RenderMan renders images using passes. Just about any but the simplest of scenes will require multiple passes to render: a shadow pass for shadows (deep or not), a txmake pass for textures, and so on, all leading to the final pass for your fully rendered image. Most of these passes are pre-defined and happen behind the scenes without requiring you to do anything you set up your scene and RenderMan does the rest but you can also take advantage of passes by creating them yourself.
RenderMan for Maya provides sophisticated machinery for creating and managing passes. During a render job, pre-defined passes can be generated to compute data before the final image is rendered. This data can be referenced during the rendering of the final image, and it can be cached to use in subsequent renders, if you so desire. Pre-computed passes can be used to create everything from depth maps to reference images to occlusion passes.
Passes are created either explicitly or implicitly. Explicit passes are created purposefully by the user and can be used for computing all sorts of calculations before the rendering of the final frame. The generation of reference image passes may be one of the most common and useful pre-computed passes.
To create a pass explicitly, open the Passes Tab of the Render Globals. From the pull-down menu next to the Passes field, select the type of pass to be created:
Pass Menu: Create Pass-> Pass TypeImplicit passes, on the other hand, are created automatically by RenderMan for Maya as the need arises. For example, when creating a subsurface scattering effect, RenderMan for Maya automatically creates a sequence of passes to generate the effect: a pass for generating a point cloud, another for filtering the point cloud, and a pass to make the brickmap so it can be used in the beauty (Final) pass.
All passes can be configured independently of other passes. Each pass has its own custom settings that override the settings in the Render Globals. Any individual pass can have its own quality settings, its own pass-specific camera, or many other kinds of independent behaviors as defined in the pass tab.
All passes (whether explicit and implicit) can be controlled via the Passes Tab of the Render Globals. The Settings sub-tab provides controls for the pass that is currently selected in the passes tab. Additional attributes may be added to passes to provide additional control.
With RenderMan for Maya any pass in a render job can output its own secondary outputs, created during the primary pass. RenderMan for Maya has a flexible advanced system for constructing passes and secondary outputs. The most common use of secondary outputs is the creation of additional image elements for compositing, like specular, beauty, diffuse, etc. For more information about secondary outputs refer to the Secondary Outputs document.
There are several strategies for computing pre-passes. Proper setup of pre-passes can have a substantial impact on render speeds. The most important pass settings are described below.
Caching Behavior
It is important to set the caching behavior for the shot. There are three types of caching behavior: compute, reuse, and disable.Compute Causes the pass to be computed every time the frame is rendered, whether or not a pass has previously been rendered.
Reuse Causes previously cached data to be used again. No additional calculations are peformed in reuse mode, but the cached data must exist on disk.
Disable Simply disables the pass, causing the entire pass to be ignored.
When tweaking shaders during iterative renderings, the caching behavior of shadow maps can often be set to reuse. By reusing shadow maps, the shadows only have to be calculated once and are reused for each iterative rendering. No more waiting for shadow map calculations.
Phase
Most passes have a Phase parameter that determines how often a pass is calculated. The choices are: Once Per Job and Every Frame.Once Per Job Calculates the pass for the first frame of an animated sequence.
Every Frame Calculates a pass for each frame of an animation.
For single frames, both settings have the same effect. When rendering animated sequences is where the Once Per Job setting can be advantageous.
How often a pass needs to be computed is dependent on the shot. For shots where the elements in a pass are not moving from frame to frame, Once Per Job would be the right setting. However, in cases where objects in passes are moving and deforming during a shot, each frame would require a new calculation. In those cases Every Frame would be the correct setting.
It is common to use the Once Per Job setting with shadow maps. For instance if the elements in a shadow pass are not moving during a shot (like 3D models of skyscrapers) then only one shadow map needs to be computed for the entire shot. By using the Once Per Job setting (as opposed to the every frame setting), the scene will render much faster, more efficiently, and require significantly less disk resources.
Sets
Controlling the membership of objects rendered in pre-passes can provide additional optimizations. Unnecessary calculations can be avoided by selecting only those objects that are required to participate in the pre-computed pass.To control this set behavior, create a Maya set that only includes the appropriate geometry and enter the name of the Maya set in the Set parameter of the pass.
Images that aren't moving in a shot can be put into one Maya set and that pre-pass can be calculated Once Per Job. Moving objects can be stuck into their own Maya set.
RenderMan for Maya is capable of caching pre-pass data as 2D textures or as 3D point cloud files. Whether a pre-computed pass is a 2D texture or a 3D point cloud is largely transparent, but it does have some impact on workflow.
2D Texture Passes
Most pre-computed passes are cached into 2D textures. Some 2D textures, like shadow maps, also contain depth values, but are fundamentally 2D textures.3D Point Clouds
Pixar has developed the technology of "3D textures", which are basically point clouds (color data stored in x, y, and z). RenderMan for Maya automatically bakes certain types of computations into 3D point clouds. Subsurface scattering is an example of this. Other calculations, like occlusion, can be baked into either format. By default, occlusion is baked into 3D point clouds, but it can be baked into 2D camera projected textures instead. For instance, 3D point clouds can occasionally consume much more disk space that 2D textures would, and in that case 2D textures would be preferable.RenderMan for Maya will generally choose the proper format for baking data, but RenderMan for Maya also provides controls for additional customization.
RenderMan for Maya provides advanced controls for independently configuring individual pre-passes of a render job. Proper management of pre-passes can dramatically optimize and accelerate rendering.
Pixar Animation Studios
|