You are on page 1of 174

3Delight For Maya 6.

0
A fast, high quality, RenderMan-compliant renderer

Copyright c 2000-2011 The 3delight Team.

Short Contents
.................................................................. 1 1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 The User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 The Render Command Line Interface . . . . . . . . . . . . . . . . . . . . . . . 106 5 Rendering Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6 MEL Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 7 Developers Corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 8 Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

ii

Table of Contents
.................................................................. 1 1 2 3 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 The User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3.1 The 3Delight Relationship Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.1.1 All Available Operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.1.2 The Three-Pane Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.1.3 Performance Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2 The Assignment Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.1 Assignment Panel Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 3.2.2 Assignment Panel Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3 The Shader Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.4 The Add / Remove Attributes Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.5 The Geometry Attribute Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5.2 Attribute Inheritance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.5.2.1 Scene Hierarchy Attribute Inheritance . . . . . . . . . . . . . . . . . . . . . 15 3.5.2.2 Custom Hierarchy Attribute Inheritance . . . . . . . . . . . . . . . . . . . 16 3.5.2.3 Inheritance Precedence List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.5.3 General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.5.4 Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.5.5 Visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5.6 Lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5.7 Raytracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5.8 Motion Blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.5.9 Global Illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.5.10 Displacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5.11 Culling And Dicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5.12 Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.5.12.1 Polygons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.12.2 Polygons Wireframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.5.12.3 NURBS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.12.4 Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.5.12.5 Particles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.5.12.6 Maya Fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 3.5.13 Reference Geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 3.5.14 Subsurface Scattering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 3.5.15 MEL Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.16 RIB Archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.5.17 User Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.6 The Geometry Modifiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.6.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 3.6.2 The 3Delight Geometry Modifiers Menu . . . . . . . . . . . . . . . . . . . . . . . . . 40

iii 3.6.3 Geometry Modifiers Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Shading Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.2 The 3Delight Shading Attributes Menu . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7.3 Reflection Shading Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 The Light Attribute Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.2 Shadow Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.3 Shadow Objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.4 Photon Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.5 Category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.6 Motion Blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.7 Area Light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.8 MEL Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9 The Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2 Managing Render Passes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2.1 Creating a Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2.2 Inheriting Another Render Pass Attributes . . . . . . . . . . . . . . . . . 3.9.2.3 Rendering a Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2.4 Selecting a Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2.5 Duplicating a Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.2.6 Saving a Render Pass as a Template . . . . . . . . . . . . . . . . . . . . . . . 3.9.3 Render Pass Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.1 Camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.2 Output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.3 Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.4 Depth of Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.5 Motion Blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.6 Displays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.7 Shadow Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.8 Global Illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.9 Render Sets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.10 RIB Archives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.11 RIB Fragments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.12 RI Filter Plug-ins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.13 Search Paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.14 MEL Scripts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.15 Advanced . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.16 Network Cache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.17 Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9.3.18 User Options and Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 The 3Delight Render Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 The RIB Archive Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11.2 RIB Archive Node User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12 The RenderMan Code Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12.1 RenderMan Code Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12.2 RenderMan Code User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13 The RenderMan Material Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13.1 RenderMan Material Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13.2 What shaders work as a RenderMan Material . . . . . . . . . . . . . . . . . . 3.13.3 RenderMan Material User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 40 41 41 41 41 43 43 43 46 47 47 47 48 48 50 50 50 50 51 51 51 51 52 52 52 54 55 57 57 59 69 71 77 78 80 82 82 83 84 86 87 87 89 91 91 91 93 93 93 95 95 95 95

iv 3.14 The 3.14.1 3.14.2 3.15 The 3.16 The 3.16.1 3.16.2 3.17 The 3.17.1 3.17.2 3.17.3 Coordinate System Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Drawing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 Clipping Plane Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 CSG Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Preferences Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 File Viewing Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

The Render Command Line Interface . . . . . . . . . . . . . . . . . 106


4.1 4.2 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Rendering Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115


5.1 5.2 Understanding Collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lighting Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Depth Map Shadows With Maya Lights . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 Ray Traced Shadows With Maya Lights . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3 Deep Shadow Maps With Maya Lights . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 Lighting and Shadowing With RenderMan Light Shaders . . . . . . . 5.2.5 Shadow Map Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 RIB Archives Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 Writing a RIB Archive using a Render Pass . . . . . . . . . . . . . . . . . . . . 5.3.2 Reading a RIB Archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3 Rendering while Archiving Scene Elements . . . . . . . . . . . . . . . . . . . . . 5.3.4 Miscellaneous RIB Archives tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4 Geometry Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1 Maya Render Stats and Geometry Attribute Nodes . . . . . . . . . . . . . 5.4.2 Using Attributes to Export Primitive Variables . . . . . . . . . . . . . . . . 5.4.3 Exporting Per-Vertex Attributes on Polygon Meshes . . . . . . . . . . . 5.4.4 Exporting Particle Attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.5 Rendering Sprites with Distinct Textures . . . . . . . . . . . . . . . . . . . . . . 5.4.6 Maya Hair and Paint FX Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.7 Maya Fur Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.8 Shave and a Haircut Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.9 Miscellaneous Geometry Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Miscellaneous Guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.1 Dynamics Animation Rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.2 Using Atmosphere Shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.3 Textures In The Hypershade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.4 File Path Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.5 Automatic File Output Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5.6 Hypershade translation quirks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.6 A Few Words About Fluids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 115 115 115 116 116 118 120 120 120 121 121 123 123 124 125 127 128 129 130 131 132 133 133 133 133 134 136 138 139

MEL Binding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Developers Corner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142


7.1 7.2 7.3 7.4 7.5 7.6 General User Defined MEL Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Procedures Related To MEL Script Attributes . . . . . . . . . . . . . . . . . . . . . . Customizing Render Pass Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Geometry Attribute Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Light Attribute Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Customizing Shader Nodes User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.1 Attribute Grouping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.2 Defining Shader Parameter Gadgets . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.6.3 Defining Presets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.7 Defining Custom Shader Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.8 Defining Custom Hypershade Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.9 Rendering Custom Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.9.1 Rendering Custom Geometry Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.9.2 Rendering Custom Light Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 144 145 146 146 146 146 147 149 149 150 150 150 152

Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 Concept Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Chapter 1: Installation

1 Installation
If 3delight has been properly installed, the only thing to do in Maya is to load the plug-in. This is done through the following menus: Window -> Settings/Preferences -> Plug-in Manager If 3delight is installed in the default directory, the following path will appear in the Plug-in Manager: windows C:\Program Files\3Delight\maya\plugins mac os x /Applications/Graphics/3Delight-8.0/lib linux ${DELIGHT}/lib Check the loaded checkbox next to the plug-in file that corresponds to the Maya version running to execute it. The plug-in are named 3delight_for_mayaX.mll for Windows users, 3delight_for_mayaX.so for Linux users and 3delight_for_mayaX.dso or 3delight_for_mayaX.bundle for Mac OS X users, where X is the version of Maya being used. After this step, a 3Delight menu will appear in the menu bar. When using Joe Alters Shave and a Haircut Maya plug-in, you can also load the 3dfm_shaveX.mll, 3dfm_shaveX.dso or 3dfm_shaveX.bundle, depending on whether the platform being used is Windows, Linux or Mac OSX, respectively; X is the version of Maya being used. Refer to Section 5.4.8 [Shave and a Haircut Tips], page 131 for more information about the benefits of using this second plugin. If the path does not appear in the Plug-in Manager , use the Browse button to load the plug-in manually.

Chapter 2: Overview

2 Overview
3Delight For Maya is a fully integrated Maya plug-in that let you render Maya scenes using the powerful 3Delight renderer. The plug-in is designed to be easy to use but integrates some features that are only used in modern RenderMan pipelines. The full list of features is listed in 3Delight For Maya Technical Specifications (included in the package).

Quick Start
To render a scene, one can simply: 1. Load the scene and the plug-in (using the Plug-in Manager ). 2. Set the default renderer in the Render Globals to 3Delight. 3. Start the render as usual.

Main Features and Components


In a nutshell, 3Delight for Maya offers the following features and components: Pass oriented rendering A render pass contains (among other things) options defining the objects and light being rendered, the rendering quality and the type of output produced. Render passes add flexibility on top of the standard Maya layers. See Section 3.9 [The Render Pass], page 50. Hypershade shading network translation 3Delight for Maya automatically translates Hypershade materials into RenderMan shaders, so scenes that work in Maya will work the same when using 3Delight For Maya. RenderMan Shader Nodes It is always possible to assign RenderMan shaders to scene elements. Assignment is done through the Assignment Panel while the Attribute Editor is used to edit the shader parameters. RenderMan shaders override Hypershade materials. Shader and Attribute Collections This feature enables the selection of a certain group of shaders or attributes depending on the pass being rendered. This adds flexibility to more advanced pipelines. Other packages also offer a per-pass assignment strategy but this additional indirection level let more advanced users easily manage pass-dependant connections. See Section 5.1 [Understanding Collections], page 115. Geometry Attribute Nodes These nodes are used to set various parameters that are specific to 3Delight, Examples are ray tracing attributes and motion blur attributes. See Section 3.5 [The Geometry Attribute Node], page 15. Light Attribute Nodes 3Delight For Maya honours all Maya light parameters and it provides its own attributes to set specific parameters. For example, the shadow map type (either normal or deep) is selected through the light attribute node. See Section 3.8 [The Light Attribute Node], page 43.

Chapter 2: Overview

The Assignment Panel This handy dialog is used to view and modify what shader node, attribute nodes and shader collections are assigned to the selected objects. See Section 3.2 [The Assignment Panel], page 9.
RIB Archives

3Delight For Maya can create and read RIB archives. This is a handy feature when efficient rendering of complex scenes is required. See Section 3.11 [The RIB Archive Node], page 91. RenderMan Code Node This advanced Hypershade node allows insertion of SL code (RenderMan Shading Language code) in a Hypershade network. See Section 3.12 [The RenderMan Code Node], page 93.

Chapter 3: The User Interface

3 The User Interface

3.1 The 3Delight Relationship Editor


The 3Delight Relationship Editor is a central piece of UI in 3Delight For Maya as it connects 3DFMs shaders and attributes to Maya s scene elements. The 3Delight Relationship Editor is meant to work and feel exactly as any Maya relationship editor so that users can rapidly understand the various possible operations. The editor is similar in spirit to the Light Linker as it has two operational modes: object-centric and attribute or shader-centric. Each operational mode is well suited for a set of specific tasks. For example, to assign an attribute to some objects, one could do the following in attribute-centric mode: Left-click on the attribute in the left pane of the editor to select it. Left-click on the objects in the right pane to perform the connection. To do the same in object-centric mode: Select the objects on the left by Shift-Left-Click. Assign the attribute on by Left-Click in the right panel.

Figure 3.1: The 3Delight Relationship Editor in two-pane mode. As a rule of thumb, attribute and shader-centric mode is better suited to perform various operations on 3DFMs nodes without risking to alter the assignments. Possible operations include: selection, showing node in the AE, renaming, etc. In general, the editor shows connections in the following manner:

Chapter 3: The User Interface

attribute and shader-centric If an attribute is selected in the left pane, the editor highlights all connected objects in the right pane. Selecting more than one attribute will show connections that are common to all the selected attributes. object-centric If an object is selected in the left pane, the right pane will highlight both the shaders and attributes that are directly assigned and the ones that are inherited by these objects. Selecting more than one object will show connections that are common to all selected objects. Note that there are many ways to connect attributes to object (such as by inheritance), this is explained in Section 3.5.2 [Geometry Attribute Node Inheritance], page 15. 3.1.1 All Available Operations This sections lists all the available operations in each pane. The more advanced three-pane mode is described in Section 3.1.2 [The Three-Pane Mode], page 7. Figure 3.2 lists actions that are common to all panes. Mouse Action Double-click on nodes name Double-click on nodes icon Description Rename node Shows the node in the AE. Doesnt modify current selection. Also possible through the contextual menu as described in Figure 3.5. Clears the highlighted nodes. Doesnt affect current Maya selection.

Left-click on empty space in pane

Figure 3.2: List of all operations available to all panes. Object Pane Operations Figure 3.3 lists all the actions available through the Show menu and Figure 3.4 lists all actions available through the Edit menu. Check List Item Geometry Lights Cameras Sets Description Display Maya Display Maya Display Maya Display Maya

geometry nodes if checked. light nodes if checked. camera nodes if checked. sets if checked.

Figure 3.3: List of all operations in the Show menu. Menu Item Highlight selected objects Description This replaces the currently highlighted objects in the pane by the current selection in Maya. This is a very handy feature: selecting an object in Maya and then using this feature will show the connections to the object (although single object view is very conveniently accessible through the Assignment Panel as explained in Section 3.2 [The Assignment Panel], page 9). This replaces current Maya selection by highlighted objects in the pane.

Select highlighted objects

Figure 3.4: List of all operations in the Edit menu.

Chapter 3: The User Interface

Attribute and Shader Pane Operations Additionally to the actions described in Figure 3.2, a host of actions are available through the contextual menu of the attribute pane. These are described in Figure 3.5. Menu Item Select Show in AE Duplicate Description This replaces current Maya selection by highlighted nodes in the pane. Shows the node in the AE. Doesnt modify current Maya selection. Creates a copy of the highlighted node, retaining values, expressions and connections on its attributes. Assignments to scene objects are not duplicated. Make the various shader parameters of the highlighted nodes invisible in all editors except the AE, which speeds up AE refreshes in some cases. Only active when shaders are highlighted. Refer to [Hide Attributes Preferences], page 105 for details. The shader node is updated to reflect the current content of the related compiled shader file. Object assignments, attribute values, expressions and connections are preserved when possible. Only active when shaders are highlighted. Upon selecting this item, the Shader Selector is brought up and the selected file will replace the one that was used by all highlighted shader nodes. The shader node name is not changed. Object assignments are preserved. Attribute values, expressions and connections are preserved when possible. Only active when shaders are highlighted. Show a preview of the highlighted shaders in i-display. Preview can be customized in the Preferences Window Shaders . It is possible to select a surface shader, a displacement shader and an imager shader; all will be used at once when rendering the preview. Only active when shaders are highlighted. Delete selected attribute or shader and disconnect all connections.

Hide Shader Attributes

Reload Shaders

Replace Shader With File ...

Preview Shaders

Delete

Figure 3.5: List of all actions available through the contextual menu of the attribute pane.

3.1.2 The Three-Pane Mode The Relationship Editor can show a third pane to display and edit collection assignations. Please refer to Section 5.1 [Understanding Collections], page 115 for more information about collections. The third pane can be shown by clicking on the << button on the left side of the editor window. Similarly, clicking on the >> button will collapse the editor back to two panes.

Chapter 3: The User Interface

Figure 3.6: The 3Delight Relationship Editor in three-pane mode. The leftmost pane offers two display modes for its content: Collections and Collection As Passes. The display mode can be selected via the option menu at the top of this pane.

Collections Mode In this mode, the leftmost pane will list existing collections. New collections can be created through the panes Create -> Collection menu item. When a collection is highlighted, the other panes will display and edit assignments made for that collection. Object level assignments can be viewed and modified by clearing the highlighted nodes in the leftmost pane. Operations available in this pane are listed in Figure 3.2.

Collections As Passes Mode In this mode, the leftmost pane will list existing render passes. When one one of these passes is highlighted, the other panes will display and edit assignments made for the selected pass "Shader collection" (see [Shader collection to render], page 77). Object level assignments can be edited either by clearing the highlighted passes or by highlighting a pass whose "Shader collection" attribute is set to <None>. The left panes Create menu is identical to the Add Render Pass menu item of the 3Delight Maya menu (see Section 3.9.2.1 [Creating a Render Pass], page 50). Additionally to the actions described in Figure 3.2, a few more are available through the contextual menu of this pane. These are described in Figure 3.7.

Chapter 3: The User Interface

Menu Item Select Show in AE Assign Collection

Description This replaces current Maya selection by highlighted render pass in the pane. Shows the render pass in the AE. Doesnt modify current selection. Presents the existing collections in a submenu; selecting one will set it as the "Shader collection" of the highlighted render passes. The submenu also offers a New Collection... item which creates a new collection, prompts for a collection name and set it as the "Shader collection" of the highlighted render passes. See [Shader collection to render], page 77.

Figure 3.7: List of all actions available through the contextual menu of the collection as passes pane.

3.1.3 Performance Notes The 3Delight Relationship Editor has been designed to perform very well with extremely large scenes but there are some operations that could take significant time to complete with long object lists. When working with a large scene, the following operations introduce a delay due to Maya s API: Modifying the name filter in the objects pane; Turning off one of Geometry, Lights or Cameras in the Objects pane Show menu. The delay occurs once after the modification, and can occur again when collapsing part of the tree in the objects pane. Creating shaders or attribute nodes and modifying their assignations does not cause any delay. To avoid any slowness, it is recommended to leave the objects panes Name Filter empty and to turn on all of Geometry, Lights and Cameras options in the Objects pane Show menu.

3.2 The Assignment Panel


3.2.1 Assignment Panel Overview The assignment panel is a handy interface for inspecting and modifying shader and attribute connections. This panel doesnt provide more functionalities than the relationship editor (see Section 3.1 [The 3Delight Relationship Editor], page 5) but it has a couple nice properties: 1. It is dockable. 2. It takes less screen estate. Usage is very simple: selecting a Maya object updates the panels content to show current assignments; all modifications performed through the panel will be applied to the selected object. Obviously, this interface is doesnt provide a global overview of the different connections as in the case with the relationship editor.

Chapter 3: The User Interface

10

Figure 3.8: The Assignment Panel 3.2.2 Assignment Panel Components Follow additional explanations for each column in the panel: Object assignments This is the traditional object-level assignment scheme. Collections assignments Those are connection that are active on the collection level. They will be activated if the rendered pass selects this collection. Please refer to Section 5.1 [Understanding Collections], page 115 for more information. Override assignments Override shaders are mainly useful for passes that need the same shader to be attached on all geometry. Say you have an ambient occlusion pass, as in the example above, with all objects having the same shader. Simply declare a collection, assign an ambient occlusion shader to it and select the collection in the "Render Sets" section of the render pass. No further shader assignment is needed, when rendering the pass all objects will have the ambient occlusion shader automatically attached to them. Additionally: Clicking on the texture square near the shader will open the "Shader Selector" to list shader files of the relevant type. Once a file is selected, a shader node is created and assigned to the currently selected objects. See Section 3.3 [The Shader Selector], page 11. Clicking on AE will show shaders parameter in Maya s attribute editor. Some customization of a given shaders gadgets is possible; see [Shader Node Attribute Grouping], page 146. Attribute Nodes can be created and assigned in this panel. Other shader types (such as atmosphere and interior) can be shown in this panel by enabling them in the "Show" menu.

Chapter 3: The User Interface

11

3.3 The Shader Selector


The shader selector presents RenderMan shader files. This dialog is brought up by some operations in the 3Delight Relationship Editor or the Assignment Panel , such as creating a shader node.

Figure 3.9: The Shader Selector Directory The "Directory" option menu will contain the default $DELIGHT/shaders entry as well as all paths listed in the $DL_SEARCH_PATH environment variable. The compiled shader files in the selected entry are displayed in the list below. The Specify entry can be selected to use a different directory then the ones defined in this option menu.

Chapter 3: The User Interface

12

Path

"Path" allows specification of a shader directory that is not defined in the $DL_SEARCH_PATH environment variable. It is only available when the "Directory" option menu is set to "Specify".

Name Filter Only the filenames that match the expression set in "Name Filter" will be displayed in the shader file list. Wildcard characters such as * can be used in the filter. Refresh Clicking on this button will update the file list to reflect current directory content.

Shader File List This list displays all the shaders in the selected directory that match the name filter. Only shaders of a specific type are listed; this type is defined by the creation mechanism used to invoke the shader selector. For instance, if Create -> Surface Shader was selected in the 3Delight Relationship Editor , only surface shaders will be listed. In some cases it may be allowed to select multiple files in the list. Double clicking on an entry in the list has the same effect as clicking once on the item and then clicking on the Select button. Select Close Use the selected shader file(s) to complete the operation for which the Shader Selector was brought up. Close the Shader Selector , ignoring any selected shader files.

Chapter 3: The User Interface

13

3.4 The Add / Remove Attributes Window


Several nodes in 3Delight for Maya may have a varying number of attributes. Having only the needed attributes reduces clutter in the Attribute Editor . For some types of node, this also allows a given node to inherit attribute values from parent nodes. The Add / Remove Attributes Windows is handy to do multiple attribute addition or removal. This dialog is brought up by Left-clicking on the Add / Remove Attributes button displayed in the Attribute Editor for relevant 3Delight For Maya nodes.

Figure 3.10: The Add / Remove Attributes Window

Chapter 3: The User Interface

14

The name of the node on which the attribute addition or removal will occur is displayed that the top of the window. The dialog will remain tied to that node until either the node is deleted or the Add / Remove Attributes button of a different node is clicked. The dialog is splitted in two sections: Attribute Groups This section contains a list of attribute categories. Marking an attribute category with a check mark will add all missing attributes from that category to the node. Removing the check mark from an attribute category will delete all attributes from that category. Attributes This section displays all available attributes, grouped by category. It is possible to cherry-pick attributes since each one has its own checkbox. The first checkbox of a category is a shortcut to add or remove all attributes from that category, exactly like the related checkbox in the "Attribute Groups" section. For instance, clicking in the "Area Light" checkbox of the "Attribute Groups" section will have the same effect as clicking in the "All Area Light Attributes" checkbox in the "Area Light" subsection of "Attributes".

Chapter 3: The User Interface

15

3.5 The Geometry Attribute Node


3.5.1 Overview The Geometry Attribute Node is used to specify various parameters for a given object, such as the lights to use to light the attached objects, visibility to ray traced rays, and various RenderMan related attributes. Geometry attribute nodes are created and assigned inside the Shader Assignment Panel ; refer to Section 3.2 [The Assignment Panel], page 9.

Figure 3.11: An empty Geometry Atrtibute Node When a geometry attribute node is first created, it contains no attributes at all. It is an empty container where one can add just the relevant attributes. This avoids cluttering the UI and allows attribute inheritance. Attributes can be added and removed by using the Add / Remove Attributes button. Left-Click on this button brings up the Add / Remove Attributes Window , which is better suited for multiple attribute addition or removal (see Section 3.4 [The Add / Remove Attributes Window], page 13). Right-Click on the Add / Remove Attributes button offers the same functionality through popup menus, which are more convenient when only one attribtue or attribute group needs to be added or removed. Some of the attributes available in the Geometry Attribute Node clash with the Maya Render Stats attributes. The attributes defined in a Geometry Attribute Node attached to an object will override the related Maya Render Stat attribute. Refer to Section 5.4.1 [Maya Render Stats and Geometry Attribute Nodes], page 123 for more details.

3.5.2 Attribute Inheritance Attributes contained in a given geometry attribute node can be inherited in two ways: from one scenes parent transform node (group) to all its descendants, and through traversal of connections made on geometry attributes nodes altParent attributes.

3.5.2.1 Scene Hierarchy Attribute Inheritance It is possible to attach an attribute node to a transform node; its attributes will be inherited by all its children nodes. Attributes closer to an object have higher precedence (an attribute node can prevent inheriting its parents attributes if needed). As an example:

Chapter 3: The User Interface

16

--waterfront <-------- RayTraceVisibilityAttrs |--rocks <-------- DisplacementAttrs | |--rock1 | |--rock2 | |--rock3 | |--trees | |--tree1 | |--tree2 <--- InvisibleInReflectionsAttrs In this scene, there is an attribute node named "RayTraceVisibilityAttrs" that contains required attributes to make the objects visible to specular rays (like reflections) and transmission rays (shadow rays). It is attached to the "waterfront" node, so all objects under it will be visible in reflections and cast and receive raytraced shadows. The rocks share a displacement shader, so the "DisplacementAttrs" attribute node is used to specify their displacement bound. It is connected to the "rocks" transform. Each rock object inherits the attributes from both "DisplacementAttrs" and "RayTraceVisibilityAttrs". Finally, it appears that the "tree2" object does not need to be visible in reflections. To adjust this, it gets assigned a "InvisbleInReflectionsAttrs" attribute node, in which the specular rays visibility is set to "invisible". This overrides the specular rays visibility inherited from the "RayTraceVisibilityAttrs". The model will still be visible to transmission rays, as this attribute (also inherited from "RayTraceVisibilityAttrs") is not overridden. 3.5.2.2 Custom Hierarchy Attribute Inheritance Sometimes the scene is structured in such a way that logical top-down attribute inheritance is not possible or complicated. For these particular cases one can create connections between attribute nodes, using the "alternate parent" plug, to define their hierarchical relationship. Attribute nodes connected this way have higher precedence than the scene parents attributes. Here is a variation of the previous sample scene: --BgdSet |--rocks <-------- DisplacementAttrs <-------+ | |--rock1 | | |--rock2 | | |--rock3 | | | |--trees <-------- RayTraceVisibilityAttrs --+ | |--tree1 | |--tree2 | |-flowers |-grass |-waterSurface The objects under the "flowers" and "grass" groups must not be visible to the ray tracer at all. One way to recreate the effects of the previous setup would be: 1. Create the same geometry attribute nodes "RayTraceVisibilityAttrs", "DisplacementAttrs" as in the previous example.

Chapter 3: The User Interface

17

2. All objects under the "rocks" group still need their displacement attributes, so the "DisplacementAttrs" node is added to "rocks". 3. It would be handy to have the trees and the rocks share the same ray tracing attributes, so that one can turn the reflections on or off for everything using a single attribute. For the trees, its easy: attach the "RayTraceVisibilityAttrs" directly to the "trees" group. 4. Now, the "rocks" groups already have the "DisplacementAttrs" node attached to them so it is impossible attach the "RayTtraceVisibilityAttrs" to that node. However, it is possible to define an alternate parent from which inherit attributes simply by creating a connection between the nodes "altParent" plugs. When creating connections with "altParent" plugs, the direction of the connection is out from the parent, and in to the child. A given geometry attribute node can be the the parent of several other children geometry attribute nodes. It is generally best to use geometry attributes nodes that are not directly attached to a scene object as alternate parents. One way to create and edit them is through the 3Delight Relationship Editor . It is possible to mix both the scene inheritance and the "altParent" connections inheritance. For instance, if a new "Shading Rate" attribute is created at the root of the scene, all objects under it -including "rocks"- would inherit it. Note that combining both "altParent" and scene structure inheritance can potentially complicate things and make scene structure less maintainable. 3.5.2.3 Inheritance Precedence List The attribute nodes priority is as follows, starting with the higher priority attributes nodes: 1. If one is defined, the collections override attributes node. 2. If there is an override attribute node defined and it has a geometry attributes node connected to its altParent plug, that later node is outputted; its altParent plug is then checked for a connection to a geometry attributes node and if one is found, it is outputted, and so on. 3. If one is defined, the objects collection attributes node; 4. If the object has a collection attributes node defined and it has a geometry attributes node connected to its altParent plug, that later node is outputted; its altParent plug is then checked for a connection to a geometry attributes node and if one is found, it is outputted, and so on. 5. If one is defined, the objects attributes node. 6. If the object has an attributes node defined and it has a geometry attributes node connected to its altParent plug, that later node is outputted; its altParent plug is then checked for a connection to a geometry attributes node and if one is found, it is outputted, and so on. 7. If the objects highest priority attribute (override, collection and object, in that order) has its Inherit DAG Parent Attributes toggle set to off, the geometry attributes output process ends. If the toggle is on or if no Inherit DAG Parent Attributes is found, the above six steps are repeated on the objects immediate DAG parent.

The following sections details every attribute in their respective categories. While it is possible to add a entire attribute category to an attribute node, there is nothing wrong with adding only the needed attributes in a category. 3.5.3 General This panel controls the color, opacity and sidedness of attached object.

Chapter 3: The User Interface

18

Figure 3.12: The General attribute panel

Color

This attribute specifies the surface color (Cs) of the attached objects. This color can be overridden by the attached shader; shaders translated from Maya Hypershade shaders will usually multiply their base shader color with Cs. This means that a single hypershade shader can have a white base color and be assigned to multiple objects; each object can defined their own surface color value so they all have the same shading look but a unique color. Photons will only use this color and ignore both types of shaders. The default color color is white (1.0, 1.0, 1.0).

Opacity

This attribute specifies the surface opacity (Os) of the attached objects. Darker values are less opaque. This color can be overridden by the attached shader. The default opacity is completely opaque (1.0, 1.0, 1.0).

Double Sided This attribute controls if only the objects front side (the side pointed by the direction of the normal) is visible, or if both the front and back sides are visible. When this attribute is on, the object is visible on both sides. This attribute is on by default.

Double Shaded When this attribute is on, each surface is shaded twice: once with the normals in their usual direction and once with the normals reversed. This allows thickness to be given to a surface with displacement or to avoid shading artifacts where a transparent surface changes orientation. This attribute is off by default.

Reverse Orientation If the surface is one sided and this attribute is turned on, its orientation will be reversed. This attribute is off by default and has no effect when the "Double Sided" attribute is turned on.

3.5.4 Quality This panel controls how finely this geometry will be tessellated and how surface derivatives will be computed.

Chapter 3: The User Interface

19

Figure 3.13: The Quality attribute panel

Shading Rate Multiplier The shading rate used to shade objects attached to this node is determined by multiplying the value of this attribute with the shading rate specified in the Quality panel of the render pass (see Section 3.9.3.3 [Render Pass Quality], page 55). For example, if this value is set to 2.0 and the shading rate in the render pass is 1.5 then the effective shading rate for this object will be 3.0. The default value for this attribute is 1.0.

Motion Factor This attribute specifies how the shading rate of an object increases when moving rapidly. Since a fast moving object will be heavily blurred, it makes sense to use a coarser shading rate in that case. The same can be said about an object that is out of focus due to the chosen depth of field. The default setting of 1.0 is is a good quality versus performance compromise.

Focus Factor This attribute specifies how the shading rate increase as an object gets blurred by depth of field. The default setting of 1.0 is a good quality versus performance compromise.

Smooth Derivatives Enables smooth derivatives. When enabled, smooth derivatives helps reducing shading artifacts. Issues may arise with excessively detailed geometry that is using a texture with not enough overpaint zone for proper filtering; it this case, this attribute sahould be turned off. It is enabled by default.

Chapter 3: The User Interface

20

3.5.5 Visibility

Figure 3.14: The Visibility attribute panel Matte Object When this attribute is on, the attached objects act as a matte holdout. Matte objects are not shaded and behave as if they were completely opaque, hiding any objects behind them, but appear in the image as transparent black pixels. This attribute is off by default. Composite Objects Behind When this attribute is off, the attached objects, even if semi or completely transparent, will mask all objects behind them. This attribute is on by default. Visible To Camera If this attribute is turned on, the attached objects is visible to the camera. By default, this attribute is on. Note that turning this attribute off will simply make the attached objects invisible to the camera; they will still be exported to RIB. Transmission Rays (shadows) This attribute specifies the visibility of the object relative to ray traced shadow rays, or transmission rays. Possible values are: Invisible The object is not visible to shadow rays. This is the most efficient option, but of course no ray traced shadows are possible. This is the default value. Opaque The object is visible to shadow rays and is considered to be completely opaque. This option gives good performance since no shader evaluation is necessary for shadow rays. This value should be preferred when ray traced shadows are desired, the object is completely opaque and the surface shader does no displacement or opacity computation.

Primitive Opacity The object is visible to shadow rays and its opacity is constant and defined by the "Opacity" attribute in the geometry attribute node (see [Opacity], page 18). This is also an efficient option and should be preferred when the surface shader does no displacement or opacity computation. Shader Opacity The most expensive shadow mode: the renderer will evaluate surfaces opacity using the attached shader. This option is recommended only

Chapter 3: The User Interface

21

when when the objects opacity is not constant over their surface (an example would be an opacity modulated by a texture map), or when the surface shader displaces the surface. Specular Rays (reflections) This attribute specifies the visibility of the object relative to specular ray traced rays (both reflections and refractions). Objects shaded using Mayas Hypershade can further refine if they are visible in reflections and refractions using the relevant "render stats"; see Section 5.4.1 [Maya Render Stats and Geometry Attribute Nodes], page 123. Possible values are: Invisible The object is not visible to ray traced specular rays. This is the most efficient option, but of course no ray traced reflections or refractions are possible. This is the default value. Opaque The object is visible to ray traced specular rays; it is considered fully opaque and white.

Primitive Color The object is visible to ray traced specular rays; these rays will be affected by the objects "Color" and "Opacity" attributes in a geometry attribute node (see [Color], page 18 and [Opacity], page 18). This is also an efficient option and should be preferred when reflection and refraction can be approximated by a constant color and opacity. Shader Color The most expensive shadow mode: the renderer will evaluate surfaces opacity using the attached shader to determine the color and opacity that will affect ray traced specular rays. Note that using this value will produce identical results to what the outdated ""Visible to Reflections"" attribute was produced when it was turned on. Diffuse Rays (occlusion) This attribute specifies the visibility of the object relative to diffuse ray traced rays, which are used to compute occlusion and other effects. Possible values are: Invisible The object is not visible to diffuse ray. This is the most efficient option, but of course no occlusion computation is possible. This is the default value. Opaque The object is visible to ray traced diffuse rays; it is considered fully opaque and white.

Primitive Color & Opacity The object is visible to ray traced diffuse rays; these rays will be affected by the objects "Color" and "Opacity" attributes in a geometry attribute node (see [Color], page 18 and [Opacity], page 18). This is also an efficient option and should be preferred when reflection and refraction can be approximated by a constant color and opacity. Shader Color & Opacity The most expensive shadow mode: the renderer will evaluate surfaces opacity using the attached shader to determine the color and opacity that will affect ray traced diffuse rays.

Chapter 3: The User Interface

22

Visible To Photons When this attribute is on, the attached objects surfaces will interact with photons according to the selected "Shading Model" (see Section 3.5.9 [Geometry Attribute Node Global Illumination], page 24). This attribute is on by default. 3.5.6 Lighting

Figure 3.15: The Lighting attribute panel Illumination From This attribute controls how the attached objects are illuminated. When <light linker> is selected, the objects are illuminated by lights linked to them. When Maya object sets are defined in the scene, they will also be listed in this option menu; assigning this attribute to a set will illuminate attached objects with the light sources contained in the set. By default, this attribute is set to <light linker>. 3.5.7 Raytracing

Figure 3.16: The Raytracing attribute panel Raytrace Motion Blur This attribute enables or disables motion blur for traced rays. For example, a moving object as seen in a mirror will only show motion blur if this option is enabled. By default, this attribute is off. Raytrace Displacements When this attribute is checked, it enables ray tracing of true geometric displacements. The default is to ray-trace displacements as bump maps (a displaced surface appears bump mapped in a mirror reflection). Enabling this feature makes ray tracing slower and forces 3delight to use more memory so this option should be used with care. Raytrace Bias Specifies a bias for rays starting point to avoid potentially erroneous intersections with emitting surface. The default value is 0.01. Trace subset This attribute is used to select one or several Maya object sets that is used to narrow down what objects are visible to ray traced rays. This feature can be useful when a scene is using referenced objects that already have their "Transmission" attribute

Chapter 3: The User Interface

23

correctly set, but only part of these objects are needed to be visible to ray traced rays in this specific scene. The "Trace subset" option menu has the following values available: All Objects All objects whose "Transmission" and "Visible To Reflections" attributes have been properly set will be visible to ray traced rays. This is the default. Objects in selected sets Only objects in the selected Maya sets and whose "Transmission" and "Visible To Reflections" attributes have been properly set will be visible to ray traced rays. The "Select Sets" button can be used to select the desired Maya sets to include. Objects not in selected sets Only objects that are not in the selected Maya sets and whose "Transmission" and "Visible To Reflections" attributes have been properly set will be visible to ray traced rays. The "Select Sets" button can be used to select the desired Maya sets to exclude. 3.5.8 Motion Blur This panel controls how the attached object reacts to motion blur.

Figure 3.17: The Motion Blur attribute panel Transformation Blur This attribute controls if the attached objects are subject to transformation blur. Refer to Section 3.9.3.5 [Render Pass Motion Blur], page 57 for more information about motion blur. The available values are: Inherit The attached objects will be transformation blurred only if the "Transformation Blur" attribute is turned on in the render pass node used for rendering. This is the default. The attached objects will be transformation blurred, regardless of the "Transformation Blur" setting in the render pass. The attached objects will not be transformation blurred, regardless of the "Transformation Blur" setting in the render pass.

On Off

Deformation Blur This attribute controls if the attached objects are subject to deformation blur. Refer to Section 3.9.3.5 [Render Pass Motion Blur], page 57 for more information about motion blur. The available values are: Inherit The attached objects will be deformation blurred only if the "Deformation Blur" attribute is turned on in the render pass node used for rendering. This is the default.

Chapter 3: The User Interface

24

On Off

The attached objects will be deformation blurred, regardless of the "Deformation Blur" setting in the render pass. The attached objects will not be deformation blurred, regardless of the "Deformation Blur" setting in the render pass.

3.5.9 Global Illumination

Figure 3.18: The Global Illumination Attribute Panel Photon Color This attribute defines how the photons will receive their color and opacity. The available choices are: Primitive Color & Opacity The photons get their color from Cs and their opacity from Os. It is possible to define these two attributes using the "Color" and "Opacity" attributes, respectively (see [Color], page 18 and [Opacity], page 18). This value should be preferred as it is faster to compute. Shader The photons get their color and opacity from the attached surface shader. This is the default.

Photon Estimator The number of photons that shading operations relying on photons will use. The default number of photons is 50. Shading Model This attribute determines how the attached objects surfaces will interact with photons. Note that for photons to interact with surfaces you have to make them visible to photons (they are by default) in the visibility attribute (see Section 3.5.5 [Geometry Attribute Node Visibility], page 20). The available shading models are: Transparent There will be no interactions with photons. This is the default value. Matte Chrome Glass Water This value generates a diffuse reflection and is fine for color bleeding effects. This value reflects all photons like a mirror. It also generate caustics. This value will partly reflect photons, partly refract them. It also generate caustics. This value is similar to Glass but has a different refraction index.

Chapter 3: The User Interface

25

For the Chrome and Matte models, reflected photons are colored by the Color attribute (see [Color], page 18). For the Glass and Water models, only transmitted photons are colored.

Irradiance Shading Rate This attribute specifies the shading rate that should be used when computing occlusion and indirect diffuse. The default shading rate is 4.0.

Irradiance Max Error This attribute specifies the maximum difference that defines if an occlusion or indirect diffuse computation can be interpolated or if it needs to be traced. For instance, using a high value for "irradiance shading rate", a reasonable value for "irradiance max error" and a high enough number of samples (set as a shader parameter) can allow the renderer to interpolate occlusion values for surfaces where the occlusion does not vary a lot. Carefully selecting values for these three settings can significantly improve rendering speed for occlusion and indirect diffuse computations. The default maximum error value is 0.1.

3.5.10 Displacement

Figure 3.19: The Displacement attribute panel

Displacement Bound This attribute specifies the displacement bound for the attached objects, which is the amount by which the bounding box of each object should be increased to include the displaced surfaces. Failure to provide the renderer with a decent value will result in shading artifacts (when the value is too small) or inefficiency (when the value is too large). When the displacement bound is too small, 3Delight issues an error message stating by how much the value is too small; it is recommended to use this information to assign a reasonable bound. The default value is 0.0, which is fine only if the surfaces are not displaced.

Bound Space This attribute defines in which space the "Displacement Bound" parameter is defined. The default space is shader.

3.5.11 Culling And Dicing For more advanced users, this panel controls some more advanced visibility culling and dicing parameters.

Chapter 3: The User Interface

26

Figure 3.20: The Culling And Dicing attribute panel Cull Hidden Surfaces When this attribute is off, the attached objects that are in the viewing frustum but completely hidden (behind another object) will still be rendered and shaded. When this attribute is on, hidden objects will be dismissed. This is the default. The only reason to this feature off is when baking expensive shaders. Cull Backfacing Surfaces When this attribute is off, the one-sided attached objects that are in the viewing frustum and backfacing will still be rendered and shaded. When this attribute is on, one-sided, backfacing objects will be dismissed. This is the default. The only reason to this feature off is when baking expensive shaders. Raster Oriented Dicing This attributes enables enables or disables raster oriented tessellation. When tessellation is raster oriented, 3delight considers the object as viewed from the camera to compute the tessellation factors. This means that objects (or parts of objects) facing the camera will be tessellated more densely than tilted objects. By default, this attribute is on. A good reason to disable this feature is when displaced surfaces loose detail at object edges. For the more advanced users only. Dicing Camera This attribute specifies the camera to be used to tessellate the attached objects. Micropolygons in U This attribute forces 3delight to use a certain number of micro-polygons on the width of each curve. The default value is 1, which is the same as disabling "Hair Dicing". 3.5.12 Geometry The attributes in this category and its subcategories have a direct effect on how the objects in Maya are translated to RenderMan primitives. For this reason, they have no effect on the geometry imported in the scene by a RIB Archive Node, and they will not be affected by the "Ignored Archived Geometry Attributes"

Figure 3.21: The Geometry attribute panel

Chapter 3: The User Interface

27

Output Geometry When this attribute is off, the attributes of the "Geometry Attribute Node" will be output but not the geometry of the objects that are attached to it. By default, this attribute is on. Output Faceid Turning on this attribute will produce a primitive variable named "faceid" that define one id number per face of the primitive. This variable can be used with the Edge Detection feature of a display to produce a wireframe outline of the primitive simply by setting the "Detected Variable" attribute to float faceid. See [Edge Detection], page 68 for details. 3.5.12.1 Polygons

Figure 3.22: The Polygons Geometry attribute panel Use Current UVset When this attribute is on, the current UV set is exported as the s, t primitive variables; no other UV set will be exported. When it is off, the default UV set will be exported as s, t primitive variables; extra UV sets are exported as an array of u values named uvsets_u and v values named uvsets_v; the set names are exported in a uvsets_name string array. This attribute is off by default, and is ignored when "Output All UVsets" is turned on. Output All UVsets When this attribute is turned on, the UV sets are output as follows: The default UV set is output as s, t primitive variables.

Chapter 3: The User Interface

28

Each other UV set is output as a float array bearing the same name as the UV set being exported. When this attribute is off, the behaviour defined by the "Use Current UVset" attribute prevails. This attribute is off by default. Output Vertex Color When this attribute is checked and the attached object is a polygon mesh, any color sets it contains that defines per-vertex color will be exported to rendering. Each color set will be exported as a color array bearing the same name as the color set. Additionally, a float array is also exported; its name consists of the color set name with alpha appended to it. It contains 0s for vertices where the color set is not defined, and 1s were it is defined. This attribute is off by default. See Section 5.4.3 [Exporting Per-Vertex Attributes on Polygon Meshes], page 125 for an example on how to use this. Poly As Subd When this attribute is checked, 3Delight for Maya will consider this polygonal geometry as being a smooth subdivision surface. If this attribute is off, the polygon mesh will be considered as just that, a polygon mesh. This attribute is ignored when the attached object is not a polygonal geometry, and it is off by default. Smooth UVs High quality rendering of textured subdivision surfaces cannot be accomplished without properly interpolated texture coordinates. This control enables precisely that. The following three values are offered: No No smoothing is performed. This will not lead to high quality results but has the advantage of not stretching texture coordinates over face boundaries. Will ask 3Delight to perform some work to minimize UV distortion on the surface. Seams are left untouched. This is the default. Will use more advanced algorithms to minimize distortion of UV coordinates at texture seams. This will usually yield better results but might cause some textures to look misplaced. It is best to try it to see what it does.

Partial Full

note: This also controls the interpolation of vertex colors and other quantities that are attached to geometrys vertices. Export Hard Edges (for Poly as Subd) If the attached object is made of polygonal geometry that contains hard edges, setting this attribute to on will export the hard edges. The effect of this attribute is similar to the "Keep Hard Edges" attribute of a "Maya Subdiv Proxy" node. This attribute is ignored if the "Poly As Subd" attribute is turned off (it is off by default). Export Creases (for Poly As Subd) If the attached object is made of polygonal geometry and is connected to a subdivision proxy containing creases, turning this attribute on will export creases (creases on edges and vertices are exported). This attribute is ignored if the "Poly As Subd" is turned off (it is off by default). Interpolate Boundary When this attribute is on, boundary edges and vertices are infinitely sharp. This attribute is on by default.

Chapter 3: The User Interface

29

Round Edges When this attribute is on, it will round the edges of the attached polygon mesh. The resulting primitive is a subdivision surface, regardless of the value of any "Poly As Subd" attribute. The rounding is controlled by a sharpness range and an angle range. The sharpness value of a given angle is determined by a linear interpolation between the start and end sharpness values. For instance, if the "Start Angle" is set to 0 while the "End Angle" is set to 90, and the "Start Sharpness" is set to 0.3 while the "End Sharpness" is set to 0.9, an angle of 45 degrees would be rounded with a sharpness of 0.6. Note that the angle between faces sharing an edge that has been tagged as smooth will be considered as having an angle of 0. Start Angle This attribute defines the range of angles that will undergo edge rounding, along with the "End Angle" attribute. It corresponds to the angle between the normals of two adjacent faces on the polygon mesh, in degrees. Start Sharpness This attribute defines the sharpness value associated with the "Start Angle". Valid values are between 0 and 1, higher values producing sharper edges. End Angle This attribute defines the range of angles that will undergo edge rounding, along with the "Start Angle" attribute. It corresponds to the angle between the normals of two adjacent faces on the polygon mesh, in degrees. End Sharpness This attribute defines the sharpness value associated with the "End Angle". Valid values are between 0 and 1, higher values producing sharper edges. 3.5.12.2 Polygons Wireframe

Figure 3.23: The Polygons Geometry Wireframe attribute panel The attributes in this panel can be used to generate a wireframe on polygon mesh objects. The edge detection feature of a display can be used to render unshaded wireframes instead; see [Edge Detection], page 68 for details. Output Wireframe When this attribute is on, curve primitives that follow the polygon edges are output along with the mesh. These new primitives are shaded like the polygon mesh. This attribute is off by default. Raster Space Wireframe This attribute determines how the "Wireframe Width" attribute is interpreted. When "Raster Space Wireframe" is on, the width is expressed in pixels. When it is off, the width is expressed in object space. In other words, turning on this attribute means that the wireframe width will remain constant even when the object or the camera is moving. This attribute is on by default.

Chapter 3: The User Interface

30

Wireframe Width This attribute defines the width or the wireframe. Its value is interpreted in pixels or in object space units depending on what the "Raster Space Wireframe" attribute is set to. This attribute is set to 1.0 by default.

3.5.12.3 NURBS

Figure 3.24: The NURBS Geometry attribute panel

Normalize Nurbs Basis When this attribute is on, the UV range of any attached NURBS patch will be brought back to a range between 0 and 1. This attribute is on by default.

3.5.12.4 Curves This panel contains options to control Maya Curves rendering.

Figure 3.25: The Curves Geometry attribute panel

Output Maya Curves When checked, render Maya curves using 3delight. This is only meaningful when this attribute is attached to a Maya curves geometry.

Start Width End Width If "Output Maya Curves" is checked, specifies the width of the curves at their roots and tips, respectively.

Chapter 3: The User Interface

31

3.5.12.5 Particles

Figure 3.26: The Particles Geometry attribute panel Particle Render Type This attribute can be used to override the render type set in the particle shape. Available values are: Inherit Points Spheres Sprites The render type set in the particle shape will be used. This is the default. The particle system will be rendered as points, overriding the render type set in the attached particle shape. The particle system will be rendered as spheres, overriding the render type set in the attached particle shape. The particle system will be rendered as sprites, overriding the render type set in the attached particle shape.

Chapter 3: The User Interface

32

Streak Blobby Disk

The particle system will be rendered as streaks, overriding the render type set in the attached particle shape. The particle system will be rendered as blobbies, overriding the render type set in the attached particle shape. The particle system will be rendered as disks, overriding the render type set in the attached particle shape.

Particle Size Space This attribute is used to specify the space in which the size of the particles is expressed. Available values are: Raster Space The particle size will be taken as pixels. The particle size will remain the same, even if the distance between the camera and the particle system changes. Object Space The particle size is expressed in the object space. Scale transforms affecting the particle system will influence the particle size. This is the default. World Space The particle size is expressed in world space. Particle Size Override When this attribute exists, it defines the size of the particles, overriding what is defined in the attached particle system shape. This can be useful when the particle size needs to be expressed in object space or world space, since the particle shape "Point Size" attribute has a minimum of 1, which can be too large for size in object or world space. Paticle Size Scale This attribute specifies a scaling facotr that is applied to per particle or per system size value. The default scale factor is 1.0. Render As Volumes In DSMs Particles rendered into a deep shadow map will appear as flat objects. Thus, when viewed from a different location than the light, the half closer to the light will not be shadowed while the other half will have self-shadowing. When this attribute is on, particles will be exported with a thickness equivalent to the width, height or radius or the particle, which should generally be enough to work around the shadowing problem. Note that this only has effect when rendering deep shadow maps, and only when the "Volume Interpretation" attribute is set to continuous. See [Light Attribute Volume Interpretation], page 45. Render nCloth as Particles When this attribute is on, any attached nCloth shape will be rendered as a particle system. The nCloth shapes "Thickness" and "Self Collide Width Scale" attributes are used to compute the particle size. This attribute is off by default. Per Particle Color as Surface Color When this attribute is on, the "rgbPP" particle system attribute will be output in the surface color primitive variable (Cs). Turning off this attribute will output the "rgbPP" data as a rgbPP primitive variable. See [Color], page 18 for more details on how Cs is used with hypershade shaders and photons. This attribute is off by default.

Chapter 3: The User Interface

33

Typical Particle System Attributes / variables This panel offers the possibility of exporting particle attributes as primitive parameters, giving the opportunity to attached RenderMan shaders to use that data for their computations. The selected attributes will be exported given that they have been previously defined for the particle system. Here is an overview on how to use the content of this panel:

The left panel lists usual particle attributes. Select the ones that are to be exported and click the "Add >>" button.

The right panel lists attributes that will be exported. Selects the ones that are not required to be exported anymore and click the "<< Remove" button.

Additionally, the text field at the bottom of the panel can be used to enter custom particle attributes. Several attributes can be listed, as long as they are separated by spaces.

This panel is irrelevant if the attached object is not a particle shape or a nCloth shape. Refer to Section 5.4.4 [Exporting Particle Attributes], page 127 for an example on how to use this. By default, all particle systems are exported with the following primitive variables:

colorRed

colorGreen colorBlue rgbPP

opacity

opacityPP incandescence incandescencePP

Chapter 3: The User Interface

34

3.5.12.6 Maya Fur

Figure 3.27: The Maya Fur Geometry attribute panel This panel contains attributes relevant to Maya Fur rendering. They are effective when attached to a FurFeedback node. Clumping Frequency This attribute acts as an override for the value specified in the associated Fur Description node. It can be set to a much larger value than the hardcoded maximum of 100 for the Fur Desccriptions clumping frequency. This attribute is set to 0 by default. Output Surface Opacity When this attribute is on, a variable containing surface opacity values (Os) will be defined in the fur primitive. One value is output per hair vertex. This attribute is on by default. Output Surface Color When this attribute is on, a variable containing per vertex surface color values (Cs) will be defined in the fur primitive. One value is output per hair vertex. This attribute is on by default. Output Base Color When this attribute is on, a uniform color basecolor variable containing the hair strands base color values will be defined in the fur primitive. The base color values are defined in the associated fur description node. One value is output per hair. This attribute is on by default.

Chapter 3: The User Interface

35

Output Tip Color When this attribute is on, a uniform color tipcolor variable containing the hair strands tip color values will be defined in the fur primitive. The tip color values are defined in the associated fur description node. One value is output per hair. This attribute is on by default. Output Base Ambient Color When this attribute is on, a uniform color baseambientcolor variable containing the hair strands base ambient color values will be defined in the fur primitive. The base ambient color values are defined in the associated fur description node. One value is output per hair. This attribute is on by default. Output Tip Ambient Color When this attribute is on, a uniform color tipambientcolor variable containing the hair strands tip color values will be defined in the fur primitive. The tip ambient color values are defined in the associated fur description node. One value is output per hair. This attribute is on by default. Output Specular Color When this attribute is on, a uniform color specularcolor variable containing the hair strands specular color values will be defined in the fur primitive. The specular color values are defined in the associated fur description node. One value is output per hair. This attribute is on by default. Output Specular Sharpness When this attribute is on, a uniform float sharpness variable containing the hair strands specular sharpness values will be defined in the fur primitive. The specular sharpness values are defined in the associated fur description node. One value is output per hair. This attribute is on by default. Output Surface Point When this attribute is on, a uniform point surfacepoint variable containing the surface point where the hair is rooted will be defined in the fur primitive. The point is expressed in world space. One value is output per hair. This attribute is off by default. Output Surface Normal When this attribute is on, a uniform normal surfacenormal variable containing the surface normal where the hair is rooted will be defined in the fur primitive. The normal is expressed in world space. One value is output per hair. This attribute is on by default. Output Surface U When this attribute is on, a uniform float surfaceu variable containing the surface U coordinate where the hair is rooted will be defined in the fur primitive. One value is output per hair. This attribute is off by default. Output Surface V When this attribute is on, a uniform float surfacev variable containing the surface V coordinate where the hair is rooted will be defined in the fur primitive. One value is output per hair. This attribute is off by default. Output Hair Id When this attribute is on, a uniform float hairid variable containing a unique hair identifier will be defined in the fur primitive. One value is output per hair. The identifier will be valid across multiple frames. This attribute is off by default.

Chapter 3: The User Interface

36

Output Hair Length When this attribute is on, a uniform float hairlength variable containing an approximation of the hairs length will be defined in the fur primitive. One value is output per hair. This attribute is off by default.

Output Hair Tip Point When this attribute is on, a uniform point hairtippoint variable containing the point of hair strand tip will be defined in the fur primitive. One value is output per hair. The point is expressed in world space. This attribute is off by default.

Output Clump Id When this attribute is on, a uniform float clumpid variable containing an identifier of the clump that attracts the hair strand will be defined in the fur primitive. One value is output per hair. The identifier remains valid across frames. When clumping is disabled, all clump identifiers will be set to 0. This attribute is off by default.

3.5.13 Reference Geometry If the Maya primitive has an attached reference geometry then 3Delight For Maya can output it along with the rendered object. Reference geometry can be accessed in the shaders using the Pref and NRef variables.

Figure 3.28: The Reference Geometry panel

Output Pref When this attribute is on, the geometry passed to 3delight will also contain reference geometry that represents geometry before any deformation has been applied to it. This geometry is accessible to any shader that declares the varying point Pref parameter. This attribute is off by default.

Output Nref If checked, geometry passed to 3delight will also contain reference normals ; those are normals before any deformation has been applied. These undeformed normals are accessible to shaders that declare the varying normal Nref parameter. This attribute is off by default.

Chapter 3: The User Interface

37

3.5.14 Subsurface Scattering

Figure 3.29: The Subsurface Scattering panel The following attributes are needed for subsurface scattering simulations. Note that the reduced absorption and reduced scattering coefficients and refraction index are usually obtained from specialized literature. A reference paper that contains many parameters (such as skin) directly usable in 3Delight for Maya : Henrik Wann Jensen, Stephen R. Marschner, Marc Levoy and Pat Hanrahan. A Practical Model for Subsurface Light Transport. ACM Transactions on Graphics, pp 511-518, August 2001 (Proceedings of SIGGRAPH 2001). Subsurface Group This attribute specifies a group name. Objects that have the same group name will belong to the same subsurface group. If the object that will undergo the subsurface simulation consists of several separate models, each of these models should be attached to a "Geometry Attribute Node" and this attribute should be assigned the same value in all of these nodes. Even if a model is closed and thus would be alone in its group, it is still required to specify a group name here. This attribute is empty by default. Leaving this attribute empty effectively turns off subsurface scattering. Reduced Absorption This attribute specifies the reduced absorption coefficients. Its default value is 0.002 0.004 0.007. Reduced Scattering This attribute specified the reduced scattering coefficients. Its default value is 2.190 2.620 3.00. Refraction Index This attribute specifies the refraction index of the simulated material. It is set to 1.5 by default. Coefficient Scale The values for subsurface scattering use a millimetre scale. This attribute specifies the scale to apply these parameters when the objects are not exported in millimetres. The default value for this attribute is 0.1, since 3Delight for Maya exports the objects in centimetres. Subsurface Shading Rate This attribute specifies the shading rate used for the subsurface simulation. Its default value is 1.0.

Chapter 3: The User Interface

38

3.5.15 MEL Scripts The following attributes allow the user to call custom MEL scripts before and after the attached objects geometry is output. Two variables are automatically defined in the context of these scripts execution: string $render_pass This variable is assigned the current render pass node name. string $shape_path This variable is assigned the current object shape path. string $attribs_node This variable is assigned the current geometry attribute node name.

Figure 3.30: The MEL Scripts panel Pre Geo MEL Script This attribute specify a MEL script that will be executed before the geometry is exported. More precisely, this script is called after all attributes of this "Geometry Attribute Node" are output and right before the geometry is instantiated. If this attribute is attached to several objects, it will be called once for each object. This attribute is empty by default. Post Geo MEL Script This attribute specify a MEL script that will be executed after the geometry is exported. More precisely, this script is called right after the geometry is instantiated. If this attribute is attached to several objects, it will be called once for each object. This attribute is empty by default.

3.5.16 RIB Archive The following attributes1 allow the user to request that specific portions of an archive should be ignored. These attributes are meant to be attached to a "RIB archive node". For instance, they could be used to allow the same RIB archive to be used for a beauty pass (using the various hypershade shaders it contains) and in an occlusion pass, where the "Ignore Archived Surface Shaders" attribute would be turned on and an occlusion shader would be attached to the "RIB archive node". Refer to Section 3.11 [The RIB Archive Node], page 91.

not available in the 3Delight for Maya package

Chapter 3: The User Interface

39

Figure 3.31: The RIB Archive panel Ignore Archived Light Sources When this attribute is turned on, any light source in the archive will be disregarded. This attributes is off by default. Ignore Archived Light Links When this attribute is on, the light linking information (illuminate statements) in the archive will not be considered. This attribute is off by default. Ignore Archived Transforms Turning on this attribute will ignore any transforms stored in the archive. This attribute is off by default. Ignore Archived Surface Shaders When this attribute is on, any surface shaders contained in the archive will be ignored. This attribute is off by default. Ignore Archived Displacement Shaders Turning on this attribute will disregard all displacement shaders contained in the archive. This attribute is off by default. Ignore Archived Geometry Attributes This attributes controls if the archived attributes that come from "geometry attribute nodes" are ignored or not. Note that attributes in the Geometry sections of the "geometry attribute node", such as "Poly As Subd" will retain their effect regardless of this attribute. This attribute is off by default. 3.5.17 User Attributes Each Geometry Attribute Node can define as many arbitrary user attributes as needed. For each geometry attribute node, 3Delight for Maya will look for attributes whose name begin with "attribute user ". The older prefix "user " is still supported. This prefix is removed from the name and the attribute is output to RIB as a user attribute, along with its value. For instance, a color float3 attribute named user_colorMultiplier will produce a RiAttribute colorMultiplier. The supported attribute types are: string bool long, long2, long3 float, float2, float3 (color or non-color) double, double2, double3

Chapter 3: The User Interface

40

3.6 The Geometry Modifiers


3.6.1 Overview Some of the attributes available in the "Geometry Attribute Node" affect the way geometric objects are translated into RenderMan primitives. In some cases, it might be desirable to tie these attributes to specific objects, while sharing other attributes across different object types using a single geometry attribute node. For instance, several objects could share the same subsurface attributes by attaching them to a single geometry attribute node, but some of these objects would need to have Poly As Subd attribute on, while others need this attribute to be off. Using the Geometry Modifiers, it is possible to specify directly on the object the attributes that affect how the geometry is output, which can make it easier to share other attributes with common geometry attribute node. The presence of a geometry modifier attribute in an object will override any identical attribute in attached "Geometry Attribute Node". 3.6.2 The 3Delight Geometry Modifiers Menu To add or remove geometry modifiers attributes on an object, that object must be displayed in the Attribute Editor . In the Attribute Editors Attributes menu, a 3Delight Geometry Modifiers submenu will list the available geometry modifiers. The list of modifiers varies based on the type of the node begin displayed in the Attribute Editor ; only relevant attributes are listed. Presence of a given attribute is displayed in the 3Delight Geometry Modifiers submenu by a checkbox or a checker mark next to the attribute name. Selecting a non-checked item will add that attribute to the object, while selecting a checked item will remove that attribute. Selecting the All menu item will add all missing attributes, or remove them all if they were already all present in the object. 3.6.3 Geometry Modifiers Controls Once some geometry modifiers attribute is added to the object, the gadgets to control its value are displayed in a separate 3Delight Geometry Modifiers frame layout, which appears at the bottom of the Attribute Editor . The gadgets displayed there are identical to their "Geometry Attribute Node" counterpart. Please refer to Section 3.5.12 [Geometry Attribute Node Geometry], page 26 for details about the effect of the available geometry modifier attributes.

Chapter 3: The User Interface

41

3.7 The Shading Attributes


3.7.1 Overview 3Delight for Maya offers extra parameters for Hypershade surface shader nodes to control certain aspects of the shading not covered by the nodes regular attributes. These parameters are adjusted using extra shading attributes. Once a shading attribute is added to the object, the gadgets to control its value are displayed in a separate 3Delight Shading Attributes frame layout, which appears at the bottom of the Attribute Editor . 3.7.2 The 3Delight Shading Attributes Menu To add or remove shading attributes on an Hypershade surface shader node, that shader must be displayed in the Attribute Editor . In the Attribute Editors Attributes menu, a 3Delight Shading Attributes submenu will list the available category of attributes. The list of modifiers varies based on the type of the node begin displayed in the Attribute Editor ; only relevant attributes are listed. Presence of a given attribute is displayed in the 3Delight Shading Attributes submenu by a checkbox or a checker mark next to the attribute name. Selecting a non-checked item will add that attribute to the object, while selecting a checked item will remove that attribute. Selecting the All menu item will add all missing attributes, or remove them all if they were already all present in the object. 3.7.3 Reflection Shading Attributes

Figure 3.32: The Reflection shading attributes panel The following attributes are offered for surface shaders that support reflections: Max Distance The maximum distance to search for reflections. Using a value that excludes large portions of the scene that cannot be reflected anyway will improve rendering speed. Samples Blur Number of samples for the reflection. Higher sample counts produce smoother reflections. Angle in radians that define a sampling cone. Larger values prodduce smoother results but may require a higher number of samples.

Noise Amplitude Amplitude of noise applied to the reflection.

Chapter 3: The User Interface

42

Noise Frequency Frequency of noise applied to the reflection.

Chapter 3: The User Interface

43

3.8 The Light Attribute Node

3.8.1 Overview The Light Attribute Node is used to specify parameters that are not contained in the light shader. For instance, several light shaders can use shadow maps; the Light Attribute Node can be used to generate these shadow maps. When there are no light attribute node attached to a light, 3Delight for Maya will do its best to extract relevant parameters from the Maya light node.

Figure 3.33: An empty Light Attribute Node

Light attribute nodes are created empty. Attributes can be added and removed by using the Add / Remove Attributes button. Left-Click on this button brings up the Add / Remove Attributes Window , which is better suited for multiple attribute addition or removal (see Section 3.4 [The Add / Remove Attributes Window], page 13). Right-Click on the Add / Remove Attributes button offers the same functionality through popup menus, which are more convenient when only one attribtue or attribute group needs to be added or removed.

3.8.2 Shadow Maps This panel controls the shadow map generation for the attached light source.

Chapter 3: The User Interface

44

Figure 3.34: The Shadow Maps attribute panel Generate Shadow Maps This attribute toggles on and off the generation of a shadow map for this particular light. It is set to off by default. Note that even if this attribute is on, when the render pass used to render has its "Render Shadow Maps" attribute unchecked, no shadow maps will be rendered. Refer to Section 3.9.3.7 [Render Pass Shadow Maps], page 69. Shadow Map Name This attribute specifies the filename of the shadow map and is empty by default. It can be set to a relative or absolute path and contain tokens, as explained in Section 5.5.4 [File Path Expressions], page 134. It can also be left empty, in which case a shadow map name will be generated using each of the attached light nodes "Shadow Map File Name", "Add Scene Name", "Add Light Name" and "Add Frame Ext" attributes. This name generation will occur regardless of the light nodes "Use Depth Map" or "Disk Based Dmaps" attributes. Using this method (or using the <shape_name> expression), a single "Light Attribute Node" can be attached to several light sources and generate shadow maps for each and everyone of them, as long as they can all share the same parameters except for the file name. It is recommended to turn on the light nodes "Add Frame Ext" attribute if the "Generate First Frame Only" attribute is turned off. Refer to Section 5.5.5 [Automatic File Output Control], page 136. Note that a decent default file name is automatically generated when the "Generate Shadow Maps" toggle is turned on while the shadow map name is left empty.

Chapter 3: The User Interface

45

Shadow Map Resolution This attribute specifies the image resolution for the shadow map. The default resolution is 512x512. Shadow Map Shading Rate This attribute specifies the "Shading Rate" to be used for the rendering of this shadow map. The default value for this attribute is 1.0. Note that the shading rate value entered here is not a multiplier of render pass shading rate; it is used as is. Refer to Section 3.9.3.3 [Render Pass Quality], page 55 for more information about the shading rate. Shadow Map Type normal Select this value to compute depth map shadows. This is the default value and should be the preferred type since it is faster to compute and takes up less disk space. Select this value to compute deep shadow maps. They are slower to generate and require more disk space, but they do offer a few benefits in return. For instance, translucent objects and participating media (fog, smoke, etc.) will correctly cast shadows and finely detailed geometry (such as fur) works better with deep shadow maps.

deep

. Shadow Map Depth Filter This attribute is only available when "Shadow Map Type" is set to normal. The value selected here defines what depth filter is used when rendering the shadow map. If some objects exhibits self-shadowing problems, adjust the shadow bias value in the light shader (or the Maya light node if there are no RenderMan shaders attached to the light), or choose a different depth filter value. The available values are: min max average midpoint This value is a little slower to compute but is usually very good at getting rid of the self-shadowing problems. This is the default value.

Volume Interpretation This attribute is only available when "Shadow Map Type" is set to deep. The available values are: Discrete This value should be used to compute shadows cast by solid objects.

Continuous This value should be preferred for computing shadows cast by participating media (fog, clouds, smoke, etc.) Distance Inside Shadow Map Pixel Samples This attribute specifies in how many sub-samples each pixel will be subdivided for the shadow map rendering. The default is 2x2. Generate First Frame Only If selected, 3Delight For Maya will only render the shadow map on the first frame of animation. This is a good choice when the objects that cast shadows are not animated.

Chapter 3: The User Interface

46

It is recommended to avoid inserting a # in the "Shadow Map Name" attribute (or to check the "Add Frame Ext" attribute of the light node when the "Shadow Map Name" is left empty) when this option is turned on. By default, this attribute is set to off. Generate With Motion Blur When this attribute is on, the shadow map will be rendered using the same shutter opening and closing times as the camera used for rendering the frame. This will produce motion-blurred objects in the shadow map, provided that at least one object has at least one of the transformation blur or deformation blur options turned on. Since depth shadow maps do not contain any transparency information, they are not recommended for creating proper motion blurred shadows. The motion blurred portions of the shadow map will produce grainy shadows; however it is possible to blur these grainy parts to some extent using the light source shaders "shadow blur" or "shadow filter size" attributes. Deep shadow maps are a better choice when motion blurred shadows are needed; however a moving, motion blurred, self-shadowing object will only be properly shadowed if the deep shadow map is not motion blurred. Refer to Section 3.5.8 [Geometry Attribute Node Motion Blur], page 23 and Section 3.9.3.5 [Render Pass Motion Blur], page 57 for details on the motion blur options. Generate Cube Shadow Map If this light attribute is attached to a point light, you may want to generate a shadow map for each direction (since point lights illuminate in every direction). Enabling this toggle will force 3Delight for Maya to generate an aggregated shadow map that contain six shadow maps. This option is off by default. Shadow Camera This attribute specifies what camera will be used to render the shadow map. When no camera is specified, the light source attached to this attribute node will be used to position the camera used for the shadow map rendering; in this case the cameras angle of view is defined by the lights cone angle (if the light source is a spotlight). By default, no camera is selected. Near Clipping Plane This attribute defines the near clipping plane for the shadow map rendering. The default value is 0.001. Far Clipping Plane This attribute defines the far clipping plane for the shadow map rendering. The default value is 10000.00. 3.8.3 Shadow Objects

Figure 3.35: The Shadow Objects attribute panel Shadow Objects This attribute defines what objects will be rendered in the shadow map. When <light linker> is selected, only objects that are lit by the light this attribute node is attached to will be rendered in the shadow map. This is the default. This menu will also list all

Chapter 3: The User Interface

47

Maya object sets in the scene; when a set is selected, only the objects it contains will be in the shadow map, regardless of the light linking. 3.8.4 Photon Maps

Figure 3.36: The Photon Maps Light Attribute Panel Emit Photons When this attribute is on, it enables the generation of photon maps for this light source. Generally, only point lights and spot lights should enable this toggle. Note that the total number of photons to trace into the scene is specified in Section 3.9.3.8 [Render Pass Global Illumination], page 71: 3Delight for Maya will automatically compute how much photons are needed per light, depending on their intensity. This attribute is off by default. 3.8.5 Category

Figure 3.37: The Category Light Attribute Panel Key Light This attribute can be used to differentiate some light sources from the others by tagging them as key lights. Key lights have specific AOVs that can be used to render a specific component of their contribution to the images overall appearance, isolating their contribution form the effect of the other light sources of the scene. Refer to Section 3.9.3.6 [Render Pass Displays], page 59 for more information on these specific AOVs. Category This attribute can be used to define categories to which the attached lights belong. Categories are used in shaders to do computations on a subset (or category) of the scenes light sources. This attribute is empty by default.

3.8.6 Motion Blur

Figure 3.38: The Motion Blur Light Attribute Panel Transformation Blur This attribute controls if the camera used for rendering the shadow map will have transformation blur applied to it or not. This camera is either explicitly specified, or it is derived from the attached lights position and orientation (see [shadow camera

Chapter 3: The User Interface

48

attribute], page 46). Note that this attribute is ignored unless the "Generate With Motion Blur" attribute is turned on (see [generate with motion blur attribute], page 46). The available options are: Off No transformation blur will be applied to the shadow map camera, regardless of the render pass current "Transformation Blur" settings. This is the default. Transformation blur will be applied to the shadow map camera, even if the "Transformation Blur" attribute is turned off in the render pass. The number of samples is determined by the "Transformation Samples" of the render pass. This value has no effect if "Generate With Motion Blur" is turned off. Transformation blur will be applied to the shadow map camera according to the "Transformation Blur" attribute of the render pass. The number of samples is determined by the "Transformation Samples" of the render pass. This value has no effect if "Generate With Motion Blur" is turned off.

On

Inherit

3.8.7 Area Light

Figure 3.39: The Area Light Light Attribute Panel Samples This attribute sets the number of samples to use when sampling the area light. Larger values take longer to render but give smoother results. The default is 16. This attribute has no effect if the attached light shape is not an area light.

Sampling Strategy This attribute controls how the attached area lights are rendered. The two possible values are: Faster Better In this mode, specular highlights will not follow the shape of the area light1 , only shadows will be rendered correctly. In this mode, both the specular highlights and the shadows are rendered correctly. This setting is recommended when accurate specular highlights are important.

3.8.8 MEL Scripts As for the render pass (Section 3.9.3.14 [Render Pass MEL Scripts], page 83), 3Delight For Maya let you run MEL scripts before and after each shadow map. Two variables are automatically defined in the context of these scripts execution: string $shape_path This variable is assigned the current light shape path.
1

They will appear as highlights from a punctual light source.

Chapter 3: The User Interface

49

string $attribs_node This variable is assigned the current geometry attribute node name.

Figure 3.40: The Light MEL Scripts attribute panel Pre Render MEL This attribute specify a MEL script that will be executed before the shadow map is rendered. More precisely, the script will be executed just before the FrameBegin RIB statement of the shadow map. This attribute is empty by default. Post Render MEL This attribute specify a MEL script that will be executed after the shadow map is rendered. More precisely, the script will be executed just after the FrameEnd RIB statement of the shadow map. This attribute is empty by default.

Chapter 3: The User Interface

50

3.9 The Render Pass


3.9.1 Overview The main paradigm in 3delight For Maya is the render pass. Simply put, a render pass is a rendering context that encapsulates a list of rendering attributes and a list (or set) of objects to be rendered. A single Maya scene can contain any number of such passes and each one can be rendered independently with possibly different outputs. Although it is not necessary to have multiple render passes (the simplest rendering setup contains only one pass), having the possibility to use many such passes gives increased flexibility and enables a better integration of rendering in the production pipeline. As an example, rendering passes could be used to: Have multiple rendering quality levels. It is usual to have a render pass with settings for a draft render and another one for high quality renders Split rendering of different objects in the scene (such as foreground and background objects) between different passes. In this case, a render pass is equivalent to the rendering of a layer which might be composited in a compositing software later in the pipeline Make a render output a different set of output variables. A rendering could for example output surface normals for later processing1 3.9.2 Managing Render Passes 3.9.2.1 Creating a Render Pass In order to start a render, it is necessary to have at least one render pass defined. Creating a render pass can be done using the various items found in the following Maya menu: 3Delight -> Add Render Pass The Add Render Pass menu contains a Full entry and a Basic entry. Selecting Full creates a render pass with all available attributes. Selecting Basic will create a render pass containing only the more commonly used attributes. If render pass templates have been defined, they are also listed in this menu. Selecting a template will create a new render pass with identical settings as the ones contained in the template. See Section 3.9.2.6 [Saving a Render Pass as a Template], page 52.

Figure 3.41: An empty Render Pass Attributes can be added and removed by using the Add / Remove Attributes button. Left-Click on this button brings up the Add / Remove Attributes Window , which is better suited for multiple
1

Although 3delight is able to output many variables in a single render using multiple displays as shown in Section 3.9.3.6 [Render Pass Displays], page 59.

Chapter 3: The User Interface

51

attribute addition or removal (see Section 3.4 [The Add / Remove Attributes Window], page 13). Right-Click on the Add / Remove Attributes button offers the same functionality through popup menus, which are more convenient when only one attribtue or attribute group needs to be added or removed. 3.9.2.2 Inheriting Another Render Pass Attributes A render pass can inherit attributes from a parent render pass. The parent-child relation is defined through a connection on the child pass "parentRenderPass" message attribute. For example, the following MEL commands will set parentPass as the parent of childPass: addAttr -at "message" -ln "parentRenderPass" "childPass"; DL_connectNodeToMessagePlug("parentPass", "childPass.parentRenderPass"); When looking for render pass attribute values, 3Delight for Maya starts by looking in the render pass that is being rendered, and will then search this pass parents for the attribute presence. If an attribute is not found, its default value will be used. 3.9.2.3 Rendering a Render Pass Once a render pass is defined,it can be used to render the scene. To launch the rendering, the following options are available: The 3Delight menu A rendering can be launched by selected the desired render pass in the following Maya menu: 3Delight -> Render -> Pass Name The Render menu contains a list of all render passes defined in the scene. The first one displayed is always the render pass that was most recently rendered. The Render Pass Render Button When a render pass is displayed in the attribute editor , a rendering can be launched simply by clicking on the big Render Button displayed at the top of the attribute editor . The Maya Render Current Frame Button The Maya Render Current Frame Menu Item The Maya Batch Render Menu Item If Maya s current renderer setting is set to 3Delight, selecting one of these options will launch a rendering using the render pass selected in the 3Delight render settings . Launching a rendering this way can have an impact on some default values used for rendering. Refer to Section 3.10 [The 3Delight Render Settings], page 89. 3.9.2.4 Selecting a Render Pass To select a render pass and view its attributes in the attribute editor , the following menu can be used: 3Delight -> Select Render Pass -> Pass Name The Select Render Pass menu lists all render passes defined in the scene. The first menu entry is always the last render pass that was rendered. 3.9.2.5 Duplicating a Render Pass To duplicate a render pass the following menu can be used: 3Delight -> Duplicate Render Pass -> Pass Name The Duplicate menu contains the list of all defined render passes in the scene.

Chapter 3: The User Interface

52

3.9.2.6 Saving a Render Pass as a Template A render pass can be saved as a template. Such a template will then be listed in the Add Render Pass menu. This basically allows creating a duplicate of a given render pass across multiple scenes. To create a render pass template, first create a render pass, rename it and configure its attributes as desired. Then the following menu can be used: 3Delight -> Save Render Pass as Template -> Pass Name The Save Render Pass as Template menu lists all render passes defined in the scene. Each template is saved in a separate file in a 3delight/templates folder, placed in the current project directory. See Section 5.5.5 [Automatic File Output Control], page 136 for details. 3.9.3 Render Pass Attributes 3.9.3.1 Camera This section contains informations concerning the camera that will be used by this render pass as well as animation rendering controls.

Figure 3.42: The Camera panel Camera Name This names the Maya camera that is used for this pass. At least one camera should be defined in the scene. The default camera selected for rendering is perspShape. Use Resolution From Render Globals When this toggle is on, the "Resolution" and the "Pixel Aspect Ratio" attributes will be assigned the same values as the ones set in Maya Render Globals. This toggle is on by default.

Chapter 3: The User Interface

53

Resolution The final resolution of the rendered image. By default it is connected to the resolution specified in Maya Render Globals. Multiplier This will multiply the resolution field. The available settings are Full, Half, Quarter and Eighth. If the resolution is 1024x512 and this multiplier is set to Half then the actual output resolution will 512x256. The default value is Full. Pixel Aspect Ratio The ratio of the height of a pixel to its width. Square pixels have a ratio of 1.0. Ratios smaller than 1 correspond to wide pixels, while ratios higher than 1 yield tall pixels. By default, the Pixel Aspect Ratio is derived from the settings in Maya Render Globals. Animation This toggle enables the rendering of the entire animation. When the "Render Mode" in the "Output" panel (see [Render Mode], page 54) is set to Save RIB then RIBs for each frame will be saved to disk. If the RIB filename remains the same from one frame to another, the data of the current frame is concatenated to the file. This toggle is off by default. Frame Range If the "Animation" toggle is on, specifies the range of frames to render (bounds are inclusive ). The default range is [1..1]. Increment Specifies the increment to use when going from one frame to the next in the frame range. For example, if the frame range is [1..6] and the increment is 2, only the following frames will be rendered: 1, 3, 5, 6 (note that the first and last frame are not skipped). The default increment is 1. Use Crop Window Crop Min Crop Max Specifies a cropping region to use when rendering this pass. The rendered region is defined by the top left corner specified by "Crop Min" and the bottom right corner specified by "Crop Max". Each corner is specified by a (x, y) coordinate defined in the range [0, 1], where 0 is left or top and 1 is right or bottom. Cropping will be performed only if the "Use Crop Window" toggle is on. As an example, setting "Crop Min" to (0.25, 0.25) and "Crop Max" to (0.75, 0.75) will render a window in the centre of the screen. By default, "Use Crop Window" is off, "Crop Min" is set to (0, 0) and "Crop Max" is set to (1, 1). Bucket Order An image is rendered progressively in small groups of pixels called buckets. This option allows you to specify in what order the buckets are rendered. Rendering will be more memory-efficient if a bucket order that minimizes the number of objects being rendered simultaneously is chosen. The available options are: horizontal The buckets are rendered from left to right and from top to bottom. vertical zigzag spiral The buckets are rendered from top to bottom, and from left to right. The buckets are rendered from left to right on even rows, and from right to left on odd rows. The buckets are rendered in a clockwise spiral starting at the centre of the image.

Chapter 3: The User Interface

54

circle

The buckets are rendered in concentric circles starting at the centre of the image.

The default bucket order is horizontal. Use Imager Shader Enables or disables the use of image shaders. Imager shaders can be attached to a camera via the Assignment Panel (see Section 3.2 [The Assignment Panel], page 9). This toggle is on by default. 3.9.3.2 Output 3delight can render a frame (or a series of frames) directly or save the scene in RIB format for later rendering. In the direct rendering case, 3delight uses information described in the Displays panel to save or display the produced image. Refer to Section 3.9.3.6 [Render Pass Displays], page 59.

Figure 3.43: The Output panel Render Mode This option specify the kind of output to be produced when rendering this pass. The available options are: Render The renderer will produce the image as specified in the Displays section. Refer to Section 3.9.3.6 [Render Pass Displays], page 59 for more details. The renderer will save the scene in RIB format, suitable for later rendering. If the "animation" toggle is on and the file name remains the same for a series of frame, the data of the current frame will be concatenated to the existing file. See Section 5.5.4 [File Path Expressions], page 134 for details on how it is possible to construct relative paths and / or paths containing dynamically expanded tokens.

Save RIB

RIB Archive The scene will be saved in a RIB archive that can be read later in other rendering. If the "animation" toggle is on and the file name remains the same for a series of frame, the data of the current frame will be concatenated to the existing file. Advanced options for RIB archives are available in the RIB Archives section. Refer to Section 3.9.3.10 [Render Pass RIB Archives], page 78 for more details on these options, or to the Section 5.3 [RIB Archives Guidelines], page 120 for examples on how to

Chapter 3: The User Interface

55

use this option. See also Section 5.5.4 [File Path Expressions], page 134 for details on how it is possible to construct relative paths and / or paths containing dynamically expanded tokens. Background Render This mode will save the scene in RIB format and invoke renderdl to render it as a background process once the RIB file is done. This means that once the RIB file is saved, Maya is responsive again and can be used while the render completes. The output of the renderer is saved into a log file named after the RIB file with a .log extension. Note that the maya render view display driver cannot be used with the background render mode. The default render mode is Render. RIB Filename Specifies the filename of the RIB file to save. If this attribute is empty when a render mode producing a RIB file is selected, a decent default name is automatically generated. Refer to Section 5.5.4 [File Path Expressions], page 134 for details about possible dynamically expanded tokens. Binary Rib When this options is on, the RIB file will be saved in binary format, producing a smaller file. Turn this option off to produce a text RIB file, which is bigger but easier to edit. By default, this option is off. Compressed Rib This option controls if the RIB file will be compressed, producing a smaller file. By default this option is off. Render Parameters This attribute is only available when the "Render Mode" is set to Background Render. The content of this attribute will be passed as parameters to the rendering command. Advanced users may want to have a look at the 3Delight Users Manual for available command line options of the renderdl command. Note that this attribute is not used by the plugin from the 3Delight for Maya package. Render Log This attribute is only available when the "Render Mode" is set to Background Render. The file specified by this attribute will contain the various messages output by the rendering command executed in background. Clicking on the view button will open the log file using the application designated in the 3Delight Preferences Window ; refer to Section 3.17 [The Preferences Window], page 103. Note that this attribute is not used by the plugin from the 3Delight for Maya package.

3.9.3.3 Quality This section controls the quality settings for this render pass. The default values should provide a normal, draft quality, render.

Chapter 3: The User Interface

56

Figure 3.44: The Quality panel

Pixel Samples This option specifies in how many sub-samples each pixel will be subdivided. A draft quality setting for this parameter is 4x4 and a higher quality setting could be 6x6. Higher values might be needed if motion blur or depth of field are to be rendered. The default value is 3x3.

Shading Rate Controls how finely the geometry is tessellated prior to shading. 3delight adaptively tessellates each primitive into very tiny elements called micro-polygons, those elements are then shaded and sampled. Usually, the size of one such micro-polygon is one screen pixel and this corresponds to a shading rate of 1.0. A shading rate of 4.0 will produce micro-polygons that cover approximately an area of 2x2 pixels and a shading rate of 0.5 will give two micro-polygons per pixel. It is recommended to leave this parameter to its default value of 1.0 and reasons why not doing so are explained in Chapter 5 [Rendering Guidelines], page 115.

Pixel Filter The name of the filter that is used to re-sample the sub-samples. Available values are: box, triangle, gaussian, catmull-rom, bessel, sinc, mitchell, zmin and zmax. catmull-rom and sinc filters are common in production work. It should be noted that there is no additional performance cost for using more complicated filters instead of simpler ones (such as the box filter). The default value is sinc.

Filter Width Specifies how many pixels the filter will cover. The larger the value the slower is the filtering process. Note that enlarging some filters, such as the gaussian or box will blur the result and not increase the quality. Additionally, some filters do not work well with small width values. This is the case of the sinc filter for which it is not suggested to specify values less than 4x4, which is the default value.

Chapter 3: The User Interface

57

Raytracing

Figure 3.45: The Raytracing Quality panel Max Specular Depth Sets an upper limit on how many reflections/refractions levels a ray-traced ray can travel. Max Diffuse Depth Sets an upper limit on how many bounces an indirect ray can travel. Note that if photon maps are used, the "number of bounces" in the photon map tab will be used instead of this attribute. Max Depth Specifies maximum raytracing depth when using ray tracing. The default is only one bounce. Higher values lead to slower but more accurate results. 3.9.3.4 Depth of Field This section contains attributes that affect the way out-of-focus portions of the image are rendered. Polygonal Aperture Turning this attribute on allows customization of the aperture shape using the following attributes. This attribute is off by default, which produces a perfectly round aperture.

Number of Blades The aperture is shaped after a regular polygon; this attribute specifies how many sides this polygon has. This can also been seen as the number of blades of the diaphragm that controls the aperture. The minimum number of blades is 3, which produces triangular out-of-focus highlights. This attribute is only available when the "Polygonal Aperture" attribute is turned on. Rotation The angle of the rotation to apply on the aperture, in degrees. This attribute is only available when the "Polygonal Aperture" attribute is turned on.

3.9.3.5 Motion Blur This section enables or disables rendering of motion blur in the entire scene. Note that motion blur can also be controlled per object in the Motion Blur panel as described in Section 3.5.8 [Geometry Attribute Node Motion Blur], page 23. The various "Samples" attributes have a default value of 2, meaning that the movement is sampled at the beginning and at the end of the frame exposure. This is fine for linear movements. Increase the relevant "Samples" attribute if the motion path of the camera or objects is far from linear (like a turning propeller for example). Higher sample values imply longer motion blur computation.

Chapter 3: The User Interface

58

Figure 3.46: The Motion Blur panel Camera Blur When this toggle is on, the movement of the camera is taken into account when computing the motion blur. By default this toggle is off. Camera Blur Samples This attribute specifies the number of times the position and orientation of the camera is sampled during the time interval that the shutter is opened. Transformation Motion Blur When this toggle is on, objects that have animated geometric transformation (translation, rotation or scale) will be blurred. By default, this toggle is off. Transformation Samples This attribute specifies the number of times the transformation of the object is sampled during the time interval that the shutter is opened. Deformation Motion Blur When this toggle is on, objects whose geometry is deforming (such as cloth simulation geometry or animated fur) will be blurred. By default, this toggle is off. Deformation motion blur should be enabled only when necessary since it has a higher memory footprint. Deformation Samples Specifies the number of times the geometry of the object is sampled for motion blur during the time interval that the shutter is opened. Motion Blur Position This controls the time at which cameras shutter opens and closes relative to a frame of animation. The following values are available2 :
2

These parameters will respect the value set for Shutter Angle in Maya s camera properties.

Chapter 3: The User Interface

59

end on frame Shutter closes at frame start and opens an interval before. centered on frame The most usual choice. The shutter opens half an interval before the frame and closes half an interval afterward. This is the default. start on frame Shutter opens at frame start and closes an interval later. This option should usually be preferred when the visibility of objects changes during the sequence of frames to render. Sample Motion Blur On Integer Frames Normally, the scene is sampled for motion between frames, requiring objects to be properly animated between frames. Turn this attribute on when the animation is only defined on frames. This attribute is only available when setting "Motion Blur Position" to either start on frame or end on frame. It will force the number of samples for "Camera Blur Samples", "Transformation Samples" and "Deformation Samples" to 2. The scene will be sampled at (t-1, t) or at (t, t+1), if "motion blur position" is set to end on frame or start on frame, respectively. This attribute is off by default. Shutter Efficiency Sets how efficient the shutter of the camera is, at opening and closing times. 1.0 (the default) is maximum efficiency, meaning that the shutter of the camera opens and closes faster than speed of light, which is a non-natural shutter. Decreasing those values, to 0.75 say, will simulate slower opening camera shutter and produces softer motion blurs, closer to what is expected in real life cameras. Shutter Angle Scale A multiplier applied on the render cameras "shutter angle". It can be used to increase or decrease the motion blur effect without changing the cameras attributes. This attribute is set to 1.0 by default. Sample Motion Turn this attribute off to disable motion blur sampling while preserving dPdtime vectors. This attribute is enabled by default. Extreme Motion Depth Of Field Turn this attribute on to avoid artifacts caused by simultaneous use of depth of field and motion blur. This will also render much slower, so leave this off unless it is absolutely required. This attribute is off by default. 3.9.3.6 Displays This section specifies what image will be output by the renderer. The image can either be saved to a file or displayed in a framebuffer. By default, a render pass is created with one display. However, it is possible to create several distinct displays in a single render pass. It is sometimes necessary to output more than just RGBA components during a render. For example, it might be useful to also output the depth (or z ) value for each pixel for later processing. It is allowed to add any number of additional display and output any AOV (arbitrary output variable) that are declared in the shaders (refer to 3Delight Users Manual for more information on AOVs).

Chapter 3: The User Interface

60

Figure 3.47: The Displays panel Each display is shown in its own panel. To add a display, either click on the Add Display button , or select "Add Display" in the contextual popup menu that appears when right-clicking almost everywhere in the Displays panel . This menu also offers options to expand or collapse all display panels at once. To remove a display, click on its Remove Display button, which appears as a trashcan. To duplicate a display, right-click anywhere above the display to duplicate and select Duplicate Display menu option. At the top of the Displays panel are a few general controls, followed by a list of per-display panels. The general controls are: Add Display Clicking this button will add a new display attribute group at the bottom of the displays panel. Render Primary Display Controls if the primary display is going to be rendered. The primary display is always the display at the top of the displays panel and this control is tied to the first displays Render toggle. It can be useful to turn this option off when you need only need to render a secondary display or shadow maps. By default, this toggle is on. Render Secondary Displays Specifies if the other displays than the first one are rendered. This toggle will override the per-display Render toggle. This control is on by default. Each display has its own panel showing the basic display parameters on two rows. The remaining display attributes are located in the Advanced panel. A display panels first row offers the following attribute: Render toggle Controls if the display will be rendered or not. Since the first display in the panel is considered the primary display, its Render toggle is tied to the Render Primary toggle. For other displays, their Render toggle is acknowledged only when Render Secondary is turned on.

Chapter 3: The User Interface

61

Image Filename This control specifies the file name of the rendered image. When using a framebuffer display driver, this specifies a window title. By default, a file name based on the scene name and render pass name is created. See Section 5.5.4 [File Path Expressions], page 134 for details on how it is possible to construct relative paths and / or paths containing dynamically expanded tokens. Browse for Image File button This button, drawn as a folder, brings up a file browser to specify an image filename. View Image button This button, drawn as a magnifying glass, will open the displays image file in a viewing application. See Section 3.17 [The Preferences Window], page 103 for details on how to specify which application should be launched. The second row offers the following attributes: Remove Display button This button, drawn as a trashcan, removes the display from the render pass. Display Driver This options specified the type of the display driver, which is where your rendered image will go. The following display drivers are available: framebuffer The rendered image is displayed in a basic window. idisplay The rendered image is displayed in i-display.

maya_render_view The rendered image is displayed in Mayas Render View. Note that this display driver should not be used when rendering to a RIB file since it only works for rendering launched in Maya by 3Delight For Maya. tiff iff exr The rendered image is output in a file in TIFF format. The rendered image is output in a file in IFF format. Note that only 8 bits RGB or RGBA images can be output by the IFF display driver. The rendered image is output in a file in openEXR format. The openEXR libraries, which are not included in the 3Delight package, must be installed. This display driver only works in 16-bits float or 32-bits float; refer to [Bit Depth], page 65. The rendered image is output in a file in Cineon format. It is recommended to set the Bit Depth to 32 bit float. Refer to [Bit Depth], page 65. The rendered image will be a depth map file. It is recommended to set the Bit Depth to 32 bit float. Refer to [Bit Depth], page 65. It is usually desirable to set the Output Variable to z. Refer to [Output Variable], page 62. The rendered image is output in a file in PNG format. The rendered image is output in a file in BMP format. The rendered image is output in a file in Encapsulated PostScript format. The rendered image is output in a file in PSD format.

cineon

zfile

png bmp eps psd

Chapter 3: The User Interface

62

radiance null shadowmap

The rendered image is output in a file in Radiance. This display driver only works in 32-bits float; refer to [Bit Depth], page 65. The rendered image is discarded. The rendered image will be a depth map in TIFF format, suitable to be used as a shadow map without the need of converting it with tdlmake. It is recommended to set the "Bit Depth" to 32 bit float. Refer to [Bit Depth], page 65. It is usually desirable to set the "Output Variable" to z. Refer to [Output Variable], page 62.

texture dsm

The rendered image will be a mipmap TIFF, suitable to be used as a texture map without the need of converting it with tdlmake. The rendered image will be a deep shadow map. The deep shadow map display driver has several restrictions: the "Bit Depth" attribute should be set to 32 bit float, the "Output Variable" should be set to rgba, the required "Pixel Filter" is box and the required "Filter Width" is 1 x 1. The "resolution" must have equal values in both width and height, and this value should be a power of two.

Detailed information on each display driver is available in the 3Delight Users Manual. By default, idisplay is the selected primary display driver. Output Variable Indicates what variable will be output during this render. The most common values are rgba or rgb for RGBA and RGB outputs respectively. You can specify here any predefined output variable or arbitrary output variables that your shaders are using. Inline declarations of arbitrary output variables are allowed, meaning that it is permitted to preceded a variable name with its type to declare it and specify it for the display mode all at once. Right-clicking on the text field brings up a popup menu that lists available predefined output variables. The available values that are relevant regardless of the shaders assigned of to scene elements are: [user specified] This item is selected when a custom variable name is typed in the text field. z [depth] For a given pixel, this variable outputs the distance between the camera and the object visible at this pixel. It is recommended to set the "Bit Depth" to 32-bit float; refer to [Bit Depth], page 65. rgb [color] This variable outputs the color information of the rendered image. a [alpha channel] This variable outputs the transparency information of the rendered image. Oi [3-channel alpha] This variable outputs the R, G and B transparency information of the rendered image. rgba [color + alpha] This variable outputs the color and transparency information of the rendered image. This is also called a beauty render pass. This is the default.

Chapter 3: The User Interface

63

The following AOVs are defined for scene elements shaded using Mayas Hypershade. Note that any AOV whose name contains "no shadow" involves extra shading computation and will make the scene longer to render. The available AOVs are: ambient diffuse This variable outputs the ambient shading component of the rendered image, producing an ambient render pass RGB image. This variable outputs the diffuse shading component of the rendered image, producing a RGB image similar to a Maya Render Layer configured to output a diffuse render pass. This variable outputs the specular shading component of the rendered image, producing a RGB image similar to a Maya Render Layer configured to output a specular render pass.

specular

reflection This variable outputs the reflection shading component of the rendered image, producing a reflection render pass RGB image. refraction This variable outputs the refraction shading component of the rendered image, producing a refraction render pass RGB image. shadow This variable outputs the shadow intensity in the alpa component of a RGBA image, in a similar fashion to a Maya Render Layer configured to output a shadow render pass. Note that in addition to objects being shaded with Mayas Hypershade, the light sources must also be shaded with Mayas Hypershade for this output variable to work properly (put differently, the light must not have a RenderMan shader attached to it).

incandescence This variable outputs the incandescence shading component of the rendered image, producing a incandescence render pass RGB image. translucence This variable outputs the translucence shading component of the rendered image, producing a translucence render pass RGB image. diffuse no shadow This variable outputs the diffuse color shading component of the rendered image, unattenuated by any shadows. The result is identical to what is produced by the diffuse AOV when light sources do not cast any shadows. diffuse intensity This variable outputs a grayscale image representing the intensity of the diffuse shading component. diffuse intensity no shadow This variable outputs a grayscale image representing the intensity of the diffuse shading component without any attenuation made by shadows. If there are no shadow-casting light sources, the result is identical to the diffuse intensity AOV. key lights diffuse intensity The output of this AOV is similar to the diffuse intensity AOV, but will only take into account light sources that have a key light attribute set to true. Refer to the [key light attribute], page 47.

Chapter 3: The User Interface

64

key lights diffuse intensity no shadow This AOV output is similar to the diffuse intensity no shadow AOV, but will only take into account light sources that have a key light attribute set to true. Any shadows cast by these key lights will be ignored. If the key lights do not cast any shadows, the result will be identical to what is produced by key lights diffuse intensity AOV. Refer to the [key light attribute], page 47. luminance depth This variable produces an grayscale image based on the distance between the camera and the objects; objects closest to the cameras near clipping plane will appear white while objects closest to the cameras far clipping plane will appear black. It is recommended to adjust the cameras clipping plane values to be as close to the object to be rendered as possible. specular no shadow This variable will produce am image of the specular color shading component without taking any shadowing into account. If there are no lights casting shadows, the output will be identical to the specular AOV. specular intensity The output of this AOV is a grayscale image of the intensity of the specular shading component. specular intensity no shadow This variable outputs a grayscale image of the intensity of the specular shading component, without taking into account any shadows. If there are no lights that cast shadows, the output will be identical to what is produced by the specular intensity AOV. key lights specular intensity This AOV produces a grayscale image of the intensity of the specular shading component, taking into account only light sources that have a key light attribute set to true. Refer to the [key light attribute], page 47. key lights specular intensity no shadow This variable outputs a grayscale image of the intensity of the specular shading component, taking into account only the light source that have a key light attribute set to true. Any shadows cast by these key lights will be ignored. If the key lights do not cast any shadows, the image produced will be identical to the one output by the key lights specular intensity AOV. Refer to the [key light attribute], page 47. color no shadow This AOV will produce an image similar to the color AOV, but any shadows are ignored. raytraced reflection This variable outputs what appears in reflections due to raytraced rays that hit surrounding objects. environment reflection This variable outputs what appears in reflections when raytraced rays hit nothing (i.e. what is controlled by the "reflected color" attribute of the shader). This variable also contains the environment reflections produced by the Fast Image Based Lighting and Full Global Illumination effects of the render pass. See [Global Illumination Effect], page 71.

Chapter 3: The User Interface

65

surface color This variable outputs the base surface color without taking any illumination, incandescence, reflection or refraction components into account. occlusion This variable outputs ambient occlusion computed by either the Occlusion or the Full Global Illumination effects of the render pass (see [Global Illumination Effect], page 71). The mia_amb_occlusion shading node also puts its results in this variable. camera space normal This variable outputs the normal of the object in camera space. facing ratio This variable outputs the facing ratio, similar to what is computed for the samplerInfo nodes facingRatio output plug. global illumination This variable contains the mixed colors of the various diffuse effects computed by the "Global Illumination" render pass attributes. See Section 3.9.3.8 [Render Pass Global Illumination], page 71. indirect diffuse This variable contains the color bleeding component computed by the Full Global Illumination effect of the render pass. See [Global Illumination Effect], page 71. environment diffuse This variable contains the environment diffuse effect computed by either the Fast Image Based Lighting or the Full Global Illumination effects of the render pass (see [Global Illumination Effect], page 71). environment specular This variable contains the environment specular effects (reflections and refractions) computed by either the Fast Image Based Lighting or the Full Global Illumination effects of the render pass (see [Global Illumination Effect], page 71). Bit Depth This option menu specifies how many bits to use per color component. The available values are: 8 bit integer The image will use 8 bits integer values for each component, with values defined between 0 (black) and 255 (white). This corresponds to a quantization of 0, 255, 0, 255 for zero, one, min and max, respectively, and a dither value of 0.5. This is the default value. 16 bit integer The image will use 16 bits integer values for each component, with values defined between 0 (black) and 65535 (white). This corresponds to a quantization of 0, 65535, 0, 65535 for zero, one, min and max, respectively, and a dither value of 0.5. 16 bit float The image will use 16 bits float values for each color component. Currently, only the exr display driver supports this format. This corre-

Chapter 3: The User Interface

66

sponds to a quantization of 0, 0, 0, 0, and a dither value of 0 (identical to 32 bit float); the display driver receives a pixel type specification through an option.

32 bit float The image will use 32 bits float values for each color component. This corresponds to a quantization of 0, 0, 0, 0, and a dither value of 0.

Custom... All images are rendered internally in 32-bits float format. Quantization is the process of assigning integer values to these floating-point values. Some usual preset values are available in the "Bit Depth" attribute. If they do not include the needed variation, it is possible to specify custom quantization values by selecting this menu entry. Upon selection, a dialog pops up. It allows specification of values for zero, one, min, max and dither amplitude. zero is the black point, while one is the white point. These two values can be different from the min and max values if you need to have under-exposed or over-exposed values. An example set of values for 12 bits output with standard dithering would be: 0, 4095, 0, 4095, 0.5 An example set of values for 16 bits output with a white point at 4K that prevents over-exposed pixels from being clamped to the white value, would be: 0, 4095, 0, 65535, 0.5

Other Custom entries The option menu will also list all custom bit depths defined for all of the current render pass displays.

Some display drivers have specific requirements as to what bit depths are supported. Refer to [Display Driver], page 61.

Chapter 3: The User Interface

67

Advanced

Figure 3.48: The Advanced Displays panel The Advanced panel, which is collapsed by default, offers the following attributes: Display Subset This attribute is used to select one or several Maya sets that is used to narrow down what objects will appear in the display. Set selection is made using the 3Delight Set Selector window which is invoked by clicking on the Sets... button. The "Display Subset" option menu specify how the selected sets will be interpreted and has the following values available: All Objects All visible objects will appear in the display, disregarding any sets selection made in the 3Delight Set Selector . This is the default. Objects in selected sets Only visible objects in the selected Maya sets will appear in the display. Objects not in selected sets Only visible objects that are not in the selected Maya sets will appear in the display. Put differently, all objects in the selected sets will be excluded from the display. Gain Gamma Specifies the gain. Each rendered pixels color will be multiplied by this value. Specifies the gamma. Each rendered pixels color, once affected by "Gain", goes through a power function whose exponent is 1 / "Gamma".

Override Pixel Filter Each display can have its own filter and filter width values. This toggle is off by default, in which case the display will use the values specified in the Section 3.9.3.3 [Render Pass Quality], page 55 section of the render pass. When this toggle is on, these values are overridden with the values specified in the following two attributes:

Chapter 3: The User Interface

68

Pixel Filter Filter Width These two attributes are identical to the "Pixel Filter" and "Pixel Filter Width" in Section 3.9.3.3 [Render Pass Quality], page 55. Use Matte Attribute When this toggle is off, and if the displays output variable (see [Output Variable], page 62) is set to an arbitrary output variable, any matte attribute set on objects will be ignored. This toggle is on by default. Refer to [Geometry Attribute Matte Object], page 20. Exclusive Output When this toggle is off, and if the displays output variable (see [Output Variable], page 62) is set to an arbitrary output variable, objects that do not output that variable will be black. Turning this option on will make these objects transparent. This toggle is off by default. Associate Alpha When this toggle is off, the color of a pixel is divided by the alpha to produce an image with an unassociated alpha channel. By default, this toggle is on. Compute Alpha When this attribute is on and the displays "Output Variable" (see [Output Variable], page 62) is an AOV, an alpha channel is added to the AOV. It is computed based on the existence of the output variable for a given object. This toggle is off by default. Usually, when this toggle is on, it is recommended to turn off "Associate Alpha" (see [Associate Alpha], page 68). Edge Detection

Figure 3.49: The Edge Detection Panel 3DFM can perform outlining on any desired variable. This can be useful, for example, when doing toon rendering or illustration. An example scene can be found in $DELIGHT/example/maya/outlines. It is also possible to render shaded wireframes on polygon meshes; see [Polygons Wireframe], page 29.

Chapter 3: The User Interface

69

Enable

This attribute enables edge detection for this particular display. it is set to off by default.

Detected Variables This attribute specifies on what variables the edge detection (outlining) will run. Several variables can be specified, separated by a coma. For example, setting this attribute to N,z,Oi will run edge detection on normals, depth and object contours. By default, this attribute is set to Ci, which is the color of the light reflected by an object. Threshold This attribute controls the sensitivity of the edge detection. The higher the threshold the more sensitive the edge detection is. For example, when detecting variations on z (depth), a value of 0.1 means that if there is a gap of 0.1 between two surfaces (in the z direction) then an edge will be generated. This attribute is set to 0.1 by default. Color This attribute defines the color of the generated outline. It is set to white by default.

Filter Width This attribute defines the width of the generated outline. It is set to 0.2 by default. Values between 0 and 1 are allowed, producing very fine outlines. In this case it is recommended to raise the "Pixel Samples" attribute (see [Pixel Samples], page 56) in order to avoid anti-aliasing of the outlines. Next to this attribute, there is an option menu to determine how this width should be interpreted. The possible values are: Pixels The filter width is a number of pixels.

% of Frame Width The filter width is taken as a percentage of the image resolution in X. Depth Based Fadeout This attribute enables the edge thickness fadeout with depth. It is off by default. Min Z Max Z

These two attributes specify the depth range on which the fadeout will be performed. By default, "Min Z" is set to 0.0 and Max Z is set to 1000.0.

Min Filter Width The depth based fadeout will keep edges with a minimum width specified by this attribute. Its default value is 1.0. 3.9.3.7 Shadow Maps Before rendering the main image, the render pass will render all needed shadow maps. This panel controls whether to render shadow maps or not and list details about what shaders to use in a shadow render.

Chapter 3: The User Interface

70

Figure 3.50: The Shadow Maps panel Render Shadow Maps This attribute controls wether the shadow maps will be rendered or not. Its default value is on. Use Displacement Shaders in Shadows This attribute controls if the displacement shaders are used in the shadow maps rendering. By default this toggle is on. Note that turning this toggle off might speed up shadow map rendering but produce incorrect shadows depending on how much the geometry is displaced. Use Surface Shaders in Shadows This attribute controls if the surface shaders are used in the shadow maps rendering. By default this toggle is off. It is recommended to turn on this attribute only if some surface shaders are displacing the geometry or modifying the opacity. Use Atmosphere Shaders In Shadows This attribute controls if the atmosphere shaders are used in the shadow maps rendering, and it is off by default. It is recommended to turn this option on only if deep shadow maps are rendered. Use Interior Shaders In Shadows This attribute controls if the atmosphere shaders are used in the shadow maps rendering, and it is off by default. It is recommended to turn this option on only if deep shadow maps are rendered. Z Threshold Only objects with opacities greater than or equal to the Z Threshold will appear in shadow maps. The default value is [1.0, 1.0, 1.0] which means that only completely opaque objects are rendered into shadow maps. If this value is set to [0.0, 0.0, 0.0] all objects will be included in the shadow map, even completely transparent ones. Note that this parameter is only useful for depth shadow maps as deep shadow maps correctly handle semi-opaque surfaces. For users familiar with the RenderMan standard, this is the equivalent of the following RiOption: Option "limits" "zthreshold" [r g b]

Chapter 3: The User Interface

71

Depth Filter This attribute offers the same control as the light attributes nodes "depth filter" attribute. Note that setting the render pass depth filter attribute will have no effect on any shadow maps except when a shadow map is produced by one of the render pass display. In other words, if a render pass has no primary nor secondary display that use the shadowmap display driver, no shadow maps will be affected by this attribute. The available values are: min max average midpoint This value is a little slower to compute but is usually very good at getting rid of the self-shadowing problems. This is the default value.

Volume Interpretation This attribute will affect only deep shadow maps rendered in one of the displays of the render pass node. Deep shadow maps defined in light attributes nodes will not be affected by this parameter. The available values are: Discrete This value should be used to compute shadows cast by solid objects.

Continuous This value should be preferred for computing shadows cast by participating media (fog, clouds, smoke, etc.) Distance Inside 3.9.3.8 Global Illumination This sections will let you render ambient occlusion, image-based lighting and color bleeding effects with minimum effort. Both one bounce and multi-bounce color bleeding are supported (through the photon mapping options). Note that there is no need to attach specific RenderMan shader to geometry in order for the Global Illumination to work. Default visibility attributes will automatically be output for all renderable objects. The various effects can be rendered to the beauty image, and they also can be output to separate output variables.

Figure 3.51: The Global Illumination section Effect The type of effect to render. The available effects are: None Occlusion Renders ambient occlusion. The effect can be adjusted using the attributes in the Occlusion and Color Bleeding section. The occlusion No global illumination effect is rendered.

Chapter 3: The User Interface

72

effect is rendered to occlusion output variable (see [Occlusion Output Variable], page 65), where unoccluded portions of the images are rendered as the color specified by "white point" and fully occluded portions are rendered as the "black point" color.

Fast Image Based Lighting Renders the scene with an environment lighting. The attributes listed in the Environment section can be used to adjust the effect. The environment lighting is rendered to environment diffuse and environment specular output variables (see [Environment Diffuse Output Variable], page 65 and [Environment Reflection Output Variable], page 64, respectively). The environment lighting will not cast directional shadows. To render an image based lighting effect with directional shadows, the Full Global Illumination effect should be chosen instead. The sepcular effects can be further refined by adding some of the "3Delight Shading Attributes" on the desired surface shaders (see Section 3.7 [The Shading Attributes], page 41). The environment specular effects will not be seen if "Specularity" in the Environmentsection is set to 0.

Full Global Illumination Renders a combination of the Occlusion and Fast Image Based Lighting effects, plus a color bleeding effect. Multi-bounce color bleeding will automatically be computed if the "Render Photon Maps" is set to Always or Automatic (see [Render Photon Maps], page 75) and the "Number of Photons" is not null. The occlusion effect is rendered to occlusion output variable (see [Occlusion Output Variable], page 65). Environment lighting is rendered to the environment diffuse and environment specular output variables (see [Environment Diffuse Output Variable], page 65 and [Environment Reflection Output Variable], page 64, respectively). The color bleeding effect is rendered to the indirect diffuse output variable (see [Indirect Diffuse Output Variable], page 65).

Point-Based Full Global Illumination Renders global illumination using point-based color bleeding algorithm. Multi-bounce color bleeding will automatically be computed if the "Render Photon Maps" is set to Always or Automatic (see [Render Photon Maps], page 75) and the "Number of Photons" is not null. The color bleeding effect is rendered to the indirect diffuse output variable (see [Indirect Diffuse Output Variable], page 65).

Add To Final Mix When enabled, will add all of the computed components (occlusion, environment diffuse, color bleeding) to the final image. If unchecked, the beauty render will not contain any global illumination color so that only the output variables will contain the different elements; this is more useful in a layer-based pipeline.

Chapter 3: The User Interface

73

Occlusion and Color Bleeding

Figure 3.52: The Global Illumination section Color Bleeding Intensity A multiplier for the color bleeding effect. This attribute is available only when the selected global illumination "effect" is Full Global Illumination. The color bleeding effect is output to the indirect diffuse output variable (see [Indirect Diffuse Output Variable], page 65). Setting this attribute to 0 will produce an image based lighting effect. Cast Shadows From Environment When this attribute is on, the occlusion effect will produce directional shadows based on the environment map being used as a light. Turning this attribute off will produce the same occlusion effect as if no environment map used for image based lighting. This attribute is available only when the selected global illumination "effect" is Full Global Illumination. Black Point White Point These two attributes affect the occlusion computed when "effect" is set to Occlusion or Full Global Illumination. Shadows can be made lighter by setting "black point" to a lighter shade of gray. Unshadowed regions can be made darker by setting "white point" to a darker shade of gray. Completely occluded (shadowed) regions will be set to "black point"; completely visible regions will be set to "white point". In other words, when rays will hit geometry, they will get the "black point" color. If a ray hits no geometry, it gets the "white point" color. If an environment map is defined while in Full Global Illumination, the occlusion is multiplied with the environment color. Samples This attribute specifies the number of samples to use for the occlusion and the color bleeding effects. Higher values produce smoother results and are slower to compute. This attribute is availalbe only when "effect" is set to Occlusion or Full Global Illumination.

Chapter 3: The User Interface

74

Max Distance Specifies the distance after which ray intersection wont be counted. Reducing this distance will have a positive impact on speed. This attribute is availalbe only when "effect" is set to Occlusion or Full Global Illumination. Falloff The falloff affects the intensity of each ray that hits a surface. One can select an exponential or a polynomial falloff type. This attribute is availalbe only when "effect" is set to Occlusion or Full Global Illumination.

Falloff Exponent Specifies the rate at which the falloff will take place. Higher exponents will lead to more contrasty effects. This attribute is availalbe only when "effect" is set to Occlusion or Full Global Illumination.

Environment

Figure 3.53: The Environment section Use Coordinate System The coordinate system to use for the currently selected effect. One can click on the small checker on the right side to create such an environment system. The environment map to be used should then be set in this coordinate system node. See [Global Illumination Effect], page 71 for details about the effect of the environment map for each global illumination effect. Use As Background Turning on this attribute will put the texture specified in the coordinate system as a background plate. This attribute is available only if "use coordinate system" is not set to <None>. Intensity The environment intensity. This attribute affects the intensity of the environment diffuse effect, environment specular effects and the background (when "Use As Background" is enabled). This attribute is available only if "use coordinate system" is not set to <None> and only for the Fast Image Based and Full Global Illumination effects. Specularity This atribute controls the amount of environment specular highlights, reflections and refractions generated. This attribute is available only if "use coordinate system" is not

Chapter 3: The User Interface

75

set to <None> and only for the Fast Image Based and Full Global Illumination effects. Color Gain A color that is multiplied by the environment color. This attribute is available only if "use coordinate system" is not set to <None> and only for the Fast Image Based and Full Global Illumination effects. Color Offset A color that is added to the environment color. This attribute is available only if "use coordinate system" is not set to <None> and only for the Fast Image Based and Full Global Illumination effects.

Photon Maps

Figure 3.54: The Photon Maps section Render Photon Maps This attribute controls if photon maps are rendered. Possible values are: Never Always Automatic Photon Maps are automatically rendered only when [Global Illumination Effect], page 71 is set to Full Global Illumination. When the global illumination "effect" is set to Full Global Illumination, setting this attribute to Always or Automatic will automatically enable multi-bounce color bleeding. Light sources that must not cast photons should have a light attribute node whose "Emit Photon" attribute has been turned off (see Section 3.8.4 [Light Attribute Node Photon Maps], page 47). "Render Photon Maps" is set to Automatic by default. Write photon maps When this attribute is enabled, the global and caustic photon maps are written to the speicifed files. These files can then be reused in subsequent renderings by specifying the file paths in "Global Photon Mpas" and / or "Caustic Photon Maps" and setting "Render Photon Maps" to Never. No photon maps are rendered. Photon maps are always rendered.

Chapter 3: The User Interface

76

Number Of Photons Specifies the total number of photons that will be used in the light simulation. Using more photons gives more precise results, but is longer to compute. Number Of Bounces Specifies the total number of diffuse photon bounces. Global Photon Map Caustic Photon Map These two attributes specifies a global photon map, for effects such as final gathering, and a caustic photon maps. 3DFM uses the one pass technique to compute photon maps (maps are not saved to disk), so these two names are needed only for shaders when calling the photonmap() and caustic() shadeops. One could enter global and caustic in those fields. By default, these two attributes are empty.

Point Cloud

Figure 3.55: The Point Cloud section Bake Camera Specifies a different camera to be used for the pointcloud generation. Usually, a camera that has a better view of the whole scene is selected for this. By default, the viewing camera is used. File Write Mode This attribute controls in what circumstances the point cloud file is rendered. Reuse existing point cloud If the point cloud file specified above does not exists, it will be rendered. If the file already exists, it is assumed to be correct and will not be regenerated. Enabling this option will make subsequent re-renderings faster since the point cloud file will be computed only once. Overwrite existing point cloud Point cloud file is always rendered. This is the default. Shading Rate Multiplier This controls the shading rate (see [Shading Rate], page 56) during point-cloud generation. The higher the shading rate the smaller is the pointcloud. Smaller point-clouds Specifies where the scene point cloud file is to be stored.

Chapter 3: The User Interface

77

will render faster but will give less accurate results during the main render. Common values vary between 0.5 and 16. Max Solid Angle This is a quality vs. speed knob for the point-based occlusion and affects the main rendering (not the point-cloud generation). The higher the value the coarser is the approximation and the faster is the render. Values larger than 0.2 tend to give very noticeable artifacts. Bias This attribute is similar to [Raytrace Bias], page 22, but is used for point-based operations. Its value may be adjusted to remove dark patches on objects.

3.9.3.9 Render Sets A particular render can include only a subset of the scenes objects, lights and clipping planes. A common workflow is to render the scene in layers (foreground, background, ...) for later compositing. This panel lets you control what objects to include in this render. These settings are valid regardless of the "Render Mode" selected (see [Render Mode], page 54). Only the scene elements that are part of the selected sets will end up being output to an image, to a RIB file or to a RIB archive.

Figure 3.56: The Render Sets panel Shader Collection Use this attribute to specify what shader collection to use for this render pass. By default, this attribute is set to <none>. Refer to Section 5.1 [Understanding Collections], page 115 for more about shader collections. Objects to Render This attribute specifies which Maya set to render. When no particular set is specified (default) all objects will be rendered. By default, this attribute is set to all visible objects. Lights to Render This attribute specifies which Maya set to look for the lights to use for this render. By default, this attribute is set to <all visible lights>. Clipping Planes to Render This attribute specifies which Maya set to look for the clipping planes to use for this render. By default, this attribute is set to <all visible clipping planes>. Layer To Render This attribute specifies which Maya render layer to use for rendering. Selecting a render layer here has an effect on all of "Objects to Render", "Lights to Render" and "Clipping Planes to Render" attributes. The scene elements ultimately rendered are the result of the union of the selected render layer and the Maya set selected in

Chapter 3: The User Interface

78

the aforementioned attributes. Put differently, in order to be rendered, a given scene element must be a member of both the selected Maya render layer and the selected Maya set. By default, this attribute is set to <current>, so the rendered layer will be whichever one is currently selected in Maya. When using the batch render or command line rendering, leaving this attribute set to <current> will render all renderable layers. 3.9.3.10 RIB Archives This section contains additional options to fine tune the output of RIB archives. Refer to the Section 5.3 [RIB Archives Guidelines], page 120 for more details about the purpose of a RIB Archive. The following attributes are only relevant when the render pass "Render Mode" is set to RIB Archive. Refer to [Render Mode], page 54.

Figure 3.57: The RIB Archives panel Archive Lighting This attribute will specify how lighting information is output in the RIB archive file. The following options are available: No Lighting No lighting information will be written in the RIB archive file. This option is useful when the desired lighting will change from one scene to another; it will allow objects in the archive to be lit by the light sources linked to the RIB archive node used to insert this archive in a given scene. Light Linking The light linking information will be written in the RIB archive file, but not the light sources themselves. This setting allows light sources parameters (such as position, intensity, light color, etc.) to be changed after the RIB archive file has been written and still see these changes reflected in the archive content. However, the light source names must remain unchanged in the scene where the RIB archive is read back. If a RIB archive node is used to read the archive file back in a scene, it should be linked to all of the light sources whose light linking information is archived to allow proper handling of the light linking information the archive contains. Refer to Section 3.11 [The RIB Archive Node], page 91.

Chapter 3: The User Interface

79

Light Sources & Light Linking The light sources and light linking information is stored in the RIB archive file. This is the default. Archive Write Mode This attribute controls when the RIB archive file is written. The available values are: Reuse existing archive When this value is selected, 3Delight For Maya will check if the archive file specified in the "RIB filename" attribute (see Section 3.9.3.2 [Render Pass Output], page 54). If the file exists, the only things done for each frame is to execute the "Pre Frame MEL" and the "Post Frame MEL" scripts. Refer to Section 3.9.3.14 [Render Pass MEL Scripts], page 83. Overwrite existing archive When this value is selected, the file specified in the "RIB filename" attribute (see [Render Mode], page 54) will be overwritten every time a rendering is requested. Generate RIB Archives3 When this attribute is on and the "Objects to Render" attribute in the Render Sets section (see Section 3.9.3.9 [Render Pass Render Sets], page 77) contains a RIB archive node that can be written, that node will be rendered automatically before this render pass node is rendered. Note that only the frames specified in this render pass Camera section (see Section 3.9.3.1 [Render Pass Camera], page 52) will be rendered for the RIB archive nodes. Refer to Section 3.11 [The RIB Archive Node], page 91. When this option is off, it will be assumed that the required RIB archive file have been created previously. By default, this attribute is on. Ignore Archived Objects4 If this attribute is on, the objects defined in the Render Sets section of all RIB archive nodes that are in this render pass render sets will be removed from the list of objects to render, leaving only the archive to be read. Turn this option off if you want to see both the objects and the archive that they are contained in. By default this option is on. The following options are only available if the render pass "Render Mode" is set to RIB Archive (see [Render Mode], page 54): Archive Transforms This attribute controls whether the object transforms are output to the RIB archive or not. It is on by default. Concatenate Geo Transforms If this attribute is on, the transforms for geometric objects are output as relative transforms. Turn this option off to output absolute transforms, in which case the archived objects will always be positioned at their archived position, regardless of the placement of the RIB archive node used to read the archive back in a scene. This option is on by default. Concatenate Lights Transforms If this attribute is on, the transforms for light sources are output as relative transforms. Turn this option off to output absolute transforms, in which case the archived light
3 4

Not available in the 3Delight for Maya package. Not available in the 3Delight for Maya package.

Chapter 3: The User Interface

80

sources will always be positioned at their archived position, regardless of the placement of the RIB archive node used to read the archive back in a scene. This option is on by default. Archive Geometry Shaders When this attribute is on, the shaders of geometric objects are archived. This option is on by default. Archive Geometry Attributes When this attribute is on, the attributes specified in a geometry attribute node attached to any archived object will be output in the RIB archive file. Turn it off to avoid outputting these attributes in the archive. This option is on by default. 3.9.3.11 RIB Fragments RIB Fragments are used to store in files the geometry data produced right before every rendering. A RIB Fragment file contains the geometry of all objects in the fragments associated object set. Once the fragment file is written, subsequent renderings can simply assume that the objects in the fragments set have already been processed and skip several of the steps that occur before the actual image rendering begins. RIB fragments aim to speed up multiple renderings and multi-frame renderings. When rerendering multiple times the same frame, a single fragment will suffice. When rendering multiple frames, fragments work best when using distinct fragments for static and animated objects. The RIB fragment files contain only geometric information about the objects. All other data, such as light linking, transformations, shading and attributes, are not stored in the fragment file. The RIB archive node is better suited when some (or all) of this extra data is needed in the file; see Section 3.11 [The RIB Archive Node], page 91. If a scene object is set to be in several fragments, only the fragment closer to the top of the list will actually contain that object. In other words, if several fragments are used and only the last ones "Object Set" is set to <all visible objects>, this last fragment will contain only the objects that none of the above fragments contain.

Figure 3.58: The RIB Fragments panel Each fragment is shown in its own panel. To add a fragment, either click on the Add RIB Fragment button , or select "Add RIB Fragment" in the contextual popup menu that appears when

Chapter 3: The User Interface

81

right-clicking almost everywhere in the RIB Fragments panel . This menu also offers options to expand or collapse all display panels at once, and turn on or off all fragments "Use" or "Write" toggles. To remove a display, click on its Remove Display button, which appears as a trashcan. At the top of the RIB Fragments panel are a few general controls, followed by a list of perfragment panels. The general controls affect all RIB fragments, and are: Binary Rib When this options is on, the RIB file will be saved in binary format, producing a smaller file. Turn this option off to produce a text RIB file, which is bigger but easier to edit. By default, this option is off. Compressed Rib This option controls if the RIB file will be compressed, producing a smaller file. By default this option is off. Write Mode This attribute controls when a fragment file is written. The available values are: Reuse existing fragments When this value is selected, 3Delight For Maya will look for the fragment file specified in the fragments "Filename" attribute. If the file exists, then the fragment file is assumed to be up to date, and that completes the geometry output for this fragment. If the file does not exist, it will be created unless the fragments "Write" attribute is turned off. Overwrite existing fragments When this value is selected, the file specified in the fragments "Filename" attribute will be overwritten every time a rendering is requested, unless the fragments "Write" attribute is turned off. This is the default. Add RIB Fragment Clicking on this button will create a new RIB fragment. Each fragment has its own panel showing the attributes that are specific to that fragment. Use When this attribute is off, the fragment is completely ignored and the objects in its "Object Set" will be output as usual. This attribute is on by default. Note that it is possible to change all fragments "Use" attribute at once using the contextual popup menus Use All and Use None menu options. Controls if the fragment file can be written. The condition in which a fragment file is written is determined by the "Write Mode" (see [RIB fragments write mode], page 81). This attribute is on by default. Note that it is possible to change all fragments "Write" attribute at once using the contextual popup menus Write All and Write None menu options.

Write

Remove RIB Fragment This button appears as a small trashcan. Clicking on this button removes the fragment from the render pass. Filename The path of the file that will contain this fragments objects geometric data. If the path is relative, it is assumed to be relative to the 3Delight RIB Fragments project path (see Section 5.5.5 [Automatic File Output Control], page 136). When these objects are animated, it is recommended to add the frame number to the filename; see Section 5.5.4 [File Path Expressions], page 134 for details.

Chapter 3: The User Interface

82

Browse for RIB File button This button, drawn as a folder, brings up a file browser to specify a RIB filename. View RIB button This button, drawn as a magnifying glass, will open the fragments RIB file in a viewing application. See Section 3.17 [The Preferences Window], page 103 for details on how to specify which application should be launched. Object Set This attribute specifies which objects are contained in the fragments file. If an object is set to be in several fragments, only the fragment closest to the top of the fragment list will actually contain the object. The default value is <all visible objects>, which means the fragment will contain all visible objects that are not already in a fragment above this one. 3.9.3.12 RI Filter Plug-ins This section 3.9.3.13 Search Paths This section specifies the search paths 3delight will use when looking for various resources. A search path is a colon or semi-colon separated list of paths. Directories can be separated with / or \ on Windows but only by / on other platforms. Each path can include some special symbols: The @ symbol specifies the default path. Default paths for each resource are settable through the configuration file or through environment variables (refer to 3Delight Users Manual for more information about both configuration file and default environment variables). Environment variables override any value set in the configuration file. The & symbol specifies the previous path list. A word starting with a $ and followed by uppercase letters (e.g. $HOME) is considered as an environment variable and is replaced by its value at render time. The ~ symbol, when placed at the beginning of a path, is equivalent to $HOME. For example, the following would specify a valid search path for textures. @:$HOME/textures:$PROJECT/textures

Figure 3.59: The Search Paths panel Shader Path Texture Path Procedural Path Archive Path Specifies search paths for shaders, textures, procedurals and archives, respectively. By default, all these attributes are set to @, which is the default path specified by the DL_*_PATH variables.

Chapter 3: The User Interface

83

3.9.3.14 MEL Scripts 3Delight For Maya gives you the ability to execute MEL scripts at certain locations during the rendering. This opens up the possibility of doing whatever tweaks required before each rendering. Since 3delight comes with a set of MEL bindings for the RenderMan standard, it also becomes possible to insert RenderMan commands anywhere during rendering (see Chapter 6 [MEL Binding], page 140). This is the equivalent of RIB Boxes in other packages but with the added flexibility of a scripting language. In addition to the MEL scripts listed here, there are others available in geometry attribute nodes (see Section 3.5 [The Geometry Attribute Node], page 15) and in the light attribute nodes (see Section 3.8.8 [Light Attribute Node MEL Scripts], page 48). The following variable is automatically defined in the context of these scripts execution: string $render_pass This variable is assigned the current render pass node name.

Figure 3.60: The MEL Scripts panel Pre Render MEL Post Render MEL Specify scripts to run before and after the rendering is finished, respectively. Those scripts are guaranteed to run first and last. They are also executed outside of any RiBegin/RiEnd block, so these scripts are not appropriate for invoking RenderMan commands. Pre Frame MEL Post Frame MEL Specify scripts to run before and after each frame, respectively. These two scripts are the very first and last things executed for each frame; they are called even before and after the RiBegin/RiEnd block, so these scripts are not appropriate for invoking RenderMan commands. Post Option MEL Specifies a script to execute after all RenderMan options have been issued, but before the camera transforms. This can be used to override any option.

Chapter 3: The User Interface

84

Pre World MEL Specifies a script to execute just before RiWorldBegin which is also right after where the camera transforms are issued. Post World MEL Specifies a script to execute right after RiWorldEnd (but before RiFrameEnd). 3.9.3.15 Advanced This panel provides some additional options for the more advanced user. It is strongly recommended to read more about these parameters in 3Delight Users Manual.

Figure 3.61: The Advanced panel Hider This attribute specifies the type of hidden surface algorithm used. The available options are: hidden raytrace photon The hidden hider will be used. This is the default. The raytrace hider will be used. The photonmap hider will be used. Note that the maps specified in the "Global Photon Map" and "Caustic Photon Map" attributes will be written, regardless of the value of the "Write Photon Maps" attribute. The "Number of Photons" attribute must be set to a value greater than 0. see Section 3.9.3.8 [Render Pass Global Illumination], page 71.

progressive rayrace The raytrace hider will be used, and the rendering is quickly displayed as a complete but coarse image which is progressively refined. Effective only

Chapter 3: The User Interface

85

when one of the displays is using the framebuffer, maya_render_view or i-displaydisplay driver. Bucket Size 3delight renders the image in small regions called buckets. This parameter, expressed in pixels, controls the size of those regions. The default size is 16 x 16, which usually is the best balance between memory usage and performance. Grid Size 3delight splits the geometry into grids of micro-polygons. This parameter, expressed in number of micro-polygons, controls the size of each grids. The default grid size is 256. Texture Memory 3delight manages a cache that holds texture data. This parameter controls the size of the cache. Raise this value if a lot of textures are used. Eye splits Sets the maximum limit of geometry splits for objects that cross the eye-plane. A more complete discussion about eye-splits can be found in 3Delight Users Manual. The default value for this attribute is 10. Opacity Threshold Specifies a surface opacity value above which a surface is considered opaque. This gives the opportunity to 3delight to cull more geometry in very dense regions (such as patches of fur). The default value of (0.996, 0.996, 0.996) is a good quality vs. performance trade-off. Z Threshold Controls the opacity value of the objects used for the Z output. Only objects with opacities greater than or equal to the Z Threshold will be used in the Z output. The main reason to modify the default value of [0.996, 0.996, 0.996] is when using the zmin or zmax pixel filters with transparent or semi-opaque objects. If this value is set to [0.0, 0.0, 0.0] all objects will be included in the Z output, even completely transparent ones. Note that changing the Z ouptput can affect some raytracing operations. For users familiar with the RenderMan standard, this is the equivalent of the following RiOption: Option "limits" "zthreshold" [r g b] Number Of CPUs Sets the number of threads to use for this render. If set to 0, the renderer will use all processors available. This is the default. Translate Maya Shaders This toggle controls if the translation from Maya s HyperShade shaders to RenderMan shaders occurs. When turned off, the translation process is skipped but the renderer might still look for the translated shaders, depending on the value of the "Use Maya Shader" attribute. By default, this attribute is on. Use Maya Shaders This toggle controls if the renderer will look for translated Maya shaders or not. By default, this attribute is on. Translate Maya Shaders With This attribute controls which AOVs will be computed in translated Maya shaders. The available options are:

Chapter 3: The User Interface

86

Default AOVs for Render Mode When the "Render Mode" is set to "Render", only the AOVs defined in the "displays" section of the render pass will be computed. If the "Render Mode" is set to RIB Archive, all predefined AOVs will be computed in the translated shaders if they are output in a display. This is the default. Defined AOVs Only Only the AOVs defined in the "displays" section of the render pass will be computed in translated shaders. All AOVs All predefined and displayed AOVs will be computed in the translated shaders. While more flexible, this can result in slightly slower rendering times as the rendered needs to verify if each one of the AOV is being displayed before it is computed.

Standard Atmosphere This toggle controls which algorithm is used for volume (interior and atmosphere) shaders. When this attribute is on, the traditional algorithm is used, which can be slower and has problems with transparent surfaces. When off, an alternate algorithm is used that deals better with these issues. Note that the volume shader needs to be written appropriately to work correctly when this attribute is off. If a volume shader is not rendering properly, it may render correctly with this attribute turned on. Please refer to the 3Delight Users Manual for more details about the standardatmosphere render option. Volume Shading Rate This options controls the frequency of shading for interior shaders. It also applies to atmosphere shaders if the "standardatmosphere" option is set to 0. The default voume shading rate is 1.0. 3.9.3.16 Network Cache

Figure 3.62: The Network Cache panel 3delight has a unique feature that improves performance when rendering over networked environments5 : the renderer can cache textures that are located on the network to the local hard drive for faster data access and saving network bandwith. The network cache content is updated automatically - when files are modified on the file server, the local (cached) copies will automatically be updated the first time they are needed for a rendering. Use Net Cache A toggle enabling or disabling the network cache. By default, this toggle is off.
5

Not included in the 3Delight for Maya package

Chapter 3: The User Interface

87

Net Cache Dir Specifies the directory in which files will be cached. This directory should be local to the machine that performs the render. A common choice is /tmp/3delight. By default, this attribute is empty. Net Cache Size Specifies the maximum size of the cache, in megabytes. The default size is 200 MB. When the net cache attains that size, accessing a uncached file will automatically discard the least recently accessed file in the cache. Since textures, shadow maps and RIB files will be cached, the cache can fill up rapidly. The network cache will only use disk space up to the size specified. 3.9.3.17 Statistics

Figure 3.63: The Statistics Panel 3delight can provide many useful statistics at the end of each rendered frame. This section controls the statistics level of detail and output file. Output Render Progress Turning on this attribute will make 3Delight report the rendering progress to standard error (stderr). This attribute is off by default. Statistics Level Specifies statistics verbosity: 0 gives no statistics and 3 provides all the available statistics. The default level is 0. Statistics File When specified, will contain the statistics output in text format. Note that if you are rendering to a TIFF, you can provide the name of that file to contain statistics6 ! This is very useful since it keeps statistics bound to their rendered image. By default, this attribute is empty. 3.9.3.18 User Options and Attributes In a similar fashion to how extra attributes on geometry attribute nodes are handled (see Section 3.5.17 [Geometry Attribute Node User Attributes], page 39), it is possible to define custom attributes on a Render Pass node that are output as either user RiOption or user RiAttribute. Each Render Pass node can define as many arbitrary user attributes as needed. 3Delight for Maya will look for attributes whose name begin with "attribute user " and will produce them as user RiAttributes. To define user RiOptions, the attribute name should begin with "option user " For instance, a color float3 attribute named attribute_user_colorMultiplier will produce a RiAttribute colorMultiplier. The supported attribute types are: string
6

Statistics will be written as a TIFF tag.

Chapter 3: The User Interface

88

bool long, long2, long3 float, float2, float3 (color or non-color) double, double2, double3

Chapter 3: The User Interface

89

3.10 The 3Delight Render Settings


The 3Delight Render Settings are accessible in Maya s Render Settings window once 3Delight is set as the current renderer. This is done by selecting 3Delight in the Render using option menu of the Render Settings window. Since all rendering options are inside render pass nodes, the render settings offer a few gadgets to select which render pass will be used when a rendering is launched. The attributes of the selected render pass are displayed right after, just like they are in the Attribute Editor . Refer to Section 3.9.3 [Render Pass Attributes], page 52 for details about these attributes.

Figure 3.64: The 3Delight Render Settings The Selected Render Pass option menu lists all render pass nodes currently in the scene. The selected one will be used for all renderings launched using Render Current Frame or Batch Render options of Mayas Render menu. The texture button on the right of the option menu creates a new render pass node and set it as the one being selected for the "Selected Render Pass" attribute. The AE button next to the texture button can be used to display the render pass node current selected for rendering in the Attribute Editor . By default, <default> is assigned as the selected render pass. This setting creates a empty render pass node that is deleted right after the rendering process completes. The same default attribute values as when a full render pass is created are used for rendering, except for the following modifications:

Chapter 3: The User Interface

90

when the render process is launched by the Render Current Frame menu option, the "Display Driver" of the Primary Display set to maya render view. This also applies if the Selected Render Pass does not contain any displays. when the render process is launched by the Render Current Frame menu option, the render camera will be specified by Maya (and usually is the camera of the most recently selected vscene viewport). This also applies if the Selected Render Pass does not contain a "Camera" attribute. when the rendering is launched used the Batch Render menu option, the "Display Driver" of the Primary Display is set to tiff and the "Image Filename" of the Primary Display is set to create a tiff file whose name contains the scene name, the frame number and the .tif extension. This file will be created in a 3delight/images folder located under the current project directory. This will also apply if the Selected Render Pass does not contain any displays.

Chapter 3: The User Interface

91

3.11 The RIB Archive Node


3.11.1 Overview A RIB Archive is a group of objects exported to a RIB file that is intended to be read back into a scene later on. This approach offers various benefits: the scene can be made lighter as several objects are replaced by a single node used to read the archive; the RIB generation time and the disk space the files occupy can be decreased as common objects for all frames can be put in files shared by all frames instead of being duplicated in each frame file, etc. In 3Delight for Maya, RIB archives can be read into a scene by the RIB archive node, while archive files can be written by setting the "Output Mode" of a render pass to RIB Archive (see Section 3.9.3.2 [Render Pass Output], page 54). Both nodes can be connected together to allow automatic archiving of selected scene elements. Refer to Section 5.3 [RIB Archives Guidelines], page 120 for examples on all these options. 3.11.2 RIB Archive Node User Interface The RIB archive node1 is used to read existing archives in a scene. It also offers a convenient interface to connect it to a render pass to allow RIB archive file creation and reading all at once.

Figure 3.65: The RIB Archive panel To create an RIB archive node use the Add RIB Archive item of the 3Delight menu. The following RIB archive node attributes are available in the Attribute Editor : Archive Pass This option menu lists render passes whose "Output Mode" have been set to RIB Archive (see Section 3.9.3.2 [Render Pass Output], page 54). When a render pass is selected in this menu, the RIB archive node is connected to that render pass. The connected render pass will be used to create the RIB archive file; it will also provide a bounding box (as soon as it is rendered) and a value for the "RIB Filename" attribute of the RIB archive node. When a render pass is connected, the "Archive Read Mode" is automatically set to Delayed. By default, the option menu is set to <none>. There are two buttons to the right of this option menu:
1

not included in the 3Delight for Maya package

Chapter 3: The User Interface

92

Texture button Used to create a new render pass node. This new node will be connected to the RIB archive node. It will also have its "Render Mode" attribute set to RIB Archive. Its "RIB Filename" will have a default filename based on the RIB archive node that it is connected to. AE button Used to show the connected render pass in the Attribute Editor . Archive Read Mode This attribute controls how the archive reading will happen when rendering. The following values are available: Delayed This value will have the renderer read the archive only when the space included in its bounding box is visible to the camera. This is the most efficient option as the archive will only be read when necessary. To work properly, a decent bounding box needs to be defined, which is always the case when the archive has been created by a render pas. Refer to Section 5.3.2 [Reading a RIB Archive], page 120 for more details about this. This value will have the renderer read the archive file as soon as it encounters the directive, meaning that the file will be read regardless of whether the archive is visible to the camera or not. This option should be used when the bounding box attributes should be ignored. Ignore Rib File Bbox When this attribute is on, any bounding box information contained in the RIB archive file is ignored. The Bbox Min and BboxMax attributes are unlocked and can be modified. Bbox Min Bbox Max Bbox Scale This attribute specifies scale factors to resize the archive bounding box in the x, y and z directions. This attribute lists the minimum point in x, y and z for the archive bounding box. This attribute lists the maximum point in x, y and z for the archive bounding box.

Immediate

Chapter 3: The User Interface

93

3.12 The RenderMan Code Node


3.12.1 RenderMan Code Overview To shade an object, it is possible to attach a RenderMan shader node to it, and it is also possible to do nothing special, in which case 3Delight for Maya will translate the Hypershade shading network attached to the object to a human readable RenderMan Shading Language shader. Sometimes it is also nice to have a little bit of both; this is possible with the RenderMan Code node. The RenderMan Code node is a utility Hypershade node provided by 3Delight for Maya that allows insertion of RenderMan Shading Language code in the Hypershade network. This means that it is possible to provide any Maya Hypershade node the result of any RenderMan Shading Language computation. To create a RenderMan Code node, simply click on its icon, which is located in the General Utility section of the node list in the Hypershade. Refer to the following rendering guidelines for examples on how this node can be used: Section 5.4.2 [Using Attributes to Export Primitive Variables], page 124 Section 5.4.3 [Exporting Per-Vertex Attributes on Polygon Meshes], page 125 Section 5.4.4 [Exporting Particle Attributes], page 127 3.12.2 RenderMan Code User Interface When a RenderMan Code node is selected, the following gadgets are displayed in the Attribute Editor :

Figure 3.66: The RenderMan Code panel Shading Parameters This attribute lists the parameters for the node. This attribute will define node plugs and shader parameters for the node. Once defined, the Parameters panel will list the input and output plugs. To edit this attribute, click on the Edit in Text Editor button next to it. The parameters need to be declared each on its own line. The following parameters can be defined:

Chapter 3: The User Interface

94

type name This will define an input plug of type type and name it name. type can be one of the following: float float2 Used for arrays of 2 floats float3 Used for arrays of 3 floats string name is a string that defines the name of the plug. output type name Prepending output to a plug definition defines an output plug. See [input plug definition], page 94 for details about the type and the name. shader_input rsl_type name This keyword is not used to define a plug for the node, but instead it will define a shader input parameter (i.e. a parameter that can be fed a value through the RiSurface call). rsl type is any legal type in the RenderMan Shading Language. When a parameter value is expected to change during the object shading, it is recommended to prepend varying to the type name. The variable name is specified by name. shader_output rsl_type name This keyword is used to define a shader arbitrary output variable (AOV). rsl type is any legal type in the RenderMan Shading Language. The variable name is specified by name. By default, this attribute contains a comment block that summarizes its usage. Shading Code This attribute specifies the RenderMan Shading Language code that will be inserted in the shading network. To edit this attribute, click on the Edit in Text Editor button next to it. The code specified by this attribute will be put in a function where all parameters defined by the Shading Parameters attribute will be available. Additionally, standard variables such as P and N can be accessed with an external declaration. 3Delight for Maya also defines the variables float ss and float tt when translating Hypershade shading networks; these two variables hold the texture coordinates generated and manipulated by the various Hypershade nodes. By default, this attribute contains a comment block that summarizes its usage. Parameters The content of this panel is generated based on what is assigned to the "Shading Parameters" attribute. It will list all the input and output plugs defined for this node, with gadgets relevant for the plug type.

Chapter 3: The User Interface

95

3.13 The RenderMan Material Node


3.13.1 RenderMan Material Overview The RenderMan Material node allows RenderMan Shading Language objects to be used as a part of a regular Hypershade shading network.

To create a RenderMan Material node, simply click on its icon, which is located in the General Utility section of the node list in the Hypershade . Or, in the Node Editor , press tab and type rendermanMaterial.

3.13.2 What shaders work as a RenderMan Material Although regular RenderMan shaders can be used inside a RenderMan Material, some requirements of the integration within the Hypershade makes them not ideal for this task. The main issue with these shaders is that they rely on shader parameters to control the shading, and these parameters cannot receive a value from another Hypershade node. Within this constraint, some shader types (like surface shaders) are usable as a RenderMan Material.

A better candidate for being used as a RenderMan Material would consist of a shader that is written as a class and defines at least one method, and relies on method parameters to control the shading. Method parameters can be connected to other hypershade nodes (as long as they are varying ).

3.13.3 RenderMan Material User Interface When a RenderMan Material node is first created, the following gadgets are displayed in the Attribute Editor :

Figure 3.67: The RenderMan Material panel for a newly created node Clicking on the folder button will bring up the Shader Selector . Once a shader file is selected, the Attribute Editor will look like a variation of the following gadgets.

Chapter 3: The User Interface

96

Figure 3.68: The RenderMan Material panel This attribute displays the currently selected shader file that is used as a material. Clicking on the folder button will bring up the Shader Selector window; selecting a new shader file will delete all existing attributes in the RenderMan Material node and re-initialize it with the newly selected file. Shading Parameters This section lists the parameters passed to the shader object. Each shader object parameter will have a related attribute displayed here. It is possible to use expressions or keys to define value for these attributes. However, it is not possible to connect other Hypershade nodes as an input to these attributes. For this reason, it is advisable to use the elements of the Calls section instead. Calls This section contains the list of the calls that will be made for this material. There are two types of calls: methods and accessors. When using a classic RenderMan shader as a material, it will define only one method; for instance, surface method for a surface

Chapter 3: The User Interface

97

shader. By default, one call is created per method and per public data member defined in the shader. The order in which they are listed in the order they will be evaluated. Add Call Clicking on this button will display a popup menu listing the available methods and public data members. Selecting one will add a call to it at the end on the current call list.

Method Call Each method call will be displayed in its own sub-section. The sub-section title will indicate the method name, a unique number, and (method) to indicate that this element is a method call. Return values and output parameters will be displayed as read-only, since their value is computed by the shader. They can be connected as inputs to other hypershade node plugs. Input parameters will be displayed as writable attributes and they can be connected as outputs to other Hypershade nodes. Accessor Call A public data members value can be retrieved using an accessor call. Each accessor call will also be displayed in the call list in its own subsection. The sub-section title will indicate the public data member name, a unique number and accessor to indicate that this element is an accessor call. The sub-section will contain only one read-only attribute, since public data members value can only be retrieved. The purpose of displaying them in the Attribute Editor is to visualize the order in which the calls are going to be made, since retriving the value of a data member before and after a method call could yeld different results. Furthermore, right-clicking on a calls sub-section bar will display a popup menu offering the following operations: Move Call Up Move the call toward the top of the list so it is evaluated earlier. Move Call Down Move the call toward the bottom of the list so it is evaluated later. Remove Call Delete this call.

Chapter 3: The User Interface

98

3.14 The Coordinate System Node


3.14.1 Overview Coordinate system nodes are used to position and orient an axis system. This defines a space that can then be passed as a parameter to shaders. For instance, a coordinate system node can be used to orient the environment map used by a shader. While the coordinate system is output to RIB, it is not a renderable object. The way it is drawn in the scene view can be changed to allow better positioning; this appearance will not be visible in the rendering. 3.14.2 Drawing

Figure 3.69: The Coordinate System Node Drawing Panel This section presents the possible options that controls how the coordinate system node is drawn in the scene view. Draw Method This attribute controls the shape used to draw the coordinate system. Available draw methods are: Plane Sphere Cylinder Dome The node is drawn as a vertical 1 x 1 plane. The node is drawn as a sphere with a radius of 1. The node is drawn as a cylinder with a radius of 1 and a height of 1. The node is drawn as a sphere that encloses everything in the scene. The scene bounding sphere is computed every time the "Draw Method" attribute is set to Dome. If this draw method is selected, the following attributes become available: "Texture Filename", "Texture Opacity" and "Texture is HDRI".

Texture Filename Specifies the file to be used as a texture for drawing the dome in the scene view. The texture should be a file processed with 3Delight s tdlmake utility and will be visible when the coordinate system node is drawn in Smooth Shade. This attribute is empty by default. Texture Opacity Sets the opacity of the domes texture. If the texture has an alpha channel, the alpha values are multiplied by this value. This attribute is set to 0.75 by default. Texture Resolution This attribute controls the resolution of the preview copy of the texture displayed in the scene view.

Chapter 3: The User Interface

99

Texture is HDRI This attribute indicates to 3Delight For Maya that the selected dome texture should be treated as high dynamic range image. When this attribute is on, texture values are compressed in the visible range, which helps viewing high dynamic range images (HDRI). For low dynamic range (regular) textures, it is best to set this attribute to off, which is the default.

Chapter 3: The User Interface

100

3.15 The Clipping Plane Node


The clipping plane node is used to define clipping planes. Objects, or part of objects, beyond the plane are discarded by the renderer. Clipping planes can be grouped in sets, and the set that should be used for rendering should be selected in the render pass nodes "Clipping Planes" attribute. Refer to [Clipping planes to Render], page 77.

Chapter 3: The User Interface

101

3.16 The CSG Node


3.16.1 Overview The CSG (Constructive Solid Geometry) Node is used to define how some objects are combined together to form a solid. It operates on transforms, shapes and on other CSG nodes. It is possible to define complex solids that result from multiple boolean operations by selecting a CSG node as an operand of another CSG node. 3.16.2 User Interface

Figure 3.70: The CSG node panel Operation This attribute specifies the type of boolean operation that will be applied to the selected nodes. Available options are: Union The resulting solid will be the union of the selected nodes. This is the default.

Intersection The resulting solid will be the intersection of the selected nodes. Difference The resulting solid will be the difference between the selected nodes. Select closed objects This button brings up a selection window that lists geometric objects shapes, transforms, CSG nodes and sets. Each selected item will be considered as a single primitive for the CSG operation. It is not recommended to select both a shape and a set that includes that shape. Select closed objects to substract This button is only available when the "Operation" attribute is set to Difference. It brings up a selection window identical to the one brought up by the Select closed objects button. The items selected here will be subtracted from the items selected via the Select closed objects button.

Chapter 3: The User Interface

102

note: The Difference operator is only defined when two set of objects are available, contrary to the Union and Intersection operators that are defined with a single set of objects. This explains the need for a second object selector.

Chapter 3: The User Interface

103

3.17 The Preferences Window


3.17.1 Overview The 3Delight preferences window contains settings that remains effective across all Maya scenes. 3.17.2 File Viewing Applications

Figure 3.71: The File Viewing Applications Preferences It is possible to define which application will be used to visualize the following file types: RIB Log This application will be launched to view RIB files. The default application is WordPad on Windows and TextEdit on Mac OSX. There is no default application on Linux. This application will be launched to view rendering log files. The default application is WordPad on Windows and Console on Mac OSX. There is no default application on Linux. This application will be launched to view images. The default application is i-display on all platforms. This application will be launched to view shadow maps. The default application is i-display on all platforms. Photonmap This application will be launched to view photon maps. The default application is ptcview on all platforms. Statistics This application will be launched to view statistics output by the rendering process. The default application is Internet Explorer on Windows, Safari on Mac OSX and Firefox on Linux.

Image Shadowmap

Chapter 3: The User Interface

104

3.17.3 Shaders

Figure 3.72: The Shaders Preferences Shader Preview The options presented in this tab affect the shader nodes preview swatch visible when a shader node is displayed in the attribute editor . The shader preview can also be launched in i-display via the Preview Shaders contextual menu option in the 3Delight Relationship Editor Primitive This attribute determines the geometry that is rendered when previewing a shader. The available values are: Sphere Teapot Custom The shader will be applied to a sphere. This is the default. The shader will be applied to a teapot. The shader will by applied to the RIB file specified in the "Primitive RIB Archive".

Primitive RIB archive This attribute specifies the path to a RIB archive that is assumed to contain the geometry to be used for preview renders. This attribute is available only when "Primitive" is set to Custom. The RIB file should contain geometry centered at the origin that has no shaders. This attribute is empty by default. Primitive Scale This attribute specifies the scaling factor to apply on the shader preview primitive. It is set to 1.0 by default. Shading Rate This attribute specifies the shading rate to use for preview renders. It is set to 1.0 by default.

Chapter 3: The User Interface

105

Shader Nodes Hide Attributes Shader nodes with a lot of parameters tend to display slowly in the attribute editor . This attribute specifies the number of shader parameters over which 3Delight for Maya will automatically set all shader parameter attributes as hidden. Hidden attributes are ignored by all Maya editors; they will still be displayed in the attribute editor but not in any other maya editor. Hidden attributes speed up the attribute editor refreshes quite a bit. It is possible to hide or unhide attributes on a per-shader basis by selecting the Hide Shader Attributes toggle in the contextual menu shown when right-clicking on a shader node in the 3Delight Relationship Editor or inside the Attribute Editor while it is displaying a shader node.

Chapter 4: The Render Command Line Interface

106

4 The Render Command Line Interface


4.1 Overview
3Delight renders can be launched using Maya s command line renderer. 3Delight For Maya has command line parameters to control just about every aspect of the rendering process. The following command gives a list of the available command line parameters specific to the 3Delight For Maya plug-in: Render -r 3delight -help Issuing the Render command with only the -r 3delight option will render the renderd pass that is selected in the 3Delight Render Settings when the scene was saved. If no render pass was selected, a default render pass will be created for rendering, with the same parameters as the default ones used for batch rendering. Refer to Section 3.10 [The 3Delight Render Settings], page 89.

4.2 Options
Just about all render pass attributes used for rendering can be set with the command line interface. The available parameters are listed below. Refer to Section 3.9 [The Render Pass], page 50 for more information about the effect of each render pass attribute. General options -3dfmshave <boolean> Load or unload the 3dfmShave plugin. Render Pass selection options Since all options that change the render pass attributes operate on the currently selected render pass, this option should be specified right after the -r 3delight option. -rp <string> Select <string> as the render pass node used for rendering. If the specified node does not exists, the selected render pass will remain unchanged. Render Pass Camera options The following options control the attributes grouped under the render pass Camera panel: -cam <string> Select <string> as the camera to be rendered. -x <int> -y <int> Set the rendered image width. Set the rendered image height.

-resm <int> Specify the resolution multiplier. The following values are available: 0 1 2 3 Full resolution. One half of the specified resolution. One quarter of the specified resolution. One eighth of the specified resolution.

-par <float> Specify the pixel aspect ratio of the rendered image.

Chapter 4: The Render Command Line Interface

107

-an <boolean> Toggle the rendering of the specified frame sequence on or off. -s <int> -e <int> -inc <int> Defines the frame increment. -crop <boolean> Controls if the specified crop window is used for rendering. -crminx <float> Set the top right corner position of the crop window in X. -crminy <float> Set the top right corner position of the crop window in Y. -crmaxx <float> Set the bottom left corner position of the crop window in X. -crmaxy <float> Set the bottom left corner position of the crop window in Y. -bo <int> Specify the bucket order to be used. The following values are available: 0 1 2 3 4 Horizontal bucket order. Vertical bucket order. Zigzag bucket order. Spiral bucket order. Circle bucket order. Set the first frame to render. Set the last frame to render.

-is <boolean> Toggle the use of imager shaders attached to the specified camera. Render Pass Output options The following options control the attributes grouped under the render pass Output panel: -rmode <int> Specify the render mode. The following values are available: 0 1 2 Render Save RIB
RIB Archive

-ribfile <string> Specify the RIB filename to create. -ribbin <boolean> Toggle binary RIB output. -ribcomp <boolean> Toggle compressed RIB output.

Chapter 4: The Render Command Line Interface

108

Render Pass Quality options The following options control the attributes grouped under the render pass Quality panel: -psx <int> Specify the pixel samples to use in X. -psy <int> Specify the pixel samples to use in Y. -sr <float> Define the shading rate to use. -pft <int> Specify the pixel filter type. The following values are available: 0 1 2 3 4 5 Box filter Triangle filter Gaussian filter Catmull-rom filter Bessel filter Sinc

-pfx <float> Set the pixel filter width in X. -pfy <float> Set the pixel filter width in Y. -rtmaxd <int> Specify the raytrace maximum depth. Render Pass Motion Blur options The following options control the attributes grouped under the render pass Motion Blur panel: -cmb <boolean> Toggle the camera blur on or off. -cmbs <int> Set the number of samples for camera blur. -tmb <boolean> Toggle the transformation blur on or off. -tmbs <int> Set the number of samples for transformation blur. -dmb <boolean> Toggle the deformation blur on or off. -dmbs <int> Set the number of samples for deformation blur. -mbp <int> Set the motion blur position. The following values are available: 0 End on frame

Chapter 4: The Render Command Line Interface

109

1 2

Centered on frame Start on frame

-soe <float> Define the shutter opening efficiency. -sce <float> Define the shutter closing efficiency. -sa <float> Set the shutter angle for motion blur. <float> should be between 1 and 306. Render Pass Primary Display options The following options control the attributes grouped under the render pass Primary Display panel: -rpd <boolean> Toggle the rendering of the primary display on or off. -img <string> Specify the image filename of the primary display. -of <string> Specify the primary display output file format (i.e. the display driver to use). Note that when this option is used, there is no need to also use the -pdd option. The following values are available: framebuffer, idisplay, tiff, iff, exr, cineon, zfile, bmp, epx, psd, radiance, shadowmap, texture and null. -pdd <int> Specify the primary display driver to use. Note that when this option is used, there is no need to also use the -of option. The following values are available: 0 1 2 3 4 5 6 7 8 9 10 11 12 Framebuffer i-display Maya Render View. This option is not recommended in command line mode. tiff iff exr cineon zfile bmp eps psd radiance null

Chapter 4: The Render Command Line Interface

110

13 14

shadowmap texture

-pdm <string> Specify the primary display mode. -pdbd <int> Set the primary display bit depth. The following values are available: 0 1 2 3 8 bits int 16 bits int 32 bits float Custom Quantize

-pdqzero <int> Set the zero value for quantization. Only relevant when setting the primary display bit depth to custom quantize. See [-pdbd], page 110. -pdqone <int> Set the one value for quantization. Only relevant when setting the primary display bit depth to custom quantize. See [-pdbd], page 110. -pdqmin <int> Set the minimum value for quantization. Only relevant when setting the primary display bit depth to custom quantize. See [-pdbd], page 110. -pdqmax <int> Set the maximum value for quantization. Only relevant when setting the primary display bit depth to custom quantize. See [-pdbd], page 110. -pdqdit <float> Set the dither value for quantization. Only relevant when setting the primary display bit depth to custom quantize. See [-pdbd], page 110. Render Pass Secondary Display options The following options control the attributes grouped under the render pass Secondary Display panel: -rsd <boolean> Toggle the rendering of the secondary displays on or off. Render Pass Shadow Maps options The following options control the attributes grouped under the render pass Shadow Maps panel: -rsm <boolean> Toggle the shadow map rendering on or off. -dssm <boolean> Controls if the displacement shaders are used in the shadow map renderings. -sssm <boolean> Controls if the surface shaders are used in the shadow map renderings. -assm <boolean> Controls if the atmosphere shaders are used in the shadow map renderings.

Chapter 4: The Render Command Line Interface

111

-issm <boolean> Controls if the interior shaders are used in the shadow map renderings. -ztr <float> Set the red value for the z threshold. -ztg <float> Set the green value for the z threshold. -ztb <float> Set the blue value for the z threshold. Render Pass Photon Maps options The following options control the attributes grouped under the render pass Photon Maps panel: -rpm <boolean> Toggle the rendering of the photon maps on or off. -nbp <int> Set the number of photons. -gpm <string> Specify the global photon map to use. -cpm <string> Specify the caustic map to use. Render Pass Render Sets options The following options control the attributes grouped under the render pass Render Sets panel: -sc <string> Specify the shader collection to render. Specify an empty string to use no shader collections. -ors <string> Specify the object set to render. Specify an empty string to render all visible objects. -lrs <string> Specify the light set to render. Specify an empty string to render all visible lights. -cprs <string> Specify the clipping plane set to render. Specify an empty string to render all visible clipping planes. -lr <boolean|name(s)> -rl <boolean|name(s)> Specify the Maya render layer to render. It is possible to specify multiple layer names, as long as they are separated by a space and the list is surrounded by double quotes. If this parameter is set to on, true or 1, all renderable layers will be rendered. If an empty string, off, false or 0 is specified, the defaultRenderLayer (or masterLayer) will be used. When this parameter is not specified, all renderable layers will be rendered, unless the selected render pass specifies which layer is to be rendered with its "Layer To Render" attribute. In this case, only this layer will be rendered, provided it is renderable. If it is not renderable, nothing will be rendered.

Chapter 4: The Render Command Line Interface

112

Render Pass RIB Archives options The following options control the attributes grouped under the render pass RIB Archives panel: -arl <int> Specify how to archive lighting. The following values are available: 0 1 arw <int> Set the archive write mode. The following values are available: 0 1 Reuse existing archive. Overwrite existing archive. No Lighting. Light Linking.

Light Sources & Light Linking

-grar <boolean> Generate RIB archives toggle. -iao <boolean> Ignore archived objects toggle. -art <boolean> Archive transforms toggle. -cgt <boolean> Concatenate geo transforms toggle. -args <boolean> Archive geo shaders toggle. -args <boolean> Archive geo attributes toggle. Render Pass Search Flags options The following options control the attributes grouped under the render pass Search Flags panel: -shp <string> Specify the shaders search path. -txp <string> Specify the textures search path. -prp <string> Specify the procedural search path. Render Pass MEL Scripts options The following options control the attributes grouped under the render pass MEL Scripts panel: -preRender <string> MEL script executed before rendering. -postRender <string> MEL script executed after rendering. -preFrame <string> MEL script executed before each frame is rendered.

Chapter 4: The Render Command Line Interface

113

-postFrame <string> MEL script executed after each frame is rendered. -postOption <string> MEL script executed after the RiOptions are output. -preWorld <string> MEL script executed before RiWorldBegin. Render Pass Advanced options The following options control the attributes grouped under the render pass Advanced panel: -bsx <int> Set the bucket size in X. -bsy <int> Set the bucket size in Y. -gs <int> Define the grid size. -txm <int> Set the size of the texture memory cache, in megabytes. -es <int> Define the eye splits. -otr <float> Set the red value of the opacity threshold. -otg <float> Set the green value of the opacity threshold. -otb <float> Set the blue value of the opacity threshold. -cpus <int> Define the number of cpus to use. -tms <boolean> Toggle the translation of Maya shaders on or off. -ums <boolean> Toggle the use of Maya shaders on or off. Render Pass Network Cache options The following options control the attributes grouped under the render pass Network Cache panel: -unc <boolean> Toggle the use of network cache on or off. -ncdir <string> Specify the network cache directory. -ncs <int> Specify the network cache size. Render Pass Statistics options The following options control the attributes grouped under the render pass Statistics panel:

Chapter 4: The Render Command Line Interface

114

-prog <bool> Turn on or of the progress indication of the currently rendered display. -statl <int> Set the statistics level. -statf <string> Define the statistics file.

Chapter 5: Rendering Guidelines

115

5 Rendering Guidelines
5.1 Understanding Collections
Collections are a context sensitive shader and attribute assignment strategy, the context being defined by a render pass. When 3Delight For Maya sends an object for rendering, it goes through the following steps to decide what shader to use (same decision path is followed for attributes): 1. If the rendered pass has a collection specified in "Render Set" (see Section 3.9.3.9 [Render Pass Render Sets], page 77) and the collection has a RenderMan shader specified in "Override Shaders", use it. 2. If the render pass has a collection specified in "Render Set" and the object has a RenderMan shader specified in "Collection Shaders" for the same collection, use it. 3. If the object has a RenderMan shader specified in "Object Shaders", use it. 4. Use Maya s HyperShade network as the shader. This what will happen when rendering a Maya scene that has no passes. Collections are a powerful tool in multi-pass rendering. Say that you have a specular and a diffuse pass, in the specular pass you want to use a Phong shader and in the diffuse pass you want to perform some ambient occlusion. You can achieve this by following these steps: Create two collections, one specular and one diffuse. Collections can be created by clicking on the texture square near the "Collections" line in the assignment panel (first line in the panel, left hand side). Create two render passes: one choosing the specular collections and the other one choosing the diffuse collection in the Render Sets section (see Section 3.9.3.9 [Render Pass Render Sets], page 77). Using the assignment panel, assign a specular shader (such as metal) to your object in the specular collection and attach some ambient occlusion shader in the diffuse collection Rendering the first pass will give you the specular highlights and rendering the second pass gives you the ambient occlusion. This working scheme frees you from writing big shaders with builtin context sensitive code (which often gets messy) and encourages you to write re-usable, simpler shaders.

5.2 Lighting Guidelines


5.2.1 Depth Map Shadows With Maya Lights The same attributes that control depth shadow maps in Maya are acknowledged by 3Delight for Maya : 1. In the Depth Map Shadow Attribute panel of a light node, check the "Use Depth Map Shadows" toggle. 2. Create a render pass node by using the Add Render Pass item in the 3Delight menu and hit the Render button it displays in the Attribute Editor . Or, use an existing render pass node and make sure its "Render Shadow Maps" attribute in the Shadow Maps panel is checked. 5.2.2 Ray Traced Shadows With Maya Lights In 3Delight for Maya, objects are visible to shadow rays by default so no extra steps are required to render ray traced shadows. Mayas default visibility attributes (Render Stats) can be overridden if needed. For example, to disable shadow casting for a group of objects:

Chapter 5: Rendering Guidelines

116

1. For each light casting ray traced shadows, enable its "Use Ray Trace Shadows" attribute. 2. In 3Delights Relationship Editor , create a geometry attribute node and assign it to the desired objects. 3. In the geometry attributes nodes, add a "Transmission" visibility attribute and set it to None. 5.2.3 Deep Shadow Maps With Maya Lights Here is a quick procedure to produce deep shadow maps: 1. In 3Delight s relationship editor, create a light attribute and assign it to the light source(s) for which deep shadow map generation is desired. 2. Display the attribute in the Attribute Editor . 3. Turn on the "Generate Shadow Maps" toggle. 4. Select deep for the "Shadow Map Type". 5. Select 3Delight as the default renderer and render. It is recommended that, in each light node, the "Bias" attribute1 is set to 0.2. Note that the same procedure can be used to create depth map shadows. Simply set the "Shadow Map Type" attribute to normal. 5.2.4 Lighting and Shadowing With RenderMan Light Shaders A RenderMan light shader node can be easily assigned to a Maya light using the following steps: 1. Open 3Delights Relationship Editor . 2. Create a RenderMan light shader node. 3. Assign the RenderMan light shader to the maya light. 4. Show the RenderMan shader node in the Attribute Editor by clicking on the icon left of the shader name and set the desired RenderMan shader parameters. 5. Assign relevant values for the various shader attributes. Note that by default, these attributes are independent from the light node attributes. note: Most RenderMan light sources have a quadratic falloff and you might need to increase the RenderMan shader node attribute that controls the light intensity in order to see the light If the selected light shader node is able to use a shadow map, the following extra steps will produce shadowing: 1. Select a light node that has been assigned a RenderMan shader node. 2. In the shader assigned panel, create a new light attribute node by clicking the texture button on the right of the Attribs option menu, then click the AE button to display its attributes in the Attribute Editor . 3. Turn on the "Generate Shadow Maps" attribute; 4. Set a "Shadow Map Name", using the browser brought up by clicking on the Folder button. 5. Double-click on the shadow map name file path and copy it. 6. In the shader assigned panel, click on the AE button next to the Light option menu; 7. Paste the file path in the RenderMan shader attribute that specifies the shadow map. 8. Make sure the "Render Shadow Maps" toggle of the render pass used to render is turned on. Then start the render.
1

In the Depth Map Shadow Attributes panel located in the Shadows panel.

Chapter 5: Rendering Guidelines

117

It might be convenient to connect some of the RenderMan shader node attributes, such as the cone angle, to the light source for easier manipulation. The following is an example on how to do this with the spotlight shader that is packaged with 3Delight. 1. Create a spot light. This example assumes that it is named spotlightShape1. 2. Pop up the shader assignment panel and create a new light shader node by clicking the texture button on the right of the Light option menu, then click the AE button to pop up the Shader Selector . 3. In the shader selector, make sure the "Directory" is set to $DELIGHT/shaders. Find the spotlight shader in the list and double-click on it. 4. Select the created light shader node and click the Select button. 5. Back in the shader assignment panel, note that the newly created shader node is now the selected entry of the Light option menu. Click the AE button on the right of that option menu to edit the shader node attributes. 6. The node name is displayed at the top of the Attribute Editor , in the delightShader text field. Rename it to dl_spotlight1 7. Right-click the coneangle attribute and select Create New Expression... 8. In the Expression section of the Expression Editor, type in the following expression:
spotlight1.coneangle = deg_to_rad(spotLightShape1.coneAngle / 2 + abs(spotLightShape1.penumbraAngle))

and then click the Create button. 9. Right-click the conedeltaangle attribute and select Create New Expression... 10. In the Expression section of the Expression Editor, type in the following expression:
spotlight1.conedeltaangle = deg_to_rad(abs(spotLightShape1.penumbraAngle))

11.

12. 13. 14. 15. 16. 17.

18. 19. 20. 21. 22.

and then click the Create button. In the shader assignment panel, create a new light attribute node by clicking the texture button on the right of the Attribs option menu, then click the AE button to display its attributes in the Attribute Editor . Turn on the "Generate Shadow Maps" attribute; Set the "Shadow Map Name", using the browser brought up by clicking on the Folder button. Open Maya s Connection Editor. Select the shape spotLightShape1 and click the Reload left button of the Connection Editor. In the shader assignment panel, right-click the Light option menu and select Select Shader(s) . Then, click the Reload Right button of the Connection Editor. The following connections can be established: spotlightShape1.color -> dl_spotligth1.lightcolor spotlightShape1.intensity -> dl_spotlight1.intensity spotlightShape1.dropoff -> dl_spotlight1.decay Back in the shader assignment panel, right-click on the Attribs option menu and select Select attrib node(s) . In the Connection Editor , click the Reload Left button. Create the following connection: delightAttribs1.shadowMapName -> dl_spotlight1->shadowmap. Assign the beamdistribution attribute of the dl_spotlight1 shader node to 0.0 if you want an effect closer to the Maya spot light. Make sure the "Render Shadow Maps" toggle of the render pass used to render is turned on. Then start the render.

Chapter 5: Rendering Guidelines

118

5.2.5 Shadow Map Tips When a light attribute node is attached to a light node, all options related to shadow map generation (such as resolution) are retrieved in the light attribute node. The only exception to this is the "Shadow Map Name" attribute when its left empty. Refer to Section 3.8.2 [Light Attribute Node Shadow Maps], page 43. Even when a light attribute node is attached to a light node, any options related to shadow map usage (such as shadow color, filter size and bias) is specified in the light shader (RenderMan or Hypershade). The coverage of the shadow map is defined by the cone angle of the spot light. In order to maximize the resolution of the shadows cast by objects, it is recommended to adjust the cone angle of the light source so that it tightly surrounds the shadow-casting objects. If there is not enough details in the shadow, first try to optimize the usage of the shadow map by adjusting the coverage as suggested above. If this is not enough, try increasing the shadow map resolution. If you get shadowing artifacts on an object, it might be caused by self-shadowing. For depth shadow maps, using midpoint depth filtering usually helps getting rid of this problem. If a light source has no light attribute node attached to it, turning on the "Use Mid Dist" attribute of the light node usually takes care of this problem. If the light has a light attribute node attached to it, then select midpoint for its "Shadow Depth Filter" attribute. The "Bias" attribute of the light shader can also be adjusted to avoid the self-shadowing problem. The default Maya light node Bias value of 0.001 is not very good for 3Delight and will create bias artifacts most of the time. A better value to begin with is 0.2. Any light shader that can use a depth map shadow can use deep shadow maps without any modifications. This includes Maya Hypershade light shaders. Refer to Section 5.2.3 [Deep Shadow Maps With Maya Lights], page 116. Unfiltered shadows are usually undesirable and not supported by 3Delight ; when using Hypershade-shaded lights, setting the "Filter Size" to 0 will produce the same result as setting it to 1. Maya seems to limit the "Filter Size" attribute to 20 (larger values have no effect) while 3Delight has no such limits. If the light source moves or is lighting animated objects, it is recommended to check the "Add Frame Ext" attribute of the light node or to add the current frame number in the Shadow Map Name attribute of the light attribute node. See Section 5.5.4 [File Path Expressions], page 134 for details on how it is possible to construct paths containing dynamically expanded tokens. When re-rendering several times the same frame, it is often unnecessary to re-render shadow maps. Shadow maps need to be recomputed only if contained objects have moved or altered, objects have been added or removed, or if the light direction or cone angle has changed. In nearly all other cases re-rendering is not necessary. There are several ways to avoid useless shadow maps re-renders: - If you do not use light attribute nodes, you can set the "Disk Based Dmaps" light attribute to "Reuse Existing Dmap(s)". - If you use a light attribute node and the shadow objects are the same from one frame to another, you should turn on the "Generate First Frame Only" attribute (see Section 3.8.2 [Light Attribute Node Shadow Maps], page 43). - If you do not need any shadow maps to be rendered again, turn of the "Render Shadow Maps" attribute of your render pass (see Section 3.9.3.7 [Render Pass Shadow Maps], page 69. - You can also create render pass nodes that will render only shadow maps by deselecting "Render Primary Display" and "Render Secondary Displays" attributes of your render

Chapter 5: Rendering Guidelines

119

pass node. You could create Maya sets consisting of a few related lights and create a render pass that would render only these shadow maps. This way it is easy to re-render only a few shadow maps and use a render pass that does not render any shadow maps to render the displays. Refer to Section 3.9 [The Render Pass], page 50. By default the objects lit by a light and the objects that cast shadows for a light are the same and are defined by the light linking. When using shadow maps, it is possible to have an object not lit by a light and still cast shadows. You simply need to create a Maya set that includes only the objects that cast shadows and specify that set in the "Shadow Objects" attribute of an attached light attribute node. Reversely, you can define a Maya set of lights that will illuminate an object and specify this set in a geometry attribute node attached to this object. The object will still appear in the shadow maps of the lights it is light-linked to.

Chapter 5: Rendering Guidelines

120

5.3 RIB Archives Guidelines


5.3.1 Writing a RIB Archive using a Render Pass A RIB Archive is a RIB file that is not designed to be rendered by itself but to be included in another RIB file. This way, it is possible for instance to share objects between frame RIBs, saving disk space and RIB generation time. A simple way to create a RIB Archive in 3Delight for Maya consists of the following steps: 1. Create a subset of the scene elements that will be archived. This can be done in various ways, such as putting these elements in a separate Maya render layer, or more simply, by creating a Maya set that contains the elements to be archived. 2. Create a render pass. While this is purely optional, it is usually convenient to rename the node to avoid confusion later with other render passes that will be used for image rendering. 3. Set the "Render Mode" of the render pass (in the Output panel) to RIB Archive. 4. Set the "RIB Filename" attribute to the archive file name to be created. When archiving animated objects, consider using # or @ to insert the current frame number in your filename. There are more sophisticated tokens also available to specify frame number; see Section 5.5.4 [File Path Expressions], page 134 for details. 5. In the "Render Sets" panel, select the scene subset created at the first step. If a Maya set was created and it contains objects and lights, remember to select the set in both "Objects to Render" and "Lights to Render". 6. Render.. note: There are several advanced options in the RIB Archives panel that you might want to consider. Refer to Section 3.9.3.10 [Render Pass RIB Archives], page 78 for more information. 5.3.2 Reading a RIB Archive Existing RIB Archive files can be read back into a scene using a RIB archive node. Once the archive file is specified, 3Delight for Maya will look at its first few lines for a line specifying the archive bounding box. The format of the line is the following: # Bounds minX maxX minY maxY minZ maxZ The bounding box information serves two purposes: The appearance of the RIB archive node in a scene view port is defined by these dimensions; The bounding box information is required when using a delayed archive read directive, since the renderer needs to know in what part of the space the reading will be necessary. If the archive file does not provide the bounding box info, it is possible to enter a bounding box manually, or simply dismiss it and avoid using the delayed archive reading directive. Here is a example showing how it is possible to read an archive in a scene: 1. Create a RIB archive node using the Add RIB Archive item in the 3Delight menu. 2. In the Attribute Editor , set the "RIB Filename" attribute to refer to the archive file. 3. If the bounding box information is found in the file, the "Archive Read Mode" will be set to Delayed. This is usually desirable since the archive file will only be read when the space it occupies is visible to the camera when rendering. 4. If the bounding box information is not found in the file, the "Archive Read Mode" will be set to Immediate. In this mode, the archive file is always read regardless of what is visible to the camera when rendering. It is possible to enter manually a bounding box using the "Bbox Min" and "Bbox Max" fields, and set the "Archive Read Mode" to Delayed if desired.

Chapter 5: Rendering Guidelines

121

5.3.3 Rendering while Archiving Scene Elements While the render pass node can create RIB archive and the RIB archive node can read them, it is possible to connect them together so that scene elements can be archived when needed and then the archive file created is used for rendering. Here is an example on how to do this: 1. Create a subset of the scene elements that will be archived. This can be done in various ways, such as putting these elements in a separate Maya render layer, or more simply, by creating a Maya set that contains the elements to be archived. 2. Create a RIB archive node using the Add RIB Archive item in the 3Delight menu. 3. Rename this node to something more evocative of what it is going to read. 4. In the Attribute Editor , click on the Texture button on the right of the Archive Pass option menu. This will create a render pass node, set its "Render Mode" to RIB Archive, set its "RIB Filename" to a decent default value (based on the name of the RIB archive node), and connect it to this RIB archive node. 5. Note that the "RIB Filename" attribute of the RIB archive node is now connected to the created render pass. Also note that the "Archive Read Mode" is automatically switched to Delayed. When the connected render pass will be rendered, the bounding box of the archive will be automatically set. 6. Click on the AE button on the right of the Archive Pass option menu to edit the attributes of the connected render pass. 7. While this is optional, it is recommended to rename this render pass to avoid confusion with other similar nodes. 8. In the Render Sets panel, select the scene subset created at the first step. If a Maya set was created and it contains objects and lights, remember to select the set in both "Objects to Render" and "Lights to Render". 9. Configure the other rendering options to your liking. For instance, you might want to modify the "RIB Filename" (in the Output panel) , or the "Archive Write Mode" (in the RIB Archives panel). Refer to Section 3.9 [The Render Pass], page 50. 10. Create another render pass using the Add Render Pass menu. This pass will be used to produce an image. 11. Click Render . The rendering process will first render the render passes connected to any RIB archive nodes contained in the render set of the render pass whose Render button was clicked. The archives are then used it in the image rendering. 5.3.4 Miscellaneous RIB Archives tips Here are few tips regarding the RIB archives: Using the RIB archive node, it is easy to add extra instances of objects while keeping the scene very light by simply duplicating the node. When archived objects are still present in the scene, it is possible to either ignore them completely for the rendering and only use the archive, or to keep the objects in the scene and also include the archive. The later could be used to add an extra instance of the objects in the scene, simply by moving the RIB archive node elsewhere in the space. Control of the presence of the archived objects is done via the "Ignore Archived Objects" attribute of the render pass used to render the image. If the RIB archive node might be moved to a different position from where the objects were when archived, it is important to leave the "Concatenate Geo Transforms" attribute to on, in the RIB Archives panel of the render pass used to create the archive. If the archive contains light sources and it is desired that these are also moved, keep the "Concatenate Light Transforms" set to on. Those two attributes are on by default.

Chapter 5: Rendering Guidelines

122

It is possible to avoid re-creating archive files; set the "Archive Write Mode" of the render pass nodes that creates the archive to Reuse Existing Archive. Or, simply have the rendering process assume that all the required files are there without checking anything by turning off the "Generate RIB Archives" toggle of the render pass that produces the image. Both of these options are in the RIB Archives panel, Advanced sub-panel. When creating the RIB archive, Hypershade shaders for the content of the archive are created when relevant. In order to keep shaders as efficient as possible, the generated code will contain statements to output only the AOVs that are selected in the render pass used for the rendering. So, if the RIB archive is going to be used in a scene that will be rendered using some of the predefined AOVs, it is required to define the same AOVs in the Displays section of the render pass used to create the archive. For instance, if a scene is going to be rendered using the ambient AOV and contains a RIB archive node, the archived objects will render properly in the ambient display only if the ambient AOV was defined in the render pass used to create the archive. It is possible to attach a geometry attribute node to a RIB archive node. If the archive was created with the "Archive Geometry Attributes" toggle off, then the "Geometry Attribute Node" attached to the RIB archive node will affect all of the content of the archive. Even when the archive was created with the "Archive Geometry Attributes" toggle on, it might still be useful to attach a geometry attribute node a RIB archive node when the "Archive Read Mode" is set to Delayed. For instance, if a given RIB archive node, whose "Archive Read Mode" is set to Delayed, does not set its "Transmission" attribute to anything, its content will not be considered for ray traced shadows. The same goes for other attributes, such as "Visible To Reflections" and subsurface scattering attributes.

Chapter 5: Rendering Guidelines

123

5.4 Geometry Guidelines


5.4.1 Maya Render Stats and Geometry Attribute Nodes 3Delight for Maya supports Maya render stats attributes. Since these attributes overlap in functionality some of the attributes available in the geometry attribute node, the later will take precedence when defined. Here is a list of the supported render stats attributes and their geometry attribute node attribute counterparts. Casts Shadows For shadow map renderings, if this attribute in off, the object will not be part of the shadow map rendering. In regular display renderings, if this attribute is on, the effect is identical to adding a "Transmission Rays" visibility attribute and setting it to Opaque, which enables ray traced shadows. Note that if there is a geometry attributes node attached to the object that has a "Transmission Rays" attribute, the "Casts Shadows" render stat will be ignored. Refer to [Transmission Rays], page 20 for more details. Receive Shadows This attribute controls if the object will receive shadows or not. The object must be shaded using Mayas Hypershade. There is no related geometry attribute node attribute for this render stat. Motion Blur This render stat is equivalent to the geometry attribute node "Transformation Blur" and "Deformation Blur" attributes. If either one is defined in a geometry attribute node attached to the object, the "Motion Blur" render stat is ignored. Turning on this render stat is identical to setting both "Transformation Blur" and "Deformation Blur" to inherit. Turning off this attribute is identical to setting both "Transformation Blur" and "Deformation Blur" to off. Refer to [Transformation Blur], page 23 and [Deformation Blur], page 23 for more details. Primary Visibility When rendering a display, this render stat is identical to the "Visible To Camera" geometry attribute node attribute. If the later is defined in a geometry attribute node attached to the object, the "Primary Visibility" render stat is ignored. Refer to [Visible To Camera], page 20 for more details. Visible In Reflections This render stat controls if the objet is visible in reflections on other objects; this is only effective for reflections on objects shaded using Mayas Hypershade. This render stat is a refinement on top of the "Specular Rays" geometry attribute node attribute, which controls object visibility in both reflections and refractions. For this render stat to be effective, a geometry attribute node must be attached to the object; it must contain the "Specular Rays" attribute and this attribute must be set to a value different than Invisible. See [Specular Rays], page 21. Visible In Refractions This render stat controls if the objet is visible in refractions in other objects; this is only effective for refractions on objects shaded using Mayas Hypershade. This render stat is a refinement on top of the "Specular Rays" geometry attribute node attribute, which controls object visibility in both reflections and refractions. For this render stat to be effective, a geometry attribute node must be attached to the object; it must contain the "Specular Rays" attribute and this attribute must be set to a value different than Invisible. See [Specular Rays], page 21.

Chapter 5: Rendering Guidelines

124

Double Sided This render stat behaviour is identical to the "Double Sided" geometry attribute node attribute. If the later is defined in a geometry attribute node attached to the object, the "Double Sided" render stat is ignored. Refer to [Double Sided], page 18. Opposite This render stat behaviour is identical to the "Reverse Orientation" geometry attribute node attribute. If the later is defined in a geometry attribute node attached to the object, the "Opposite" render stat is ignored. Refer to [Reverse Orientation], page 18.

5.4.2 Using Attributes to Export Primitive Variables It is possible to create attributes on geometric objects that will be exported to rendering by 3Delight for Maya. These attributes can be used to carry information to any shaders attached to the object. 3Delight for Maya will look for attributes whose name begin with delight and will export them without that prefix. For instance, if an attribute is named delightmycolor, it will be exported as mycolor. It is possible to export one value for the whole object, or one value per face of the object (except for NURBS). Simple attributes are exported as constant (one value for the whole object). Arrays, such as vectorArray, doubleArray or pointArray, and multi attributes are exported as uniform (one value per face) as long as there are at least as many values in the attribute as there are faces on the object. string attributes are supported but only as a constant primitive variable. The following example shows how to export a single color attribute with a NURBS and per-face colors for a polygon mesh: 1. Create a NURBS sphere and name its shape sphere. 2. Add a color attribute to the sphere:
addAttr addAttr addAttr addAttr setAttr -uac -at "float3" -ln "delightSurfaceColor" "sphere"; -at "float" -ln "delightSurfaceColorR" -parent "delightSurfaceColor" "sphere"; -at "float" -ln "delightSurfaceColorG" -parent "delightSurfaceColor" "sphere"; -at "float" -ln "delightSurfaceColorB" -parent "delightSurfaceColor" "sphere"; "sphere.delightSurfaceColor" -type float3 0.0 0.0 0.0;

3. There should now be a Delight Surface Color attribute showing in the attribute editor, in the Extra Attributes section, for the object sphere. Set the color as desired. 4. Create a polygon cube and name its shape "cube". 5. Add a multi-attribute containing 6 colors, one for each face of the cube:
addAttr addAttr addAttr addAttr setAttr setAttr setAttr setAttr setAttr setAttr -multi -uac -at "float" -at "float" -at "float" -at -ln -ln -ln "float3" -ln "delightFaceColor" "cube"; "delightFaceColorR" -parent "delightFaceColor" "cube"; "delightFaceColorG" -parent "delightFaceColor" "cube"; "delightFaceColorB" -parent "delightFaceColor" "cube"; -type -type -type -type -type -type "float3" "float3" "float3" "float3" "float3" "float3" 0 0 0 0 0 0 0 0 0 0 0 0 0; 0; 0; 0; 0; 0;

"cube.delightFaceColor[0]" "cube.delightFaceColor[1]" "cube.delightFaceColor[2]" "cube.delightFaceColor[3]" "cube.delightFaceColor[4]" "cube.delightFaceColor[5]"

6. In the attribute editor there should now be, under Extra Attributes , a Delight Face Color panel that contains 6 colors. Edit the colors as desired. 7. Pop up the Hypershade Editor .

Chapter 5: Rendering Guidelines

125

8. Create a RenderMan Code node (listed in the General Utilities section). 9. In the Attribute Editor , click on the Edit in Text Editor button to the right of the "Shading Parameters" text field. 10. In the text editor, append the following code, which specifies that the shader that will be created will receive the "FaceColor" color in parameter and will have an output plug named o_outColor shader_input color FaceColor output color o_outColor 11. Click on the Edit in Text Editor button to the right of the "Shading Code" text field. 12. In the text editor, append the following code, which simply assigns the "FaceColor" attribute received in parameter to the output plug: o_outColor = FaceColor; 13. Back in the Hypershade Editor , create a surface shader node.. This node will make obvious the color assignment because we will have it do a flat shading regardless of lighting. 14. Connect the o_outColor plug of the RenderMan Code node to the outColor plug of the surface shader.. 15. Select both the cube and the sphere. 16. Back in the Hypershade Editor , right-click the surface shader node and select Assign Material to Selection . 17. Create a render pass node and hit Render . Vertex Primitive Variables It is also possible to completely specify the type and class of the primitive variable to be exported. This is done using a similar form with delight, the class, the type and then the variable name. This allows vertex variables to be exported for some primitives. It also allows the exact desired type to be obtained from any maya type. For example, to output a vertex color mycolor variable:
addAttr -dt "doubleArray" -ln "delightVertexColormycolor" "pCubeShape1"; setAttr "pCubeShape1.delightVertexColormycolor" -type "doubleArray" 24 0.3 0.4 0.5 0.1 0.5 0.3 0.5 0.8 0.1 0.4 0.7 0.8 0.7 0.3 0.9 0.2 0.4 0.7 0.8 0.5 0.7 0.6 0.2 0.9;

Note that there are three values for each color and that this allows outputting color variables without having to build a proper color attribute. This system currently supports uniform, constant, and vertex classes with float, color, point, vector and normal types. 5.4.3 Exporting Per-Vertex Attributes on Polygon Meshes The following examples shows how to export vertex colors; additionally, the RenderMan Code node will be used to visualize the color sets in a rendered image. 1. Create a polygon shape of your choice, and light it with a few spot lights. 2. Select the polygon shape and select the Polygons menu set. 3. In the Color menu, select Color Set Editor . 4. In the Color Set Editor , create 2 color sets using the New button. 5. Name a color set surfaceColor and name the other color set displacementColor. 6. Select the surfaceColor color set. 7. In the Color menu, select the Paint Vertex Color Tool item. 8. Paint the surface as you like, leaving some visible areas unpainted. Avoid using the Flood button. You can try varying the opacity slider while painting in RGBA mode.

Chapter 5: Rendering Guidelines

126

9. Back in the Color Set Editor , select the displacementColor color set. 10. Since we are only going to use the alpha channel of this color set, use any color you want, but make sure the Channels radio button is set to RGBA. The surface is going to be displaced where you paint; you can adjust the "Opacity" slider and check the "Accumulate opacity" checkbox if you want. 11. Bring up the Hypershade Editor and create a surface node, such as Blinn. 12. Create a RenderMan Code node (listed in the Utilities section) and then select the RenderMan Code node and bring up the Attribute Editor . 13. Click on the Text Editor button next to the "Shading Parameters" text field and append the following lines in the text editor: shader_input varying color surfaceColor shader_input varying float surfaceColor_alpha color defaultColor output color outColor These lines defines the following: The first line defines a RGB color input parameter that varies for each vertex. Since it is named identically to a color set that we will export, the painted colors of that color set are passed automatically to it. The second line defines an input parameter for the alpha channel of the surfaceColor color set. Note that the RGB data is exported to a variable named identically to the color set, while the alpha channel is exported to a variable that has _alpha appended to the color set name. The third line defines a color input plug for the RenderMan Code node. Finally, the last line defines an output plug in the same fashion. 14. Click on the Text Editor button next to the "Shading Code" text field and append the following lines in the text editor: outColor = mix(defaultColor, surfaceColor, surfaceColor_alpha); This line of code simply assign to the outColor plug a mixture of the colors surfaceColor and defaultColor based on the alpha channel of the surfaceColor color set. 15. Back in the Hypershade editor, connect the outColor plug of the RenderMan Code node to the color input plug of the Blinn node. 16. Create a 2D Texture node, such as Fractal, and connect its color output plug to the defaultColor input plug of the RenderMan Code node. 17. Create a Displacement node. 18. Create a new RenderMan Code node. 19. Select the new RenderMan Code node and bring up the Attribute Editor . 20. Click on the Text Editor button next to the "Shading Parameters" text field. 21. In the text editor, append the following lines: shader_input varying float displacementColor_alpha output float displacement These lines defines the following: The first line defines a float parameter that varies for each vertex. It will automatically receive the alpha channel of the displacementColor color set. The second line simply defines a float output plug. 22. Click on the Text Editor button next to the "Shading Code" text field.

Chapter 5: Rendering Guidelines

127

23. In the text editor, append the following line: displacement = 2 * displacementColor_alpha; This line simply assigns to the displacement output plug two times the alpha channel of the displacementColor color set. Note that you can increase or decrease the multiplier value to make the displacement more or less obvious. 24. Connect the displacement output plug of the RenderMan code node to the Displacement input plug of the Displacement node. 25. Connect the displacement output plug of the Displacement node to the displacementShader plug of the shading group connected to your surface node. 26. Assign the material you just created to your polygon shape. 27. Because we are doing displacement, we need to specify a displacement bound. Bring up the shader assignment panel by selecting its entry in the 3Delight menu. 28. Make sure your polygon shape is selected. 29. In the shader assignment panel, create a geometry attribute node by clicking on the texture button next to the Attribs option menu. 30. Click on the AE button to edit this node in the Attribute Editor . 31. In the Displacement panel, assign a value for the "Displacement Bound" attribute. The value should be as high as the maximum possible displacement value, so it is safe to assign here the same value as the multiplier used in the RenderMan Code above (in this example, the multiplier is 2). 32. Create a Render Pass and render your masterpiece. 5.4.4 Exporting Particle Attributes 3Delight for Maya can export any particle attribute to rendering; these attributes are accessible to custom RenderMan shaders. In order to illustrate how this is achieved, here is an example that will use the rgbPP attribute to color rendered particles. note: If the goal is simply to render particles colored as defined by "rgbPP" attribute, it is simpler to use the "Par Particle Color as Surface Color" attribute. See [Per Particle Color as Surface Color], page 32. 1. Prepare any scene that contains a light source and a particle system that has per-particle color. A complete example of such system is detailed in the Maya documentation; refer to the Dynamics -> Particles -> Rendering particles -> Set particle attributes with a ramp texture section. At the end of this section, there is a Ramp example where detailed steps are provided to create a particle system where particle color changes according to the distance from the origin. 2. Select the particle system and attach a geometry attribute node to it using the shader assignment panel.. 3. In the Attribute Editor , go into the Geometry panel. Unfold the Particles panel. Add rgbPP to the list of exported particle system attributes by selecting it in the list on the left and then click on the Add button. This is all that is needed to export the rgbPP particle attribute. 4. Now lets use that rgbPP to shade the particles. Pop up the Hypershade editor. 5. In the Hypershade Graph menu, select Graph Materials on Selected Objects to see what is attached to your particle system. 6. Create a RenderMan Code node, which is available in the General Utilities section.

Chapter 5: Rendering Guidelines

128

7. Select the RenderMan Code and bring up the Attribute Editor . 8. Click on the Edit in Text Editor button on the right of the Shading Parameters text field. 9. In the Text Editor window, append the following code: The shader will need to have an input parameter to receive automatically the rgbPP attribute, so declare the following: shader_input varying color rgbPP The RenderMan Code node needs an output plug to pass this color on, so declare the following: output color o_outParticleColor Click on the Apply button to apply the changes. 10. Click on the Edit in Text Editor button on the right of the "Shading Code" text field. 11. In the Text Editor window, append the following code, which simply assigns to the output plug the per-particle color: o_outParticleColor = rgbPP; 12. Click on the Apply button to apply your changes. 13. Back in the Hypershade Editor , connect the o outParticleColor plug of the RenderMan Code node to the color input of the surface node that is connected to the surfaceShader plug of the shading group attached to the particle system. 14. Select 3Delight as the default renderer and render. 5.4.5 Rendering Sprites with Distinct Textures It is possible to render sprite particles so that each sprite has a distinct texture applied to it. The texture of a given sprite can remain constant for all frames, or it can also change from frame to frame. The general idea is to use a file 2D texture node to define an image sequence, and to control which image of that sequence will be applied to a specific sprite via the "spriteNumPP" particle system attribute. The general steps to set up per-sprite texturing are: 1. Prepare an texture sequence for use in a file 2D texture node. It is required to provide a tdl texture file sequence. 3Delight for Maya will accept a texture sequence that contains zero-padded frame numbers, such as smoke_001.tdl. However it is recommended to use nonpadded file names, such as smoke_1.tdl so Maya can properly display the textured spirtes in the scene view. The first image sequence is expected to have the frme number 1. To convert a complete image sequence to tdl textures, a MEL procedure like the following can be used:
proc convertTextures(string $texture_files) { string $file = basename($texture_files, ""); string $dir = substring($texture_files, 1, size($texture_files) - size($file)); string $textures_to_process[] = getFileList -filespec $texture_files; for($curr_tex in $textures_to_process) { string $curr_file = $dir + $curr_tex; string $curr_tdl = DL_convertTextureName($curr_file, 1); print("Converted " + $curr_file + " to: " + $curr_tdl + "\n"); } }

Chapter 5: Rendering Guidelines

129

2.

3. 4.

5.

6.

7.

8. 9. 10. 11.

12.

So if the original image sequence begins with smoke_1.iff in IFF format in the ~/Images/ directory, one can call the above procedure to produce a tdl version of the complete image sequence by invoking: convertTextures("~/Images/smoke_*.iff"); The tdl files will be produced in the 3Delight Textures folder (see [3delight textures], page 137). Create an Hyershade shading network that contains a file 2D texture node. Set the "Image Name" attribute to frame 1 of the tdl texture sequence produced in the previous step. Turn on the "Use Image Sequence" attribute. Assign this shading network to the particle shape. Select the particle system shape and make sure the "Particle Render Type" is set to Sprite. The particle system needs to have a "spriteNumPP" attribute. If none exist, click the General button of the Add Dynamic Attribute, then select spriteNumPP in the list displayed in the Particle tab and click Add . Set the "spriteNumPP" initial values as desired. For instance, if the image sequence contains 10 images, each sprtie can be assigned a random image by defining an expression similar to: particleShape1.spriteNumPP = rand(1, 10); If the sprites must change texture from frame to frame, it is possible to define how the "spriteNumPP" attribute will change for each frame by defining a Runtime before dynamics expression for this attribute. For instance, the following expression will have a sprite use the next image in the sequence as a texutre for each frame, and loop through a 10-frames image sequence: particleShape1.spriteNumPP = 1 + ((particleShape1.spriteNumPP + 1) % 9); If the "spriteNumPP" is not garanteed to only use values for which a texture is defined in the image sequence, add a "SpriteCycleLength" float attribute (not per-particle) to the particle system shape and set it to the number of textures in the image sequence. The shader will automatically wrap frame values so they are constrined between 1 and the value defined in "SpriteCycleLength". Note that these two attributes must begin with a capital S as they are special Maya attributes and will be listed under the Spirte Attributes section of the attribute editor . If desired, add a "SpriteAnimation" bool attribute (not per-particle) to the particle system shape. It can be used to turn off the per-sprite texturing. Using the assignment panel or the 3Delight relationship editor , create a geometry attributes node and assign it to the particle system shape. In this geometry attribute node, add the "Particle System Variable" attribute, listed under Geometry -> Particles. In the Particle System Variable , select "spriteNumPP" in the right-hand side column and click Add . Also add the SpriteCycleLenght and the SpriteAnimation attributes if they have been defined in the previous steps. It is recommended to use a particle disk cache when rendering with motion blur or if the expressions driving the above attributes can produce different results when a frame is rendered multiple times (like rand()).

5.4.6 Maya Hair and Paint FX Tips Maya Hair and PaintFX have no regular Hypershade shaders attached to them, nor are they recognized by the light linker. There are several ways to get rid of these problems depending on what is bothering you: You can convert the Hair or PaintFX to regular geometry, such as NURBS or polygons. This will fix both issues, as the created geometric objects will be properly light-linked and will have an associated hypershade shading group.

Chapter 5: Rendering Guidelines

130

By default, geometric objects that have no Hypershade shading group nor RenderMan shader node attached to them are rendered using the defaultSurface shader, which does not take into account any lighting. So, for the Paint FX or Hair to be correctly lit: - Select the Paint FX or Hair object. - Attach a RenderMan surface shader of your choice to it using the shader assignment panel. - Select all lights that are lighting the PaintFX or Hair object, and create a Maya set containing them. - Select the Paint FX or Hair object. - In the shader assignment panel, click on the texture button on the right side of the Attribs option menu to create a new geometry attribute node. - Click on the AE button next to the texture button to edit the geometry attributes. - In the Lighting panel of the attached geometry attributes node, select the object set you just created instead of <light linker>. And for the Paint FX or Hair object to properly cast shadows using shadow maps, the following should be done for each light source: Select all objects that are required to cast shadows for a light source and create a Maya set containing them. Select the light node. In the shader assignment panel, click on the texture button on the right side of the Attribs option menu to create a new light attribute node. Click on the AE button next to the texture button to edit the light attribute node. In the Shadow Objects panel, select the object set you just created instead of <light linker>. 5.4.7 Maya Fur Tips Generally, it is recommended to distribute a given amount of hairs on several smaller fur nodes instead of assigning the same amount of hairs to a single, larger object. The smaller, lighter objects will render more efficiently. It is more efficient to lower the fur density than increasing the "baldness" attribute. If parts of a polygonal model need to be bald, it is recommended to exploit the fact that UVs outside of the [0 - 1] range dont receive any fur. This fact can be used with the first tip on a polygonal model to create several fur nodes on one model. Simply define as many UV sets as there will be fur nodes. Attach all fur descriptions to the model. Finally, make sure each fur description node has its relevant "uvsetName[x]" attribute connected to the correct "uvset[y].uvSetName" attribute of the polygonal model. When a polygonal model has some fur and is deformed, the UV set used for the fur should contain no concave regions. The concavities can cause problems when deformation blur is rendered. Alternatively, the problem can be avoided by fixing the models triangulation by using the Triangulate option of the Maya Mesh menu. FurFeedback nodes have the "Visible In Reflections" and "Visible In Refractions" render stats attributes turned off by default. Since almost all other Maya objects have these attributes turned on by default, it is easy to forget to turn on these attributes and wonder why Maya Fur isnt reflected or refracted at all. See [Visible In Reflections], page 123 and [Visible In Refractions], page 123. FurFeedback nodes have a "U Samples" and a "V Samples" attributes that are supposed to affect how many hairs are rendered in the scene view, without changing how the fur is actually rendered in an image. However, the clumping frequency changes related to these

Chapter 5: Rendering Guidelines

131

values in Maya Software and Mental Ray renderers. 3Delight for Maya does not use the U / V Samples attributes. To raise clumping frequency pass its maximum value of 100, use the "Clumping Frequency" attribute of a geometry attribute node attached to the FurFeedback node, or add it as a 3Delight Geoemtry Modifier attribute. See [Geometry Attribute Node Clumping Frequency], page 34. 5.4.8 Shave and a Haircut Tips Selecting an output method To render Shave and a Haircut hair nodes, 3Delight for Maya offers two approaches. The first one is included in the 3Delight for Maya plugin itself and asks the Shave and a Haircut plugin to generate one RIB file per shave hair node. The second approach is to load the 3dfm shave plugin; this plugin interacts with the Shave and a Haircut plugin to retrieve hair data and render them directly. The benefits of using the Shave and a Haircut support embedded in the 3Delight for Maya plugin are: No extra plugin to load. The "voxels" attribute in the Shave Globals RenderMan section can be enabled to reduce memory usage when rendering. Requires less memory when caching the scene. This method is used when the 3dfm shave plugin is not loaded in Maya. The benefits of using the 3dfm shave plugin are: No extra RIB file needed to store hair data. No extra current time changes to support deformation blur on shave hair nodes. Possible to use more than two samples for shave hair deformation blur. This method is used when the 3dfm shave plugin is loaded in Maya. Shave Hair Shapes Primitive Variables With both rendering methods, the attributes in the Shave Globals RenderMan section control what primitive variables are output. Opacity will also be affected by the value of the "Tip Fade" attribute of each Shave shape. The available primitive variables are listed in Figure 5.1. Shave Globals Attribute Export Normals Export Opacity Export Root/Tip Colors Export Vert Colors Export W Coords Export UVs Export Root Positions Primitive Variable uniform normal N Srf varying color Os uniform color rootcolor, tipcolor varying color Cs varying float w uniform float s, t uniform point P Srf 1

Figure 5.1: List of all primitive variables for Shave hair shapes. Using the Shave support embedded in 3Delight for Maya When using the Shave and a Haircut support embedded in the 3Delight for Maya plugin, all options offered in the RenderMan section of the Shave Globals are supported, except the "Global RIB Text"
1

Only output when 3dfm shave is not loaded.

Chapter 5: Rendering Guidelines

132

attribute and the motion blur and shutter attributes. Motion blur attributes are defined by the Render Pass node being used, except that the number of samples for defomration blur is limited to two. The RIB files will be output in the directory specified by the 3Delight Fur Files project setting. Refer to Section 5.5.5 [Automatic File Output Control], page 136. When turning on "Enable Voxels" option, consider either turning on the "Use Full Paths" attribute, or adding the path to the 3Delight Fur Files project setting to the render pass "Archive Path" attribute. See Section 3.9.3.13 [Render Pass Search Paths], page 82 for details. When the "Enable Voxels" option is enabled, Shave and a Haircut may attempt to create illegal filenames if the shave hair shape name is long, so it is recommended that shave hair shape names are made unique and short. Shading and Lighting By default, Shave and a Haircut hair nodes are not assigned any Hypershade shading group, excluding them from the light linking system. In 3Delight for Maya, geometric objects that have no Hypershade shading group nor RenderMan shader node attached to them are rendered using the defaultSurface shader, which does not take into account any lighting. Simply assigning a RenderMan surface shader node while rendering with the default Render Pass values will make the lack of light links on the Shave and a Haircut node obvious since it will appear black. Some possible solutions for this problem are: Create an object set containing all lights lighting the Shave and a Haircut node. Create a geometry attributes node and attach it to the Shave and a Haircut node. Set the "Illumination From" attribute of this geometry attributes node to the lights object set that has just been created. Note that the Shave and a Haircut node will still not be part of shadow maps; to fix this, select all objects that need to appear in the shadow map and create an object set with them. Create a light attribute node and attach it to a desired light source. Finally, select this new object set in the light attributes nodes "Shadow Objects" attribute. Assign the Shave and a Haircut node to an Hypershade shading group. This can be done by assigning an Hypershade surface shader to the Shave and a Haircut node, or by issuing the following MEL command once the that node is selected: hyperShade -assign "initialShadingGroup"; Finally, a simple way to get hair shading similar to what is produced by the Maya software renderer is to attach the Shave shader that is packaged with Shave and a Haircut to the shave hair shape node. 3Delight comes with a pre-compiled version of this shader. 5.4.9 Miscellaneous Geometry Tips When rendering a frame sequence containing motion blurred objects whose visibility change during the sequence, it is recommended to select a value for the "Motion Blur Position" attribute of the render pass that will define a sampling interval where the visibility will remain constant. For instance, if the visibility of some objects changes precisely at time 2.0, "Motion Blur Position" should be set to start on frame since this is the only value that defines a sampling interval where the value of the visibility attribute remains constant. The other possible values, end on frame and centered on frame, both will define a sampling interval that covers a time period before time 2.0.

Chapter 5: Rendering Guidelines

133

5.5 Miscellaneous Guidelines


5.5.1 Dynamics Animation Rendering 3Delight for Maya could change the current time while rendering in two cases: when rendering a frame sequence (obviously) and when motion blur is enabled. If motion blur is requested, the blurred objects need to be sampled a number1 of times during the frames interval in order to detect the extent of their movement. This means that the current time will move a number times to sample the movement, and then jump back to the current frame once the rendering is done. Since dynamics are computed incrementally2 the time jumps introduced by 3Delight for Maya may yield consistent results. To avoid this problem, the dynamics computations need to be exactly the same for a given frame, regardless of what was the previously played frame. One way to achieve this is to cache the dynamics results. It is highly recommended to use Maya disk caching system when working with a scene that contains dynamics. Refer to the Maya documentation for more details about this; look into the Solvers and caching book in the Dynamics -> Dynamic and Effects section. 5.5.2 Using Atmosphere Shaders Atmosphere shaders in RenderMan are used to compute the appearance of the volume between the camera and the object closest to it. This means that if there are no objects facing the camera at a given point in the cameras field of view, no atmosphere shader will be applied. Following this basic principle, here are some tips using atmosphere shaders, such as fog or smoke: Atmosphere shaders can be attached to any geometric objects using the shader assignment panel (see Section 3.2.2 [Assignment Panel Components], page 10). If the atmosphere shader effect is needed everywhere in the camera field of view, create an object that will encompass all scene objects (including the render camera and the light sources), such as a cube or a sphere, and apply the atmosphere shader to it. This will ensure that the atmosphere shader is applied everywhere where there would be nothing visible to the camera. Attach the atmosphere shader to any object that the atmosphere shader effect is desired between that object and the camera. Conversely, it is possible to exclude the volume between a given object and the camera from the atmosphere computation simply by not attaching the atmosphere shader to that object. An easy way to apply an atmosphere shader to every geometric object in the scene is to create a shader collection and use the Override shaders section to specify the atmosphere shader to be used for all objects. 5.5.3 Textures In The Hypershade If an object is shaded using an Hypershade shading network that uses a texture file (via a node such as the File 2D texture node), 3Delight for Maya will first convert the texture to 3Delight s texture file3 , and then use this converted file for rendering. It is possible to prepare the texture file manually in order to avoid this automatic conversion completely by using the tdlmake utility. The prepared texture file should have the .tdl extension. It can then be used directly in an Hypershade node such as the File 2D texture node. important: It is recommended to use the -preview option of tdlmake; doing so will create an embedded thumbnail that Maya can display as a texture preview image.
1 2 3

The number of samples needed depends on the transformation and deformation steps set by the user. The computations in the current frame rely on the results of the previous frame. Which is a standard TIFF file, augmented with mip maps.

Chapter 5: Rendering Guidelines

134

5.5.4 File Path Expressions When an attribute that specifies a file path contains a relative path, the path will be considered relative to the current Maya project directory. This path can contain various tokens; this allows the path to dynamically change to reflect the current value of a given token. The following tokens can be used in any file path: $VAR %VAR% ~ @ # The value of the environment variable VAR will replace $VAR in the path. The value of the environment variable VAR will replace $VAR in the path. The value of the HOME environment variable will replace the tilde character. The current frame number will replace the @ character. The current frame number, padded to form a 4 digits number, will replace the # character.

{<frame_num_char><operator><operand>} Simple expressions to produce a frame number can also be used as a part of the file name. The expression must be enclosed in curly braces. The expression components are: <frame_num_char> A character that represents the current frame number. @ will produce the current frame number, and # will produce the same current frame number, padded to form a 4-digits number. <operator> An arithmetic operator. Valid operators are: + - * / %. <operand> A integer or floating point number. For instance, the following are valid frame number expressions: {#-10} {@*2.5} {#%5} MEL command The string enclosed in back quotes is evaluated as a MEL command and gets replaced with the commands result. <layer> <project> This string will be replaced with the path to the current Maya project directory. <pass> This string will be replaced with the name of the render pass node used for rendering. This string will be replaced with the currently rendered Maya render layer.

<shape_name> This string will be replaced with the long name of the attached shape. This tag can currently only be used in light attributes nodes. <scene> <ext> <camera> This string will be replaced with the name of the scene. This string will be replaced with the file extension. File extensions are expanded for
RIB files, shadow map files, and any file output by a display driver.

This string will be replaced with the name of the camera shape being used for rendering.

Chapter 5: Rendering Guidelines

135

<fragment_set> This string will be replaced with the name of the object set used by the RIB fragment being output. It is valid only in render pass rib fragment filename attributes. <aov> This string will be replaced with the name of the variable being output in the display. It is valid only in render pass display filename attributes.

<output_variable> This string is deprecated in favor of <aov>.

Chapter 5: Rendering Guidelines

136

5.5.5 Automatic File Output Control Some files are automatically generated by 3Delight for Maya. The destination directories for these files are defined in the Maya project. Like other Maya project settings, relative paths will be made relative to the project directory. It is possible to prepend all of the 3Delight for Maya project directories that produce temporary files with a path assigned to the 3DFM OUTPUT PATH environment variable. Note that this variable needs to be defined before Maya is launched and does not apply to the templates project setting. The available 3Delight for Maya project directories are: 3Delight Fluids 3Delight for Maya needs to generate data files for each fluid node visible in the scene. These files are saved under the folder specified in the 3Delight Fluids Files project setting. If the 3DFM FLUIDS PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Fluids project setting). 3Delight Fur Files 3Delight for Maya needs to generate a geometry file for each Fur Feedback node visible in the scene. These files are saved under the folder specified in the 3Delight Fur Files project setting. If the 3DFM FURFILES PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Fur Files project setting). This project setting is also used to store RIB file produced by the Shave and a Haircut plugin in some cases. Refer to Section 5.4.8 [Shave and a Haircut Tips], page 131. RIB Fragments This project setting specifies the folder where RIB fragments will be saved. If the 3DFM RIBFRAGMENTS PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight RIB Fragments project setting). See Section 3.9.3.11 [Render Pass RIB Fragments], page 80 for details about their purpose. 3Delight Shaders When an object has no RenderMan shader attached to it, 3Delight for Maya will attempt to translate any Hypershade shading network attached to that shader to RenderMan shaders, which are then used in the rendering. This process generates shader source files, which are stored in a src directory. These source files are then compiled into a shader and the compiled shader files are stored under the OBJ directory. Both the src and OBJ folders are created under the directory specified in the 3Delight Shaders project setting. If the 3DFM SHADERS PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Shaders project setting). Note that this project setting is relevant only for translated shaders from Hypershade networks. It has no effect on RenderMan shader nodes or on the shader paths displayed in the Shader Selector . Shadow Maps Shadow Maps will be automatically generated only in the following cases: 1. A light source has no light attribute node attached to it; its "Use Depth Map Shadows" attribute is turned on, and the render pass node used for rendering has its "Render Shadow Maps" attribute turned on.

Chapter 5: Rendering Guidelines

137

2. A light source has a light attribute node attached to it. This light attribute node has its "Generate Shadow Maps" attribute turned on, but nothing is specified in the "Shadow Map Name" attribute. The render pass node used for rendering has its "Render Shadow Maps" attribute turned on. If one of these two situations is encountered, a shadow map file name will be generated based on the current values of the light source nodes attributes in the section "Disk Based Dmaps". The file will be created under the directory specified in the 3Delight Shadow Maps project setting. If the 3DFM SHADOWMAPS PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Shadow Maps project setting). Shadow map rendering parameters are obtained by the current settings in the attached light attribute node. If no light attribute node is attached to the light source, the shadow map rendering settings are derived from the light source nodes "Depth Map Shadow Attributes". Refer to Section 5.2.5 [Shadow Map Tips], page 118 for more details. 3Delight Templates This project setting specifies the folder where render pass templates will be saved. 3Delight for Maya will also look up this directory and list the render pass templates it contains in the Add Render Pass menu. If the 3DFM TEMPLATES PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Templates project setting). Note that template files are created on-demand only and are not affected by the 3DFM OUTPUT PATH environment variable. See Section 3.9.2 [Managing Render Passes], page 50. 3Delight Textures Any node in an Hypershade network that uses a texture file name not ending with the .tdl extension will undergo a texture conversion process in order to speed up texture lookup during rendering. This conversion produces a 3Delight texture file that is stored under the directory specified in the 3Delight Textures project setting. If the 3DFM TEXTURES PATH environment variable is defined, its value will be used (and thus will override the directory specified in the 3Delight Textures project setting). It is possible to prepare texture files in order to avoid this conversion as explained in Section 5.5.3 [Textures In The Hypershade], page 133.

Chapter 5: Rendering Guidelines

138

5.5.6 Hypershade translation quirks 3Delight for Maya automatically translates most hypershade networks into equivalent RenderMan shading language. However, some nodes require special attention for various reasons. bump2d To use the Tangent Space Normals and Object Space Normals modes, some extra setup is required. Create a vector attribute named bumpNormal on the node and connect the bump textures output color to it. A connection of the textures alpha to the bumpValue input like Maya is using is not required but will not hurt either. When using with a bump map, it is best if the maps average value is near 0 or some artifacts are likely to appear in areas of high curvature. As bump maps will typically average to grey, this can be achieved by setting the file nodes alpha or color offset to -0.5.

bump2d

Chapter 5: Rendering Guidelines

139

5.6 A Few Words About Fluids


This version of 3Delight For Maya comes with an SL implementation of Maya fluids. Since it still in a beta state, please mind the following shortcomings: Performance is not on par with the default Maya renderer. This is mainly due to the algorithm being almost entirely written in RenderMans shading language The fluid must have a density channel in order for it to render. 2D Fluids are not supported. Cylindrical drop-off is not supported. Noise contrast is approximate. Noise invert texture parameter not supported. Intersecting fluid containers are not supported. Fluids cannot be motion blurred. All theses shortcomings will be addressed in a future version.

Chapter 6: MEL Binding

140

6 MEL Binding
The following MEL bindings are implemented in 3Delight For Maya. Help on every command can be obtained in Mayas script editor by typing help RiCommand; or by looking up the corresponding .mel in the $DELIGHT/maya/scripts directory.

Options
RiOption RiPixelSamples RiPixelFilter RiShutter RiProjection RiImager RiHider RiDisplay RiClipping RiClippingPlane RiCropWindow RiQuantize RiScreenWindow RiDepthOfField RiPerspective RiFormat RiProjection

Attributes
RiAttribute RiColor RiOpacity RiSides RiShadingRate RiMultiplyShadingRate RiMatte RiSurface RiDisplacement RiAtmosphere RiInterior RiExterior RiLightSource RiAreaLightSource RiIlluminate RiReverseOrientation RiResource

Chapter 6: MEL Binding

141

Transforms
RiIdentity RiCoordinateSystem RiScale RiTranslate RiTransform RiRotate

Structure
RiBegin RiEnd RiWorldBegin RiWorldEnd RiAttributeBegin RiAttributeEnd RiMotionBegin RiMotionEnd RiTransformBegin RiTransformEnd RiArchiveBegin RiArchiveEnd RiObjectBegin RiObjectEnd RiObjectInstance RiDeclare RiIfBegin RiElseIf RiElse RiIfEnd

Archives
RiReadArchive RiProcDelayedReadArchive (through RiProcedural) RiArchiveRecord

Texture Creation
RiMakeShadow RiMakeTexture RiMakeCubeFaceEnvironment RiMakeLatLongEnvironment RiMakeBrickMap

Others
RiProcedural (RiProcDelayedReadArchive, RiProcRunProgram, RiProcDynamicLoad)

Chapter 7: Developers Corner

142

7 Developers Corner

7.1 General User Defined MEL Procedures


The following procedures can be defined to customize 3Delight for Maya s behavior. Since calling the exists MEL command repeatedly is costly, a cache of this commands results is kept. This cache is flushed before every render. It can also be flsuhed manually by calling: delightExists -user -flush;

global proc DL_userStartup ()


This procedure is called as the last step of the initialization procedure that is run when the 3Delight for Maya plugin is loaded.

global proc DL_userGetExpandedString (string $str, string $shape name, string


$pass name) This procedure is called when a string attribute is parsed, offering the opportunity to completely replace the default string expansion in 3Delight for Maya. DL_ userGetExpandedString is passed the string to expand, a string that contains the shape name (or an empty string), and a string containing the render pass name (or an empty string). The last two parameters are usually used to replace the <shape> and <pass> tokens, respectively. The procedure should return a string that requires no further expansion, as there will be no further subsitution attempts done on it.

global proc DL_userGetStringTokens (string $tokens[], string $values[])


This procedure is called when a string attribute is parsed by DL_expandString() to expand the tokens and environment variables the attribute may contain. DL_userGetString is passed two empty string arrays and it is expected to fill the first one with the tokens to look for and the second one with their replacement strings. The user defined token substitution is done after the built-in tokens substitution.

global proc string DL_userConvertTexture (string $src, string $dst)


This procedure is called when a texture file, such as one referenced by the file 2D texture node, needs to be converted to a tdl texture file. The procedure is passed the full path to the source file and the full path to the desired tdl file. The returned string is expected to contained an error message, or an empty string if the conversion completed successfully. The default behaviour is to call DL_defaultConvertTexture.

global proc string[] DL_userGetNodesForRibArchiveBBox (string $nodes[], string


$pass name) This procedure is called when computing the bounding box of a RIB archive being written. It will receieve the list of nodes being considered for bounding box evaluation, and the anme of the render pass being rendered. The procedure returns the objects that must be used for bounding box evaluation, so it can arbitrarily add or exclude specific nodes from that list. Here is an example procedure that excludes objects from the bounding box evaluation according to the value of a "ignoreBBoxContribution" attribute in an assigned geometry attributes node:

Chapter 7: Developers Corner

143

global proc string[] DL_userGetNodesForRibArchiveBBox(string $nodes[], string $pass_name) { string $nodes_for_rib_archive_bbox[]; clear($nodes_for_rib_archive_bbox); // Retreive the collection used for rendering // string $all_related_passes[] = DRP_getAllRelatedPasses($pass_name); string $shader_collection = DRP_getHighestAttrNode("shaderCollection", $all_related_passes); // Construct the list of objects to consider for bounding box evaluation. // Exclude from the list the objects that have a "ignoreBBoxContribution" // attribute set to "true" in an assigned geo attribs node. // string $all_attribs_nodes[]; string $attribs_node; for($curr_node in $nodes) { // Get all geo attribs nodes that affect this object // $all_attribs_nodes = DL_getAllGeoAttribsNodesFromShape($curr_node, $shader_collection); // Find the geo attribs node that contains the "ignoreBBoxContribution" // attribute that we must consider (needed because of the various ways the // attributes of a geo attribs node can be inherited). // // Note: this "ignoreBBoxContribution" would be a user-defined attribute // and not something predefined by 3Delight for Maya. // $attribs_node = DL_highestNodeWithAttrib("ignoreBBoxContribution", $all_attribs_nodes); // Exclude this object from the list if relevant // if($attribs_node != "" && getAttr($attribs_node + ".ignoreBBoxContribution")) { continue; } // Object was not excluded, so add if to the list // $nodes_for_rib_archive_bbox[size($nodes_for_rib_archive_bbox)] = $curr_node; } return $nodes_for_rib_archive_bbox; }

Chapter 7: Developers Corner

144

7.2 Procedures Related To MEL Script Attributes


global proc DL_userPreRenderMel (string $render pass)
This procedure is called right before the Pre Render Mel script of the render pass being rendered is executed.

global proc DL_userPostRenderMel (string $render pass)


This procedure is called right before the Post Render Mel script of the render pass being rendered is executed.

global proc DL_userPreFrameMel (string $render pass)


This procedure is called right before the Pre Frame Mel script of the render pass being rendered is executed.

global proc DL_userPostFrameMel (string $render pass)


This procedure is called right before the Post Frame Mel script of the render pass being rendered is executed.

global proc DL_userPostOptionMel (string $render pass)


This procedure is called right before the Post Option Mel script of the render pass being rendered is executed.

global proc DL_userPreWorldMel (string $render pass)


This procedure is called right before the Pre World Mel script of the render pass being rendered is executed.

global proc DL_userPostWorldMel (string $render pass)


This procedure is called right before the Post World Mel script of the render pass being rendered is executed.

global proc DL_userPreGeoMel (string $render pass, string $geometry name, string $visible lights[], int $is shadow, string $geo attrib nodes[])
This procedure is called right before the Pre Geo Mel script attribute of related geometry attribute nodes is called. The parameters passed to this procedure are: string $render_pass The render pass node name string $geometry_name The name of the geometric object about to be output string $visible_lights[] The list of renderable, visible light shapes. int $is_shadow This parameter is set to 1 when this procedure is called during a shadow map rendering. It is set to 0 when called during a regular frame rendering. It can also be set to -1 when it is called outside of a Frame Begin / End block. Currently this can only happen when outputting geometry instances connected to a particle instancer. string $geo_attrib_nodes[] The list of geometry attribute nodes that are either connected or inherited by the current object.

global proc DL_userPostGeoMel (string $render pass, string $geometry name, string $visible lights[], int $is shadow, string $geo attrib nodes[])
This procedure is called right before the Post Geo Mel script attribute of related geometry attribute nodes is called. The parameter list is identical to DL_userPreGeoMel.

Chapter 7: Developers Corner

145

global proc DL_userLightPreRenderMel (string $render pass, string $light name, string $light attribs nodes[])
This procedure is called just before the Pre Render MEL script defined in light attribs node attached to the light source shape. The parameters passed to this procedure are: string $render_pass The render pass node name string $light_name The light source shape name string $light_attribs_nodes[] The list of light attributes nodes attached to the light source shape.

global proc DL_userLightPostRenderMel (string $render pass, string $light name, string $light attribs nodes[])
This procedure is called just before the Post Render MEL script defined in light attribs node attached to the light source shape. The parameters list is identical to DL_userLightPreRenderMel.

7.3 Customizing Render Pass Nodes


global proc DL_userRenderPassInit (string $render pass)
This procedure is called as the last step of the render pass node creation procedure. It is also called as the last step of the DRP_Init() procedure. It could be used to configure a render pass node with different values than the default ones. It can also be used to add various custom attributes, in which case it might be useful to also define DL_userRenderPassAEtemplate(). Finally, it can be used to updat4e custom render pass attributes of older scenes. It should be desgined so that it can be called several times with the same render pass node during a session.

global proc DL_userRenderPassAEtemplate (string $render pass)


This procedure is called at the end of AEdelightRenderPassTemplate(), which is responsible for defining the attribute editor template for render pass nodes. DL_ userRenderPassAEtemplate can be used to define editor template command for user-defined attributes added to the render pass nodes.

global proc string[] DL_userGetAllDisplayDrivers ()


This procedure is called whenever the list of display drivers is needed. The list of the display drivers packaged with 3Delight can be retrieved with DRP_getDefaultDisplayDrivers.

global proc string[] DL_userGetAllDisplayAOVs ()


This procedure is called whenever the list of arbitrary output variables is needed. It is expected to return an array of strings that will be used to build the user interface corresponding to the AOV declarations returned by DL_userGetAllDisplayAOVDeclarations. Note that both DL_userGetAllDisplayAOVs and DL_userGetAllDisplayAOVDeclarations procedures must be defined to be used; they are assumed to return arrays of the same size. The built-in AOVs can be retrieved by calling DRP_getDefaultDisplayAOVs.

global proc string[] DL_userGetAllDisplayAOVDeclarations ()


This procedure is called to retrieve an AOV declaration to pass to the display. 3Delight for Maya looks for the currently selected AOV, figure its index in the array returned by DL_userGetAllDisplayAOVs(), and uses that index on the array returned by DL_userGetAllDisplayAOVDeclarations to provide the display driver an output variable. Inline declarations are allowed. Note that both DL_userGetAllDisplayAOVs and

Chapter 7: Developers Corner

146

DL_userGetAllDisplayAOVDeclarations procedures must be defined to be used; they are assumed to return arrays of the same size. The built-in AOV declarations can be retrieved by calling DRP getDefaultDisplayAOVDeclarations.

7.4 Customizing Geometry Attribute Nodes


global proc DL_userGeoAttribsInit (string $geo attr node name)
This procedure is called when a geometry attribute node is created using DGA_create() (the 3Delight for Maya user interface always create geometry attributes nodes using that procedure). Invoking DL_userGeoAttribsInit is also the last thing done by DGA_Init(). This procedure can be used to add extra attributes to a newly-created geometry attributes node, or to update these custom attributes when an older scene is loaded. It should be desgined so that it can be called several times with the same geometry attribute node during a session.

global proc DL_userGeoAttribsAEtemplate (string $geo attr node name)


This procedure is called at the end of AEdelightGeoAttribsTemplate(), which is responsible for defining the attribute editor template for geometry attributes nodes. DL_userGeoAttribsAEtemplate can be used to define editor template command for user-defined attributes added to the geometry attribute nodes.

7.5 Customizing Light Attribute Nodes


global proc DL_userLightAttribsInit (string $light attr node name)
This procedure is called when a light attribute node is created using DLA_create() (the 3Delight for Maya user interface always create light attribute nodes using that procedure). Invoking DL_userLightAttribsInit is also the last thing done by DLA_Init(). This procedure can be used to add extra attributes to a newly-created light attribute node, or to update these custom attributes when an older scene is loaded. It should be desgined so that it can be called several times with the same light attribute node during a session.

global proc DL_userLightAttribsAEtemplate (string $light attr node name)


This procedure is called at the end of AEdelightLightAttribsTemplate(), which is responsible for defining the attribute editor template for light attribute nodes. DL_userLightAttribsAEtemplate can be used to define editor template command for user-defined attributes added to the light attribute nodes.

7.6 Customizing Shader Nodes User Interface


7.6.1 Attribute Grouping It is possible to define groups of parameters for RenderMan shader nodes. This feature is particularly useful for shaders exposing a large number of parameters since it enables the shader writer to group logically related parameters in a clean interface. Grouping definition is done using shader annotations in the shaders RenderMan shading language source file. The grouping information will be used to create frame layouts containing the specified shader parameters gadgets in the Attribute Editor . The supported annotation syntax is: #pragma annotation "grouping" "<group>/[<subgroup>/...]<parameter name>;" As an example, the following annotation will create a frame layout labeled Hair Color and put the tipcolor parameter gadgets in it.

Chapter 7: Developers Corner

147

#pragma annotation "grouping" "hairColor/tipcolor;" It is possible to define any number of frame layout levels; for instance: #pragma annotation "grouping" "hair/hairColor/tipcolor;" would create a Hair frame layout, then create a Hair Color frame layout inside the Hair frame layout, and finally insert the tipcolor gadgets there. The parameters will appear in the order they are annotated. Parameters that have no annotations will end up in the usual Shader Parameters and Output Parameters frame layouts. It is possible to generate pragma statements from macros by using the Pragma operator. For example, this is equivalent to the above pragma: #define MY_PRAGMA \ _Pragma( "annotation \"grouping\" \"hairColor/tipcolor;\"" ) Performing string substitution on the operators string parameter requires some advanced macro tricks which are explained in 3Delights Users Manual. 7.6.2 Defining Shader Parameter Gadgets It is possible to modify the gadgets that are created by default using shader annotations in the shaders RenderMan shading language source file. The annotations to define the user interface for a given parameter should adhere to the following form: #pragma annotation <shader_param_name> "annotation[;annotation;...];" It is possible to specify multiple annotations lines for the same shader parameter; they will all be concatenated in a single annotation string by the shader compiler. The supported annotations for defining the user interface of a parameter are: gadgettype=<type> Specifies the type of gadget to create. The supported types are: floatfield A numeric text field that supports floating point values. floatslider A float text field with a slider. Supported only for the float shader parameter type. It is recommended to also supply the min and max annotations as the default range is from 0 to 1. intfield intslider A integer text field with a slider. Supported only for the float shader parameter type. It is recommended to also supply the min and max annotations as the default range is from 0 to 1. textfield A simple text field. Supported only for the string shader parameter type. inputfile A text field with a browse button and a view button. Supported only for the string shader parameter type. optionmenu:menuitem1<=value1>:... An option menu that offers specified menu items. Supported only for string and float parameter types. For the string parameter type, the default value of each menu item is the menu item string itself. For the A numeric text field that supports integer values.

Chapter 7: Developers Corner

148

float parameter type, the first menu item has a default value of 0, the second has a default value of 1, and so on. For example: "gadgettype=optionmenu:zero:one:fifty=50:fifty-one;" connectednodeoptionmenu[:option=value][...] An option menu that lists nodes that can be connected to this shader node. Supported only for string parameters. The string shader parameter will receive the name of the connected node. Since the node name is resolved through the connection, it will always be up-to-date and take reference prefixes into account. The following gadget options are available: :type=<node_type> The type of nodes that can be connected to this shader parameter. Used in the window title that shows up when too many nodes of this type exists to be listed in a menu. If no listcmdoption is specified, the node type specified here will be used to determine the list of candidate nodes for the conneciton. At least one of type or listcmd must be specified. :listcmd=<list_command> A command that will return the list of nodes that are candidates for connection to this shader parameter. When no list command is specified, all nodes of the type specified by the type option are candidate for the connection. At least one of type or listcmd must be specified. :noconnectionlabel=<label> The specified string will be displayed in the option menu when there are no connections defined for the shader parameter. The default label in this case is <none>. checkbox A checkbox. Supported only for the float shader parameter type.

colorslider A color slider. Supported only for the color shader parameter type. label=<label text> Specifies a label for the gadget. When no label annotation is supplied, the gadgets label is the parameter name itself. hide=<true/false> When true, no gadget is generated for that parameter. However, the shader node will still contain an attribute related to this parameter, thus the parameters value can be defined outside of the Attribute Editor (by a setAttr command for instance). disable=<true/false> When true, the gadget is generated for the parameter, but will be disabled (insensitive). ignore=<true/false> When true, the shader parameter is completely ignored - no gadget and no related attribute in the shader node are created; the shader parameter will not be specified in the shader call made when rendering.

Chapter 7: Developers Corner

149

min=<value> max=<value> Specify min and max values for the attribute. These values are used at attribute creation time so Maya will enforce these limits even for incoming connections, scripted setAttr commands, etc. hint=<hint text> Specify a gadget annotation that appears when the mouse pointer is left over the gadget for a little while. The following illustrates how gadget annotations can be constructed:
#pragma annotation floatenum "label=Float Opt Menu Label;" #pragma annotation floatenum "gadgettype=optionmenu:Zero=0:One:Two:Fifty=50:Fifty-one;" #pragma annotation stringenum "gadgettype=optionmenu:item 1:item 2:item 3=custom value;" #pragma annotation floatParam "label=int slider label;gadgettype=intslider;min=1;max=50;" #pragma annotation cameraParam "label=camera label;" #pragma annotation cameraParam "gadgettype=connectednodeoptionmenu:listcmd=ls -type camera" #pragma #pragma #pragma #pragma annotation annotation annotation annotation coordSysParam coordSysParam coordSysParam coordSysParam "label=coordinate system;" "gadgettype=connectednodeoptionmenu ":type=delightCoordinateSystem" ":noconnectionlabel=no connection"

surface annotationTestShader( float floatenum=0; string stringenum="item 2"; float floatParam = 2; string cameraParam = ""; string coordSysParam = "";) { }

7.6.3 Defining Presets Predefined groups of shader parameter values can be defined by using the "preset" annotation. Shaders using this annotation will display a "Preset" option menu near the top of the attribute editor. This option menu will list the defined preset names; selected one will assign the defined shader parameter values to their respective attribute. Other attributes are not affected by the preset selection. The preset annotation syntax is:

#pragma annotation preset:<preset_name> "<shader_param_name>=<value>;[<shader_param_name>=<value>;

7.7 Defining Custom Shader Nodes


It is possible to define custom Maya nodes to be used along with a RenderMan shader file. The following should be considered for the custom nodes to be correctly assigned and output by the 3Delight for Maya: The shader node should contain a string attribute named "shaderType"; this attribute is assumed to be set to a value corresponding to the type of shader that the node is related to. The following string values are available: surface

Chapter 7: Developers Corner

150

displacement atmosphere interior light imager The shader node type should be registered by passing its type as a string to DSN_addCustomShaderNodeType An output procedure should be defined as follows:

global proc DSN_outputCustom_<custom_type> (string $shader node name,


string $shader type, string $light handle) <custom_type> is a placeholder for the custom node type. The procedure will be passed the following parameters: string $shader_node_name The name of the custom shader node to be output. string $shader_type The type of shader expected to be output. string $light_handle The handle of the light source assigned to the shader. An empty string is passed when the shader node is assigned to something else than a light source shape. The shader node type can be unregistered by passing the node type string to DSN_removeCustomShaderNodeType.

7.8 Defining Custom Hypershade Nodes


3Delight for Maya provides header files in the $DELIGHT/maya/rsl directory; these header files are used for translating the Hypershade nodes to RenderMan shading language source code. It is possible to complement (in case some custom Hypershade nodes are used) or replace the content of this header directory with a custom one. This can be done by setting the custom directory in the _3DFM_SL_INCLUDE_PATH environment variable. Several paths can be set in this variable, separated by a colon character.

7.9 Rendering Custom Nodes


7.9.1 Rendering Custom Geometry Nodes It is possible to extend 3Delight for Maya to support custom DAG nodes. The steps to define how to render custom geometry nodes are: Define a cache command, responsible for taken snapshots of the objects geometry and outputting it. Register the node type and the associated cache command. Specify if the custom node is used as an object or an inline archive. Defining a cache command When a scene is rendered, 3Delight for Maya moves the current time as needed by the render pass node used for rendering. Once the current time is set, every renderable object in the scene is cached

Chapter 7: Developers Corner

151

via a cache command. Then 3Delight for Maya will move the current time to the next motion sample if needed and the caching process will occur again. When working with motion-blurred objects, it may be required to know their topology at all time samples prior outputting the object data to RIB. The cache mechanism was implemented to avoid several current time changes done by every rendered objects, as changing the current time can be a time-consuming operation in Maya and dynamic simulations can require that the scene is played in order. Each custom node type must define a command that will be invoked when caching the scene and when the object should be output to RIB. The command can have any name and must support the following syntax:
MSyntax syntax; syntax.addFlag("-st", "-sampleTime", MSyntax::kDouble); syntax.addFlag("-a", syntax.addFlag("-r", syntax.addFlag("-e", syntax.addFlag("-f", "-addstep"); "-remove"); "-emit"); "-flush");

syntax.addFlag("-c", "-contains"); syntax.addFlag("-l", "-list"); syntax.setObjectType(MSyntax::kSelectionList, 0, 1);

The cache command may be invoked by 3Delight for Maya in the following forms: cache_command -addstep -sampleTime <double> <shape> The command is expected to keep a sample of the specified object at the current time, which is passed via the -sampleTime flag; the command can assume that Mayas current time is already set to this value when it is called. The command should store a combination of the objects name, topology, sample time. No return value is expected. cache_command -list Return the names of the shapes that have been cached by this command in a string array. cache_command -flush Clear all cached data. No return value is expected. cache_command -contains <shape> Returns true if the specified object has been cached, regardless of the sample time. Returns false otherwise. cache_command -remove <shape> Removes the specified object from the cache. No return value is expected. cache_command -emit <shape> Issues the Ri calls that will go inside the ObjectBegin/End or ArchiveBegin/End block for the specified object. If the object can be deformation blurred, it should produce the proper motion blocks. No return value is expected. Registering the node type and the associated cache command Multiple custom node types can be registered at once by defining the following procedure:

Chapter 7: Developers Corner

152

global proc DL_userGetGeoTypeData (string $node types[], string $plugin requirements[], string $cache commands[], string $not used[])
Register custom node types, their associated cache commands and plugin requirements. The procedure is passed empty string arrays. For a given index, each array is expected to contain the relevant information for a given node type. The parameters are: string $node_types[] The names of the custom node types. string $plugin_requirements[] The names of the plugins required to render a given node type. Before trying to cache nodes of that type, 3Delight for Maya will check if the specified plugin name is loaded. If the plugin is not loaded, any nodes of the related type will be ignored from the rendering. Setting the plugin name to an empty string will avoid any plugin verification. string $cache_commands[] The names of the cache commands. Nodes of type $node_type[x] will be cached using the string value specified at index x of this array. string $not_used[] This parameter is not used currently. Specify if the custom node can use object instances. By default, 3Delight for Maya will assume that the cache commands -emit flag produces an ObjectBegin / End block (which are more efficient with object instances) and will issue proper ObjectInstance statements for each renderable object. If the cache command produces an inline archive following procedure should be defined:

global proc int DL_<custom_type>CanUseObjectInstance (string $shape name)


<custom type> is a placeholder for the custom node type name. The procedure is passed the name of the shape to be rendered. If the procedures returns a non-zero value, ObjectInstance commands will be used; otherwise ReadArchive statements will be issued. 7.9.2 Rendering Custom Light Nodes It is possible to extend 3Delight for Maya to support custom light nodes. The steps to define how to render custom light nodes nodes are: Properly define and register the custom light node. The custom node type should be listed in the return value of the command listNodeTypes light. This can be achieved by deriving the custom node class from MPXLocatorNode and registering it with the light classification. (Optional) define a light output procedure. By default 3Delight for Maya will output a light shader call when outputting a light source shape. If the custom node type requires a different behaviour, a custom light output procedure should be defined:

global proc <lightOutputProcName> (string $light shape, string


$shader collection) The procedure can bear any name. It will be called with the following parameters: string $light_shape The name of the custom light shape to output. string $shader_collection The name of the effective shader collection.

Chapter 7: Developers Corner

153

(Optional) define an illuminate procedure. By default 3Delight for Maya will issue one Illuminate state per custom light node whenever an illuminate statement is needed. If the custom node type requires a different behaviour (such as producing multiple illuminate statements per light), a custom light illuminate procedure should be defined:

global proc int <lightIlluminateProcName> (string $shape name, int $state)


The procedure can bear any name. It will be called with the following parameters: string $shape_name The name of the shape to be rendered. This will be the shortest unique DAG path to the light shape. int $state This value indicates if the light source should be turned on (non-zero value) or off (zero value). Register the custom node type & procedures. To register the custom light node type, the following procedure must be defined:

global proc DL_userGetLightTypeData (string $node types[], string $requirements callbacks[], string $output commands[], string $illuminate commands[])
Register custom node types, their associated plugin requirements and procedures. The procedure is passed empty string arrays. For a given index, each array is expected to contain the relevant information for a given node type. The parameters are: string $node_types[] The names of the custom light node types. string $requirements_callbacks[] The name of procedures to be called before attempting to render nodes of the related type. If set to an empty string, of if the procedure evaluation returns a non-zero value, the related light node type is assumed to be a valid, renderable node type. string $output_commands[] The names of the light output procedure matching the related custom node type. If set to an empty string, 3Delight for Maya will produce a light shader call when relevant. string $illuminate_commands[] The names of the light illuminate procedure matching the related custom node type. If set to an empty string, 3Delight for Maya will produce a simple RiIlluminate statement when relevant.

Chapter 8: Limitations

154

8 Limitations
3Delight for Maya tries to closely replicate Maya behaviour when rendering. There are however some features which are not yet supported or have some restrictions on how they can be used.

Cameras
In the Film Back section, the following attributes are not supported: Film Translate, Film Roll Pivot, Film Roll Value, Film Roll Order. In the Environment section, the following attribute is not supported: Image Plane.

Particles
The following render types are not supported: MultiPoint, MultiStreak, Numeric, Cloud, Tube.

Fur
Fur applied on subdivision surfaces is not supported.

Hypershade
The layeredShader node will only produce correct arbitrary output variables if the following conditions are met: The transparency of the layers is not set directly but rather connected to each shaders transparency output. There is only one layeredShader node in the network. The only surface shaders in the network are the ones connected to the layeredShader node. The Compositing Flag attribute is set to Layer Shaders. In order to use the bump2d node in Tangent Space Normals or Objet Space Normals mode, an extra connection must be added. Create a bumpNormal attribute of type vector on the bump2d node and connect the desired normal (e.g. texture) to it. This is needed to avoid fetching the normal from whatever node is connected on the bumpValue input, which is unreliable and not flexible. The following nodes are not supported: hairTubeShader, envSky, movie, water. Nodes in the Volumetric section are also not supported.

List of Figures

155

List of Figures
Figure 3.1: The 3Delight Relationship Editor in two-pane mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Figure 3.2: List of all operations available to all panes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Figure 3.3: List of all operations in the Show menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Figure 3.4: List of all operations in the Edit menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Figure 3.5: List of all actions available through the contextual menu of the attribute pane. . . 7 Figure 3.6: The 3Delight Relationship Editor in three-pane mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Figure 3.7: List of all actions available through the contextual menu of the collection as passes pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Figure 3.8: The Assignment Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Figure 3.9: The Shader Selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Figure 3.10: The Add / Remove Attributes Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 Figure 3.11: An empty Geometry Atrtibute Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Figure 3.12: The General attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Figure 3.13: The Quality attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Figure 3.14: The Visibility attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Figure 3.15: The Lighting attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 3.16: The Raytracing attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 3.17: The Motion Blur attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Figure 3.18: The Global Illumination Attribute Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Figure 3.19: The Displacement attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Figure 3.20: The Culling And Dicing attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Figure 3.21: The Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Figure 3.22: The Polygons Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Figure 3.23: The Polygons Geometry Wireframe attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Figure 3.24: The NURBS Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Figure 3.25: The Curves Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Figure 3.26: The Particles Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Figure 3.27: The Maya Fur Geometry attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 3.28: The Reference Geometry panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Figure 3.29: The Subsurface Scattering panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Figure 3.30: The MEL Scripts panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Figure 3.31: The RIB Archive panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Figure 3.32: The Reflection shading attributes panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Figure 3.33: An empty Light Attribute Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Figure 3.34: The Shadow Maps attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Figure 3.35: The Shadow Objects attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Figure 3.36: The Photon Maps Light Attribute Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Figure 3.37: The Category Light Attribute Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Figure 3.38: The Motion Blur Light Attribute Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Figure 3.39: The Area Light Light Attribute Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Figure 3.40: The Light MEL Scripts attribute panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Figure 3.41: An empty Render Pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Figure 3.42: The Camera panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Figure 3.43: The Output panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Figure 3.44: The Quality panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Figure 3.45: The Raytracing Quality panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Figure 3.46: The Motion Blur panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Figure 3.47: The Displays panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Figure 3.48: The Advanced Displays panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

List of Figures

156

Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure Figure

3.49: The Edge Detection Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.50: The Shadow Maps panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 3.51: The Global Illumination section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 3.52: The Global Illumination section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.53: The Environment section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.54: The Photon Maps section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.55: The Point Cloud section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 3.56: The Render Sets panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.57: The RIB Archives panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 3.58: The RIB Fragments panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.59: The Search Paths panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.60: The MEL Scripts panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.61: The Advanced panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.62: The Network Cache panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.63: The Statistics Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.64: The 3Delight Render Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.65: The RIB Archive panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 3.66: The RenderMan Code panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.67: The RenderMan Material panel for a newly created node . . . . . . . . . . . . . . . . . . . . . . 95 3.68: The RenderMan Material panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.69: The Coordinate System Node Drawing Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 3.70: The CSG node panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 3.71: The File Viewing Applications Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 3.72: The Shaders Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.1: List of all primitive variables for Shave hair shapes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

Concept Index

157

Concept Index
AOV, environment diffuse . . . . . . . . . . . . . . . . . . . . . 65 AOV, environment reflection . . . . . . . . . . . . . . . . . . . 64 AOV, environment specular . . . . . . . . . . . . . . . . . . . . 65 AOV, facing ratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 aov, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 AOV, global illumination . . . . . . . . . . . . . . . . . . . . . . 65 AOV, incandescence . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 AOV, indirect diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . 65 AOV, key lights diffuse intensity . . . . . . . . . . . . . . . 63 AOV, key lights diffuse intensity no shadow . . . . 63 AOV, key lights specular intensity . . . . . . . . . . . . . 64 AOV, key lights specular intensity no shadow . . 64 AOV, luminance depth . . . . . . . . . . . . . . . . . . . . . . . . 64 AOV, occlusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 AOV, Oi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 AOV, raytraced reflection . . . . . . . . . . . . . . . . . . . . . . 64 AOV, reflection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 AOV, refraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 AOV, rgba . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 AOV, shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 AOV, specular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 AOV, specular intensity . . . . . . . . . . . . . . . . . . . . . . . 64 AOV, specular intensity no shadow . . . . . . . . . . . . 64 AOV, specular no shadow . . . . . . . . . . . . . . . . . . . . . . 64 AOV, surface color . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 AOV, translucence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 aovs, translate maya shaders, advanced . . . . . . . . 85 aperture, number of blades, render pass . . . . . . . . 57 aperture, polygonal, render pass . . . . . . . . . . . . . . . 57 aperture, rotation, render pass . . . . . . . . . . . . . . . . . 57 archive lighting, RIB archive . . . . . . . . . . . . . . . . . . . 78 archive search paths . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 archive write mode, RIB archive . . . . . . . . . . . . . . . 79 area light samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 area light, sampling strategy . . . . . . . . . . . . . . . . . . . 48 aspect ratio, pixel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 associate alpha, display . . . . . . . . . . . . . . . . . . . . . . . . 68 automatic file output directory . . . . . . . . . . . . . . . 136

3DFM FLUIDS PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM FURFILES PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM OUTPUT PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM RIBFRAGMENTS PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM SHADERS PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM SHADOWMAPS PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 3DFM SL INCLUDE PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 3DFM TEMPLATES PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 3DFM TEXTURES PATH, environment variable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

3
3delight 3delight 3delight 3delight 3delight 3delight fluids files, project setting . . . . . . . . . . . . fur files, project setting . . . . . . . . . . . . . . shaders, project setting . . . . . . . . . . . . . . shadow saps, project setting . . . . . . . . . . templates, project setting . . . . . . . . . . . . textures, project setting . . . . . . . . . . . . . . 136 136 136 136 137 137

A
accessor call, renderman material . . . . . . . . . . . . . . add call, renderman material . . . . . . . . . . . . . . . . . . . add display, render pass . . . . . . . . . . . . . . . . . . . . . . . add render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . add rib fragment, render pass . . . . . . . . . . . . . . . . . . add to final mix, render pass . . . . . . . . . . . . . . . . . . . advanced, Number Of CPUs . . . . . . . . . . . . . . . . . . . advanced, standard atmosphere . . . . . . . . . . . . . . . . advanced, translate Maya shaders . . . . . . . . . . . . . . advanced, translate maya shaders aovs . . . . . . . . . advanced, use Maya shaders . . . . . . . . . . . . . . . . . . . advanced, volume shading rate . . . . . . . . . . . . . . . . . ambient render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . animation, render pass . . . . . . . . . . . . . . . . . . . . . . . . . AOV, a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AOV, ambient . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AOV, camera space normal . . . . . . . . . . . . . . . . . . . . AOV, color no shadow . . . . . . . . . . . . . . . . . . . . . . . . . AOV, definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AOV, diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . AOV, diffuse intensity . . . . . . . . . . . . . . . . . . . . . . . . . AOV, diffuse intensity no shadow . . . . . . . . . . . . . . AOV, diffuse no shadow . . . . . . . . . . . . . . . . . . . . . . . 97 97 60 50 81 72 85 86 85 85 85 86 63 53 62 63 65 64 59 63 63 63 63

B
backfacing surfaces culling . . . . . . . . . . . . . . . . . . . . . background render log, render pass . . . . . . . . . . . . background render parameters, render pass . . . . background render, render pass . . . . . . . . . . . . . . . . base ambient color, maya fur . . . . . . . . . . . . . . . . . . . base color, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . basis, normalize, nurbs . . . . . . . . . . . . . . . . . . . . . . . . . beauty render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . bias, ray tracing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . binary RIB output, render pass . . . . . . . . . . . . . . . . binary rib, rib fragments, render pass . . . . . . . . . . bit depth, display, render pass . . . . . . . . . . . . . . . . . black point, render pass . . . . . . . . . . . . . . . . . . . . . . . . 26 55 55 55 35 34 30 62 22 55 81 65 73

Concept Index

158

bmp display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . browse file, rib fragment, render pass . . . . . . . . . . . browse image file, display, render pass . . . . . . . . . . bucket order, render pass . . . . . . . . . . . . . . . . . . . . . . bucket, definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

61 81 61 53 53

current frame number, file paths . . . . . . . . . . . . . . 134 cylinder, coordinate system . . . . . . . . . . . . . . . . . . . . 98

D
deep shadow map, display driver . . . . . . . . . . . . . . . 62 deep shadow map, volume interpretation . . . . . . . 45 deep shadow map, volume interpretation, continuous . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 deep shadow map, volume interpretation, discrete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 deep shadow map, volume interpretation, distance inside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 deep shadow maps, volume interpretation . . . . . . 71 deformation blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 deformation motion blur samples, render pass . . 58 deformation motion blur, render pass . . . . . . . . . . 58 depth filter, average, shadow map . . . . . . . . . . . . . . 45 depth filter, average, shadow maps . . . . . . . . . . . . . 71 depth filter, max, shadow map . . . . . . . . . . . . . . . . . 45 depth filter, max, shadow maps . . . . . . . . . . . . . . . . 71 depth filter, midpoint, shadow map . . . . . . . . . . . . 45 depth filter, midpoint, shadow maps . . . . . . . . . . . 71 depth filter, min, shadow map . . . . . . . . . . . . . . . . . 45 depth filter, min, shadow maps . . . . . . . . . . . . . . . . 71 depth filter, shadow map . . . . . . . . . . . . . . . . . . . . . . 45 depth filter, shadow maps . . . . . . . . . . . . . . . . . . . . . . 70 depth of field, focus factor . . . . . . . . . . . . . . . . . . . . . 19 depth of field, motion factor . . . . . . . . . . . . . . . . . . . 19 depth, luminance, render pass . . . . . . . . . . . . . . . . . . 64 dicing camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 dicing, hair, micropolygons in U . . . . . . . . . . . . . . . 26 dicing, raster oriented . . . . . . . . . . . . . . . . . . . . . . . . . 26 difference, csg node . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 diffuse intensity no shadow render pass . . . . . . . . . 63 diffuse intensity render pass . . . . . . . . . . . . . . . . . . . . 63 diffuse no shadow render pass . . . . . . . . . . . . . . . . . . 63 diffuse render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 diffuse, visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 directional shadows, render pass . . . . . . . . . . . . . . . 73 directory, fluids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 directory, fragments . . . . . . . . . . . . . . . . . . . . . . . . . . 136 directory, fur files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 directory, shader selector . . . . . . . . . . . . . . . . . . . . . . 11 directory, shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 directory, shadow maps . . . . . . . . . . . . . . . . . . . . . . . 136 directory, templates . . . . . . . . . . . . . . . . . . . . . . . . . . 137 directory, textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 displacement bound . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 displacement bound space . . . . . . . . . . . . . . . . . . . . . 25 displacement, raytracing . . . . . . . . . . . . . . . . . . . . . . . 22 display AOV, rgb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 display AOV, z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 display driver, bmp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, cineon . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, deep shadow map . . . . . . . . . . . . . . . 62 display driver, dsm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 display driver, eps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

C
calls, renderman material . . . . . . . . . . . . . . . . . . . . . . 96 camera motion blur samples, render pass . . . . . . . 58 camera motion blur, render pass . . . . . . . . . . . . . . . 58 camera name, render pass . . . . . . . . . . . . . . . . . . . . . . 52 camera space normal render pass . . . . . . . . . . . . . . 65 camera visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 camera, dicing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 camera, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 camera, shadow map . . . . . . . . . . . . . . . . . . . . . . . . . . 46 cast shadows from environment, render pass . . . . 73 casts shadows render stat . . . . . . . . . . . . . . . . . . . . . 123 category, light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 cineon display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 clipping plane, far, shadow map . . . . . . . . . . . . . . . . 46 clipping plane, near, shadow map . . . . . . . . . . . . . . 46 clipping planes, render sets . . . . . . . . . . . . . . . . . . . . 77 close, shader selector . . . . . . . . . . . . . . . . . . . . . . . . . . 12 clump id, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 clumping frequency, maya fur . . . . . . . . . . . . . . . . . . 34 coefficient scale, subsurface scattering . . . . . . . . . . 37 color bleeding intensity, render pass . . . . . . . . . . . . 73 color bleeding output variable . . . . . . . . . . . . . . . . . . 65 color no shadow render pass . . . . . . . . . . . . . . . . . . . 64 color, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 color, surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 command line rendering . . . . . . . . . . . . . . . . . . . . . . 106 composite objects behind, visibility . . . . . . . . . . . . 20 compressed RIB output, render pass . . . . . . . . . . . 55 compressed rib, rib fragments . . . . . . . . . . . . . . . . . . 81 compute alpha, display . . . . . . . . . . . . . . . . . . . . . . . . 68 constructive solid geometry . . . . . . . . . . . . . . . . . . . 101 coordinate system, cylinder . . . . . . . . . . . . . . . . . . . . 98 coordinate system, dome . . . . . . . . . . . . . . . . . . . . . . . 98 coordinate system, draw method . . . . . . . . . . . . . . . 98 coordinate system, plane . . . . . . . . . . . . . . . . . . . . . . . 98 coordinate system, sphere . . . . . . . . . . . . . . . . . . . . . . 98 coordinate system, texture filename . . . . . . . . . . . . 98 coordinate system, texture opacity . . . . . . . . . . . . . 98 coordinate system, texture resolution . . . . . . . . . . 98 creating a render pass . . . . . . . . . . . . . . . . . . . . . . . . . 50 crop window, render pass . . . . . . . . . . . . . . . . . . . . . . 53 csg node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 csg node, difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 csg node, intersection . . . . . . . . . . . . . . . . . . . . . . . . . 101 csg node, operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 csg node, select objects . . . . . . . . . . . . . . . . . . . . . . . 101 csg node, union . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 cube shadow map, generate . . . . . . . . . . . . . . . . . . . . 46 culling, backfacing surfaces . . . . . . . . . . . . . . . . . . . . 26 culling, hidden surfaces . . . . . . . . . . . . . . . . . . . . . . . . 26

Concept Index

159

display driver, exr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, framebuffer . . . . . . . . . . . . . . . . . . . . . 61 display driver, i-display . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, iff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, maya render view . . . . . . . . . . . . . . . 61 display driver, null . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 display driver, png . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, psd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display driver, render pass . . . . . . . . . . . . . . . . . . . . . 61 display driver, shadow map . . . . . . . . . . . . . . . . . . . . 62 display driver, texture . . . . . . . . . . . . . . . . . . . . . . . . . 62 display driver, tiff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 display mode, render pass . . . . . . . . . . . . . . . . . . . . . . 62 display subset, display, render pass . . . . . . . . . . . . . 67 display, add, render pass . . . . . . . . . . . . . . . . . . . . . . . 60 display, bit depth, render pass . . . . . . . . . . . . . . . . . 65 display, browse image file, render pass . . . . . . . . . . 61 display, compute alpha . . . . . . . . . . . . . . . . . . . . . . . . 68 display, display mode, render pass . . . . . . . . . . . . . 62 display, exclusive output . . . . . . . . . . . . . . . . . . . . . . . 68 display, gain, render pass . . . . . . . . . . . . . . . . . . . . . . 67 display, gamma, render pass . . . . . . . . . . . . . . . . . . . 67 display, image filename, render pass . . . . . . . . . . . . 60 display, output variable, a . . . . . . . . . . . . . . . . . . . . . 62 display, output variable, Oi . . . . . . . . . . . . . . . . . . . . 62 display, output variable, render pass . . . . . . . . . . . 62 display, output variable, rgb . . . . . . . . . . . . . . . . . . . 62 display, output variable, rgba . . . . . . . . . . . . . . . . . . 62 display, output variable, z . . . . . . . . . . . . . . . . . . . . . . 62 display, override pixel filter, render pass . . . . . . . . 67 display, pixel filter, render pass . . . . . . . . . . . . . . . . 67 display, quantize, render pass . . . . . . . . . . . . . . . . . . 65 display, remove, render pass . . . . . . . . . . . . . . . . . . . 61 display, render, render pass . . . . . . . . . . . . . . . . . . . . 60 display, use matte attribute . . . . . . . . . . . . . . . . . . . . 68 display, view image, render pass . . . . . . . . . . . . . . . 61 display,associate alpha . . . . . . . . . . . . . . . . . . . . . . . . . 68 displays, filter width, render pass . . . . . . . . . . . . . . 67 displays, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 dome, coordinate system . . . . . . . . . . . . . . . . . . . . . . . 98 double shaded . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 double sided . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 double sided render stat . . . . . . . . . . . . . . . . . . . . . . 123 double sided shading . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 draw method, coordinate system . . . . . . . . . . . . . . . 98 driver, display, render pass . . . . . . . . . . . . . . . . . . . . . 61 dsm display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 duplicate render pass . . . . . . . . . . . . . . . . . . . . . . . . . . 51 dynamics, rendering . . . . . . . . . . . . . . . . . . . . . . . . . . 133

environment color offset, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 environment diffuse output variable . . . . . . . . . . . . 65 environment intensity, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 environment map, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 environment reflection render pass . . . . . . . . . . . . . 64 environment specular output variable . . . . . . . . . . 65 environment specularity, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 environment variable, 3DFM FLUIDS PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 environment variable, 3DFM FURFILES PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 environment variable, 3DFM OUTPUT PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 environment variable, 3DFM RIBFRAGMENTS PATH . . . . . . . 136 environment variable, 3DFM SHADERS PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 environment variable, 3DFM SHADOWMAPS PATH . . . . . . . . . 136 environment variable, 3DFM SL INCLUDE PATH . . . . . . . . . . . . 150 environment variable, 3DFM TEMPLATES PATH . . . . . . . . . . . . 137 environment variable, 3DFM TEXTURES PATH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 environment variables, file paths . . . . . . . . . . . . . . 134 eps display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 exclusive output, display . . . . . . . . . . . . . . . . . . . . . . . 68 export creases, polygon mesh . . . . . . . . . . . . . . . . . . 28 export hard edges, polygon mesh . . . . . . . . . . . . . . . 28 exr display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 extension, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . 134 extreme motion depth of field, motion blur . . . . . 59

F
facing ratio render pass . . . . . . . . . . . . . . . . . . . . . . . . 65 falloff, global illumination, render pass . . . . . . . . . 74 far clipping plane, shadow map . . . . . . . . . . . . . . . . 46 fast image based lighting, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 file output, fluids . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 file output, fragments, render pass . . . . . . . . . . . . 136 file output, fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 file output, hypershade shaders . . . . . . . . . . . . . . . 136 file output, shadow map . . . . . . . . . . . . . . . . . . . . . . 136 file output, templates, render pass . . . . . . . . . . . . 137 file output, textures . . . . . . . . . . . . . . . . . . . . . . . . . . 137 file path tokens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, aov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 file paths, camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, current frame number . . . . . . . . . . . . . . 134 file paths, environment variables . . . . . . . . . . . . . . 134 file paths, extension . . . . . . . . . . . . . . . . . . . . . . . . . . 134

E
end angle, polygon mesh, round edges . . . . . . . . . . 29 end sharpness, polygon mesh, round edges . . . . . 29 end width, maya curves . . . . . . . . . . . . . . . . . . . . . . . . 30 environment color gain, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Concept Index

160

file paths, fragment set . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, frame number expressions . . . . . . . . . . 134 file paths, home directory . . . . . . . . . . . . . . . . . . . . . 134 file paths, layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, MEL command . . . . . . . . . . . . . . . . . . . . 134 file paths, output variable . . . . . . . . . . . . . . . . . . . . 135 file paths, pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 file paths, shape name . . . . . . . . . . . . . . . . . . . . . . . . 134 file viewing applications, preferences . . . . . . . . . . 103 filename shadow map . . . . . . . . . . . . . . . . . . . . . . . . . . 44 filename, rib fragment . . . . . . . . . . . . . . . . . . . . . . . . . 81 filter width, display, render pass . . . . . . . . . . . . . . . 67 filter width, render pass . . . . . . . . . . . . . . . . . . . . . . . . 56 fluids, project setting . . . . . . . . . . . . . . . . . . . . . . . . . 136 focus factor, depth of field . . . . . . . . . . . . . . . . . . . . . 19 focus factor, quality . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 fragment set, file paths . . . . . . . . . . . . . . . . . . . . . . . 134 fragments, project setting . . . . . . . . . . . . . . . . . . . . . 136 fragments, render pass, file output . . . . . . . . . . . . 136 frame increment, render pass . . . . . . . . . . . . . . . . . . 53 frame number expressions, file paths . . . . . . . . . . 134 frame range, render pass . . . . . . . . . . . . . . . . . . . . . . . 53 framebuffer display driver . . . . . . . . . . . . . . . . . . . . . . 61 fuilds files output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 full global illumination, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 fur files output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 fur files, project setting . . . . . . . . . . . . . . . . . . . . . . . 136 fur, maya, clumping frequency . . . . . . . . . . . . . . . . . 34 fur, maya, output base ambient color . . . . . . . . . . . 35 fur, maya, output base color . . . . . . . . . . . . . . . . . . . 34 fur, maya, output clump id . . . . . . . . . . . . . . . . . . . . 36 fur, maya, output hair id . . . . . . . . . . . . . . . . . . . . . . 35 fur, maya, output hair length . . . . . . . . . . . . . . . . . . 35 fur, maya, output hair tip point . . . . . . . . . . . . . . . . 36 fur, maya, output specular color . . . . . . . . . . . . . . . 35 fur, maya, output specular sharpness . . . . . . . . . . . 35 fur, maya, output surface color . . . . . . . . . . . . . . . . . 34 fur, maya, output surface normal . . . . . . . . . . . . . . 35 fur, maya, output surface opacity . . . . . . . . . . . . . . 34 fur, maya, output surface point . . . . . . . . . . . . . . . . 35 fur, maya, output surface u . . . . . . . . . . . . . . . . . . . . 35 fur, maya, output surface v . . . . . . . . . . . . . . . . . . . . 35 fur, maya, output tip ambient color . . . . . . . . . . . . 35 fur, maya, output tip color . . . . . . . . . . . . . . . . . . . . . 34 fur, tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

global illumination output variable . . . . . . . . . . . . . 65 global illumination, add to final mix, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 global illumination, black point, render pass . . . . 73 global illumination, cast shadows from environment, render pass . . . . . . . . . . . . . . . . . . 73 global illumination, color bleeding intensity, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 global illumination, environment color gain, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 global illumination, environment color offset, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 global illumination, environment intensity, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 global illumination, environment specularity, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 global illumination, falloff, render pass . . . . . . . . . 74 global illumination, fast image based lighting, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 global illumination, full global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 global illumination, max distance, render pass . . 73 global illumination, occlusion, render pass . . . . . . 71 global illumination, point based full global illumination, render pass . . . . . . . . . . . . . . . . . . 72 global illumination, point cloud bake camera, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 global illumination, point cloud bias, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 global illumination, point cloud file, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 global illumination, point cloud max solid angle, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 global illumination, point cloud shading rate multiplier, render pass . . . . . . . . . . . . . . . . . . . . 76 global illumination, point cloud write mode, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 global illumination, samples, render pass . . . . . . . 73 global illumination, use as background, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 global illumination, use coordinate system, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 global illumination, white point, render pass . . . 73 group, subsurface scattering . . . . . . . . . . . . . . . . . . . 37

H
hair dicing, micropolygons in U . . . . . . . . . . . . . . . . 26 hair id, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 hair length, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . 35 hair tip point, maya fur . . . . . . . . . . . . . . . . . . . . . . . . 36 hidden surface culling . . . . . . . . . . . . . . . . . . . . . . . . . . 26 hide attributes, shader nodes . . . . . . . . . . . . . . . . . 105 hider, composite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 home directory, file paths . . . . . . . . . . . . . . . . . . . . . 134 hypershade header files . . . . . . . . . . . . . . . . . . . . . . . 150 hypershade shader file output . . . . . . . . . . . . . . . . . 136 hypershade shaders . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

G
gain, display. render pass . . . . . . . . . . . . . . . . . . . . . . gamma, display. render pass . . . . . . . . . . . . . . . . . . . generate first frame only, shadow map . . . . . . . . . . generate shadow maps . . . . . . . . . . . . . . . . . . . . . . . . . geometry, post geometry MEL script . . . . . . . . . . . geometry, pre geometry MEL script . . . . . . . . . . . . global illumination effect, render pass . . . . . . . . . . 67 67 45 44 38 38 71

Concept Index

161

hypershade translation . . . . . . . . . . . . . . . . . . . . . . . 138 hypershade, textures . . . . . . . . . . . . . . . . . . . . . . . . . . 133

linux, installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 log viewing application . . . . . . . . . . . . . . . . . . . . . . . 103 luminance depth render pass . . . . . . . . . . . . . . . . . . . 64

I
i-display display driver . . . . . . . . . . . . . . . . . . . . . . . . . 61 iff display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 ignore archived displacement shaders, RIB archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ignore archived geometry attributes, RIB archive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 ignore archived light links, RIB archive . . . . . . . . 39 ignore archived light sources, RIB archive . . . . . . 39 ignore archived surface shaders, RIB archive . . . 39 ignore archived transforms, RIB archive . . . . . . . . 39 illumination, from light linking . . . . . . . . . . . . . . . . . 22 image filename, display, render pass . . . . . . . . . . . . 60 image pixel aspect ratio . . . . . . . . . . . . . . . . . . . . . . . . 53 image resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 image resolution multiplier . . . . . . . . . . . . . . . . . . . . . 53 image viewing application . . . . . . . . . . . . . . . . . . . . 103 image, crop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 imager shader, use, render pass . . . . . . . . . . . . . . . . 54 incandescence render pass . . . . . . . . . . . . . . . . . . . . . 63 indirect diffuse output variable . . . . . . . . . . . . . . . . . 65 input plug, renderman code . . . . . . . . . . . . . . . . . . . . 94 installation, linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 installation, mac os x . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 installation, windows . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 interpolate boundary, polygon mesh . . . . . . . . . . . . 28 intersection, csg node . . . . . . . . . . . . . . . . . . . . . . . . . 101 irradiance, max error . . . . . . . . . . . . . . . . . . . . . . . . . . 25 irradiance, shading rate . . . . . . . . . . . . . . . . . . . . . . . . 25

M
mac os x, installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 material file, renderman material . . . . . . . . . . . . . . . 96 matte object, visibility . . . . . . . . . . . . . . . . . . . . . . . . . 20 max distance, global illumination, render pass . . 73 max error, irradiance . . . . . . . . . . . . . . . . . . . . . . . . . . 25 maya curves, end width . . . . . . . . . . . . . . . . . . . . . . . . 30 maya curves, output . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 maya curves, start width . . . . . . . . . . . . . . . . . . . . . . . 30 maya fur, animation problem . . . . . . . . . . . . . . . . . 130 maya fur, clumping frequency . . . . . . . . . . . . . 34, 130 maya fur, not reflected . . . . . . . . . . . . . . . . . . . . . . . . 130 maya fur, not refracted . . . . . . . . . . . . . . . . . . . . . . . 130 maya fur, output base ambient color . . . . . . . . . . . 35 maya fur, output base color . . . . . . . . . . . . . . . . . . . . 34 maya fur, output clump id . . . . . . . . . . . . . . . . . . . . . 36 maya fur, output hair id . . . . . . . . . . . . . . . . . . . . . . . 35 maya fur, output hair length . . . . . . . . . . . . . . . . . . . 35 maya fur, output hair tip point . . . . . . . . . . . . . . . . 36 maya fur, output specular color . . . . . . . . . . . . . . . . 35 maya fur, output specular sharpness . . . . . . . . . . . 35 maya fur, output surface color . . . . . . . . . . . . . . . . . 34 maya fur, output surface normal . . . . . . . . . . . . . . . 35 maya fur, output surface opacity . . . . . . . . . . . . . . . 34 maya fur, output surface point . . . . . . . . . . . . . . . . . 35 maya fur, output surface u . . . . . . . . . . . . . . . . . . . . . 35 maya fur, output surface v . . . . . . . . . . . . . . . . . . . . . 35 maya fur, output tip ambient color . . . . . . . . . . . . . 35 maya fur, output tip color . . . . . . . . . . . . . . . . . . . . . 34 maya fur, tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 maya fur, U samples . . . . . . . . . . . . . . . . . . . . . . . . . . 130 maya fur, V samples . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Maya hair, tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 Maya Paint FX, tips . . . . . . . . . . . . . . . . . . . . . . . . . . 129 maya render view display driver . . . . . . . . . . . . . . . . 61 MEL command, file paths . . . . . . . . . . . . . . . . . . . . 134 MEL script, light pre render . . . . . . . . . . . . . . . . . . . 49 MEL script, post geometry . . . . . . . . . . . . . . . . . . . . 38 MEL script, pre geometry . . . . . . . . . . . . . . . . . . . . . 38 MEL script, shadow map post render . . . . . . . . . . 49 method call, renderman material . . . . . . . . . . . . . . . 97 motion blur and visibility . . . . . . . . . . . . . . . . . . . . . 132 motion blur position, render pass . . . . . . . . . . . . . . 58 motion blur render stat . . . . . . . . . . . . . . . . . . . . . . . 123 motion blur, camera, render pass . . . . . . . . . . . . . . 58 motion blur, deformation blur . . . . . . . . . . . . . . . . . 23 motion blur, deformation, render pass . . . . . . . . . . 58 motion blur, extreme motion DOF, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 motion blur, raytracing . . . . . . . . . . . . . . . . . . . . . . . . 22 motion blur, sample motion, render pass . . . . . . . 59 motion blur, samples, camera motion blur . . . . . . 58 motion blur, shadow map, generate with . . . . . . . 46

K
key light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 key lights diffuse intensity render pass . . . . . . . . . 63 key lights diffuse intensity render pass no shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 key lights specular intensity no shadow render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 key lights specular intensity render pass . . . . . . . . 64

L
launch rendering, render pass . . . . . . . . . . . . . . . . . . 51 layer to render, render sets . . . . . . . . . . . . . . . . . . . . . 77 layers, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 light category . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 light emitting photons . . . . . . . . . . . . . . . . . . . . . . . . . 47 light linking, objects illumination . . . . . . . . . . . . . . 22 light, key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 light, shadow map post render MEL script . . . . . 49 light, shadow map pre render MEL script . . . . . . 49 light, transformation blur . . . . . . . . . . . . . . . . . . . . . . 47 lights illuminating object . . . . . . . . . . . . . . . . . . . . . . 22 lights to render, render sets . . . . . . . . . . . . . . . . . . . . 77

Concept Index

162

motion blur, transformation blur . . . . . . . . . . . . . . . motion blur, transformation, render pass . . . . . . . motion factor, depth of field . . . . . . . . . . . . . . . . . . . motion factor, quality . . . . . . . . . . . . . . . . . . . . . . . . . . motion quality, motion factor . . . . . . . . . . . . . . . . . . move call down, renderman material . . . . . . . . . . . move call up, renderman material . . . . . . . . . . . . . . multi-bounce global illumination . . . . . . . . . . . . . . . multiplier, resolution . . . . . . . . . . . . . . . . . . . . . . . . . . multiprocessing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . multithreading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23 58 19 19 19 97 97 75 53 85 85

N
name filter, shader selector . . . . . . . . . . . . . . . . . . . . . nCloth, render as particles . . . . . . . . . . . . . . . . . . . . . near clipping plane, shadow map . . . . . . . . . . . . . . . network cache, directory . . . . . . . . . . . . . . . . . . . . . . . network cache, size . . . . . . . . . . . . . . . . . . . . . . . . . . . . normalize nurbs basis . . . . . . . . . . . . . . . . . . . . . . . . . . Nref, output, reference geometry . . . . . . . . . . . . . . . null display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . nurbs, normalize basis . . . . . . . . . . . . . . . . . . . . . . . . . 12 32 46 86 87 30 36 62 30

O
object set, rib fragment, render pass . . . . . . . . . . . 82 objects in shadow map . . . . . . . . . . . . . . . . . . . . . . . . . 46 objects to render, render sets . . . . . . . . . . . . . . . . . . 77 occlusion render pass . . . . . . . . . . . . . . . . . . . . . . . . . . 65 occlusion, global illumination, render pass . . . . . . 71 occlusion, visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 opacity threshold, shadow maps . . . . . . . . . . . . . . . . 70 opacity, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 opacity, surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 openexr display driver . . . . . . . . . . . . . . . . . . . . . . . . . 61 operation, csg node . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 opposite render stat . . . . . . . . . . . . . . . . . . . . . . . . . . 124 options, command line . . . . . . . . . . . . . . . . . . . . . . . . 106 orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 output all uvsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 output maya curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 output Nref, reference geometry . . . . . . . . . . . . . . . . 36 output Pref, reference geometry . . . . . . . . . . . . . . . . 36 output progress . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 output render mode, render pass . . . . . . . . . . . . . . . 54 output variable, display, render pass . . . . . . . . . . . 62 output variable, file paths . . . . . . . . . . . . . . . . . . . . 135 output variables, a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 output variables, ambient . . . . . . . . . . . . . . . . . . . . . . 63 output variables, camera space normal . . . . . . . . . 65 output variables, color bleeding . . . . . . . . . . . . . . . . 65 output variables, color no shadow . . . . . . . . . . . . . . 64 output variables, diffuse . . . . . . . . . . . . . . . . . . . . . . . 63 output variables, diffuse intensity . . . . . . . . . . . . . . 63 output variables, diffuse intensity no shadow . . . 63 output variables, diffuse no shadow . . . . . . . . . . . . 63 output variables, environment diffuse . . . . . . . . . . 65

output variables, environment reflection . . . . . . . . 64 output variables, environment specular . . . . . . . . . 65 output variables, facing ratio . . . . . . . . . . . . . . . . . . . 65 output variables, global illumination . . . . . . . . . . . 65 output variables, incandescence . . . . . . . . . . . . . . . . 63 output variables, indirect diffuse . . . . . . . . . . . . . . . 65 output variables, key lights diffuse intensity . . . . 63 output variables, key lights diffuse intensity no shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 output variables, key lights specular intensity . . 64 output variables, key lights specular intensity no shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 output variables, luminance depth . . . . . . . . . . . . . 64 output variables, occlusion . . . . . . . . . . . . . . . . . . . . . 65 output variables, Oi . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 output variables, raytraced reflection . . . . . . . . . . . 64 output variables, reflection . . . . . . . . . . . . . . . . . . . . . 63 output variables, refraction . . . . . . . . . . . . . . . . . . . . 63 output variables, rgb . . . . . . . . . . . . . . . . . . . . . . . . . . 62 output variables, rgba . . . . . . . . . . . . . . . . . . . . . . . . . 62 output variables, shadow . . . . . . . . . . . . . . . . . . . . . . . 63 output variables, specular . . . . . . . . . . . . . . . . . . . . . . 63 output variables, specular intensity . . . . . . . . . . . . 64 output variables, specular intensity no shadow . . 64 output variables, specular no shadow . . . . . . . . . . . 64 output variables, surface color . . . . . . . . . . . . . . . . . 64 output variables, translucence . . . . . . . . . . . . . . . . . . 63 output variables, z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 output vertex color . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 output, binary RIB, render pass . . . . . . . . . . . . . . . 55 output, compressed RIB, render pass . . . . . . . . . . . 55 output, RIB filename, render pass . . . . . . . . . . . . . . 55 override pixel filter, display. render pass . . . . . . . . 67

P
parameters, renderman code . . . . . . . . . . . . . . . . . . . 94 particle system, as volumes in DSMs . . . . . . . . . . . 32 particle system, color as Cs . . . . . . . . . . . . . . . . . . . . 32 particle system, output custom variables . . . . . . . 33 particle system, output variables . . . . . . . . . . . . . . . 33 particle system, render nCloth . . . . . . . . . . . . . . . . . 32 particle system, render type . . . . . . . . . . . . . . . . . . . . 31 particle system, rgbPP as Cs . . . . . . . . . . . . . . . . . . 32 particle system, size override . . . . . . . . . . . . . . . . . . . 32 particle system, size scale . . . . . . . . . . . . . . . . . . . . . . 32 particle system, size space . . . . . . . . . . . . . . . . . . . . . 32 pass, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 path, shader selector . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 photon color, photon map . . . . . . . . . . . . . . . . . . . . . 24 photon estimator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 photon map, photon color . . . . . . . . . . . . . . . . . . . . . 24 photon map, shading model . . . . . . . . . . . . . . . . . . . . 24 photon, light emitting . . . . . . . . . . . . . . . . . . . . . . . . . 47 photon, map, render . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 photon, map, write . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 photonhitmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 photonmap viewing application . . . . . . . . . . . . . . . 103

Concept Index

163

photons, visibility . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 pixel aspect ratio, render pass . . . . . . . . . . . . . . . . . 53 pixel filter width, render pass . . . . . . . . . . . . . . . . . . 56 pixel filter, display. render pass . . . . . . . . . . . . . . . . 67 pixel filter, render pass . . . . . . . . . . . . . . . . . . . . . . . . 56 pixel samples, render pass . . . . . . . . . . . . . . . . . . . . . 56 pixel samples, shadow map . . . . . . . . . . . . . . . . . . . . 45 plane, coordinate system . . . . . . . . . . . . . . . . . . . . . . . 98 png display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 point based full global illumination, global illumination, render pass . . . . . . . . . . . . . . . . . . 72 point cloud bake camera, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 point cloud bias, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 point cloud file, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 point cloud max solid angle, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 point cloud shading rate multiplier, global illumination, render pass . . . . . . . . . . . . . . . . . . 76 point cloud write mode, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 pointlight shadow map, generate . . . . . . . . . . . . . . . 46 polygon mesh, export creases . . . . . . . . . . . . . . . . . . 28 polygon mesh, export hard edges . . . . . . . . . . . . . . . 28 polygon mesh, interpolate boundary . . . . . . . . . . . 28 polygon mesh, output all uvsets . . . . . . . . . . . . . . . . 27 polygon mesh, output as subdivision mesh . . . . . 28 polygon mesh, output as subdivision mesh, export creases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 polygon mesh, output as subdivision mesh, export hard edges . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 polygon mesh, output vertex color . . . . . . . . . . . . . 28 polygon mesh, output wireframe . . . . . . . . . . . . . . . 29 polygon mesh, round edges . . . . . . . . . . . . . . . . . . . . 28 polygon mesh, round edges, end angle . . . . . . . . . . 29 polygon mesh, round edges, end sharpness . . . . . 29 polygon mesh, round edges, start angle . . . . . . . . 29 polygon mesh, round edges, start sharpness . . . . 29 polygon mesh, use current uvsets . . . . . . . . . . . . . . 27 polygon mesh, uvsets, output all . . . . . . . . . . . . . . . 27 polygon mesh, uvsets, use current . . . . . . . . . . . . . . 27 polygon mesh, vertex color, output . . . . . . . . . . . . . 28 polygon mesh, wireframe width . . . . . . . . . . . . . . . . 29 polygon mesh, wireframe, raster space . . . . . . . . . 29 Pref, output, reference geometry . . . . . . . . . . . . . . . 36 preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 preferences, shader preview . . . . . . . . . . . . . . . . . . . 104 preferences, viewing applications . . . . . . . . . . . . . . 103 primary display, render, render pass . . . . . . . . . . . . 60 primary visibility render stat . . . . . . . . . . . . . . . . . 123 primitive RIB archive, shader preview . . . . . . . . 104 primitive scale, shader preview . . . . . . . . . . . . . . . . 104 primitive variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 primitive, shader preview . . . . . . . . . . . . . . . . . . . . . 104 procedurals search paths . . . . . . . . . . . . . . . . . . . . . . . 82 progress, output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

progressive raytrace hider . . . . . . . . . . . . . . . . . . . . . . 84 project setting, 3delight fluids . . . . . . . . . . . . . . . . 136 project setting, 3delight fur files . . . . . . . . . . . . . . 136 project setting, 3delight shaders . . . . . . . . . . . . . . 136 project setting, 3delight shadow maps . . . . . . . . . 136 project setting, 3delight templates . . . . . . . . . . . . 137 project setting, 3delight textures . . . . . . . . . . . . . . 137 project setting, rib fragments . . . . . . . . . . . . . . . . . 136 project settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 project, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 psd display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Q
quality, focus factor . . . . . . . . . . . . . . . . . . . . . . . . . . . . quality, shading rate multiplier . . . . . . . . . . . . . . . . . quality, smooth derivatives . . . . . . . . . . . . . . . . . . . . . quantize, display, render pass . . . . . . . . . . . . . . . . . . 19 19 19 65

R
raster oriented, dicing . . . . . . . . . . . . . . . . . . . . . . . . . 26 raytrace depth, render pass . . . . . . . . . . . . . . . . . . . . 57 raytrace diffuse depth, render pass . . . . . . . . . . . . . 57 raytrace specular depth, render pass . . . . . . . . . . . 57 raytraced reflection render pass . . . . . . . . . . . . . . . . 64 raytracing, bias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 raytracing, diffuse rays visibility . . . . . . . . . . . . . . . 21 raytracing, displacement . . . . . . . . . . . . . . . . . . . . . . . 22 raytracing, motion blur . . . . . . . . . . . . . . . . . . . . . . . . 22 raytracing, occlusion visibility . . . . . . . . . . . . . . . . . . 21 raytracing, reflection rays visibility . . . . . . . . . . . . . 21 raytracing, refraction rays visibility . . . . . . . . . . . . 21 raytracing, shadow rays visibility . . . . . . . . . . . . . . 20 raytracing, trace sets . . . . . . . . . . . . . . . . . . . . . . . . . . 22 receive shadows render stat . . . . . . . . . . . . . . . . . . . 123 reduced absorption, subsurface scattering . . . . . . 37 reduced scattering, subsurface scattering . . . . . . . 37 reference geometry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 reference geometry, output Nref . . . . . . . . . . . . . . . . 36 reference geometry, output Pref . . . . . . . . . . . . . . . . 36 reflection rays, visibility . . . . . . . . . . . . . . . . . . . . . . . 21 reflection render pass . . . . . . . . . . . . . . . . . . . . . . . . . . 63 refraction index, subsurface scattering . . . . . . . . . . 37 refraction rays, visibility . . . . . . . . . . . . . . . . . . . . . . . 21 refraction render pass . . . . . . . . . . . . . . . . . . . . . . . . . . 63 refresh, shader selector . . . . . . . . . . . . . . . . . . . . . . . . . 12 relationship editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 remove call, renderman material . . . . . . . . . . . . . . . 97 remove display, render pass . . . . . . . . . . . . . . . . . . . . 61 remove, rib fragment, render pass . . . . . . . . . . . . . . 81 render as volumes in DSMs, particle . . . . . . . . . . . 32 render camera, render pass . . . . . . . . . . . . . . . . . . . . 52 render display, render pass . . . . . . . . . . . . . . . . . . . . . 60 render globals, use resolution from . . . . . . . . . . . . . 52 render log, render pass . . . . . . . . . . . . . . . . . . . . . . . . . 55 render mode, render pass . . . . . . . . . . . . . . . . . . . . . . 54 render parameters, render pass . . . . . . . . . . . . . . . . . 55

Concept Index

164

render pass, add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 render pass, add display . . . . . . . . . . . . . . . . . . . . . . . 60 render pass, ambient . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, animation . . . . . . . . . . . . . . . . . . . . . . . . . 53 render pass, aperture, number of blades . . . . . . . . 57 render pass, aperture, polygonal . . . . . . . . . . . . . . . 57 render pass, aperture, rotation . . . . . . . . . . . . . . . . . 57 render pass, background render . . . . . . . . . . . . . . . . 55 render pass, beauty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 render pass, black point . . . . . . . . . . . . . . . . . . . . . . . . 73 render pass, bucket order . . . . . . . . . . . . . . . . . . . . . . 53 render pass, camera motion blur . . . . . . . . . . . . . . . 58 render pass, camera motion blur samples . . . . . . . 58 render pass, camera name . . . . . . . . . . . . . . . . . . . . . . 52 render pass, camera space normal . . . . . . . . . . . . . . 65 render pass, cast shadows from environment . . . . 73 render pass, color bleeding intensity . . . . . . . . . . . . 73 render pass, color no shadow . . . . . . . . . . . . . . . . . . . 64 render pass, creating . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 render pass, crop window . . . . . . . . . . . . . . . . . . . . . . 53 render pass, definition . . . . . . . . . . . . . . . . . . . . . . . . . 50 render pass, deformation motion blur . . . . . . . . . . 58 render pass, deformation motion blur samples . . 58 render pass, depth of field . . . . . . . . . . . . . . . . . . . . . 57 render pass, diffuse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, diffuse intensity . . . . . . . . . . . . . . . . . . . 63 render pass, diffuse intensity no shadow . . . . . . . . 63 render pass, diffuse no shadow . . . . . . . . . . . . . . . . . 63 render pass, display subset . . . . . . . . . . . . . . . . . . . . . 67 render pass, display, add . . . . . . . . . . . . . . . . . . . . . . . 60 render pass, display, bit depth . . . . . . . . . . . . . . . . . 65 render pass, display, browse . . . . . . . . . . . . . . . . . . . . 61 render pass, display, driver . . . . . . . . . . . . . . . . . . . . . 61 render pass, display, image filename . . . . . . . . . . . . 60 render pass, display, output variable . . . . . . . . . . . 62 render pass, display, remove . . . . . . . . . . . . . . . . . . . 61 render pass, display, render . . . . . . . . . . . . . . . . . . . . 60 render pass, display, view image . . . . . . . . . . . . . . . 61 render pass, displays . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 render pass, duplicate . . . . . . . . . . . . . . . . . . . . . . . . . . 51 render pass, environment color gain, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 render pass, environment color offset, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 render pass, environment intensity, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 render pass, environment reflection . . . . . . . . . . . . . 64 render pass, environment specularity, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 render pass, facing ratio . . . . . . . . . . . . . . . . . . . . . . . 65 render pass, falloff, global illumination . . . . . . . . . 74 render pass, file paths . . . . . . . . . . . . . . . . . . . . . . . . 134 render pass, filter width . . . . . . . . . . . . . . . . . . . . . . . . 56 render pass, frame increment . . . . . . . . . . . . . . . . . . 53 render pass, frame range . . . . . . . . . . . . . . . . . . . . . . . 53 render pass, global illumination effect . . . . . . . . . . 71 render pass, global illumination, fast image based lighting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

render pass, global illumination, full global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 render pass, global illumination, occlusion . . . . . . 71 render pass, global illumination, point based full global illumination . . . . . . . . . . . . . . . . . . . . . . . . 72 render pass, incandescence . . . . . . . . . . . . . . . . . . . . . 63 render pass, key light specular intensity . . . . . . . . 64 render pass, key light specular intensity no shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 render pass, key lights diffuse intensity . . . . . . . . . 63 render pass, key lights diffuse intensity no shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, luminance depth . . . . . . . . . . . . . . . . . . 64 render pass, max distance, global illumination . . 73 render pass, motion blur . . . . . . . . . . . . . . . . . . . . . . . 57 render pass, motion blur, camera . . . . . . . . . . . . . . 58 render pass, motion blur, extreme motion DOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 render pass, motion blur, position . . . . . . . . . . . . . . 58 render pass, motion blur, sample motion . . . . . . . 59 render pass, motion blur, sample on integer frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 render pass, occlusion . . . . . . . . . . . . . . . . . . . . . . . . . . 65 render pass, output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 render pass, output, binary RIB . . . . . . . . . . . . . . . 55 render pass, output, compressed RIB . . . . . . . . . . . 55 render pass, output, render log . . . . . . . . . . . . . . . . . 55 render pass, output, render parameters . . . . . . . . . 55 render pass, pixel aspect ratio . . . . . . . . . . . . . . . . . 53 render pass, pixel filter . . . . . . . . . . . . . . . . . . . . . . . . 56 render pass, pixel samples . . . . . . . . . . . . . . . . . . . . . 56 render pass, point cloud bake camera, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 render pass, point cloud bias, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 render pass, point cloud file, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 render pass, point cloud max solid angle, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 render pass, point cloud shading rate multiplier, global illumination . . . . . . . . . . . . . . . . . . . . . . . . 76 render pass, point cloud write mode, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 render pass, polygonal aperture . . . . . . . . . . . . . . . . 57 render pass, raytrace depth . . . . . . . . . . . . . . . . . . . . 57 render pass, raytrace diffuse depth . . . . . . . . . . . . . 57 render pass, raytrace specular depth . . . . . . . . . . . 57 render pass, raytraced reflection . . . . . . . . . . . . . . . 64 render pass, reflection . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, refraction . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, render mode . . . . . . . . . . . . . . . . . . . . . . 54 render pass, render output . . . . . . . . . . . . . . . . . . . . . 54 render pass, render primary display . . . . . . . . . . . . 60 render pass, rendering . . . . . . . . . . . . . . . . . . . . . . . . . 51 render pass, resolution . . . . . . . . . . . . . . . . . . . . . . . . . 52 render pass, resolution multiplier . . . . . . . . . . . . . . . 53 render pass, RIB archive output . . . . . . . . . . . . . . . 54 render pass, RIB filename . . . . . . . . . . . . . . . . . . . . . . 55

Concept Index

165

render pass, rib fragment, browse . . . . . . . . . . . . . . 81 render pass, rib fragment, object set . . . . . . . . . . . 82 render pass, rib fragment, remove . . . . . . . . . . . . . . 81 render pass, rib fragment, use . . . . . . . . . . . . . . . . . . 81 render pass, rib fragment, view RIB . . . . . . . . . . . . 82 render pass, rib fragment, write . . . . . . . . . . . . . . . . 81 render pass, rib fragments, add . . . . . . . . . . . . . . . . 81 render pass, rib fragments, binary rib . . . . . . . . . . 81 render pass, samples, global illumination . . . . . . . 73 render pass, save RIB output . . . . . . . . . . . . . . . . . . 54 render pass, save template . . . . . . . . . . . . . . . . . . . . . 52 render pass, selecting . . . . . . . . . . . . . . . . . . . . . . . . . . 51 render pass, shading rate . . . . . . . . . . . . . . . . . . . . . . 56 render pass, shadow . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, shutter angle scale . . . . . . . . . . . . . . . . 59 render pass, shutter efficiency . . . . . . . . . . . . . . . . . . 59 render pass, specular . . . . . . . . . . . . . . . . . . . . . . . . . . 63 render pass, specular intensity . . . . . . . . . . . . . . . . . 64 render pass, specular intensity no shadow . . . . . . 64 render pass, specular no shadow . . . . . . . . . . . . . . . 64 render pass, surface color . . . . . . . . . . . . . . . . . . . . . . 64 render pass, template, save . . . . . . . . . . . . . . . . . . . . 52 render pass, transformation motion blur . . . . . . . . 58 render pass, transformation motion blur samples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 render pass, translucence . . . . . . . . . . . . . . . . . . . . . . 63 render pass, use as background, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 render pass, use coordinate system, global illumination . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 render pass, use imager shader . . . . . . . . . . . . . . . . . 54 render pass, use resolution from render globals . . 52 render pass, viewing . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 render pass, white point . . . . . . . . . . . . . . . . . . . . . . . 73 render photon maps . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 render primary display, render pass . . . . . . . . . . . . 60 render pss, add to final mix . . . . . . . . . . . . . . . . . . . . 72 render sets, clipping planes . . . . . . . . . . . . . . . . . . . . 77 render sets, layer to render . . . . . . . . . . . . . . . . . . . . . 77 render sets, lights to render . . . . . . . . . . . . . . . . . . . . 77 render sets, objects to render . . . . . . . . . . . . . . . . . . 77 render sets, shader collection . . . . . . . . . . . . . . . . . . . 77 render settings, use resolution from . . . . . . . . . . . . 52 render shadow maps . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 render stats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 render stats, casts shadows . . . . . . . . . . . . . . . . . . . 123 render stats, double sided . . . . . . . . . . . . . . . . . . . . . 123 render stats, motion blur . . . . . . . . . . . . . . . . . . . . . 123 render stats, opposite . . . . . . . . . . . . . . . . . . . . . . . . . 124 render stats, primary visibility . . . . . . . . . . . . . . . . 123 render stats, receive shadows . . . . . . . . . . . . . . . . . 123 render stats, visible in reflections . . . . . . . . . . . . . 123 render stats, visible in refractions . . . . . . . . . . . . . 123 rendering in layers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 rendering resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 rendering resolution multiplier . . . . . . . . . . . . . . . . . 53 rendering, render pass . . . . . . . . . . . . . . . . . . . . . . . . . 51 renderman code node, definition . . . . . . . . . . . . . . . 93

renderman code, input plug . . . . . . . . . . . . . . . . . . . . 94 renderman code, list of examples . . . . . . . . . . . . . . . 93 renderman code, parameters . . . . . . . . . . . . . . . . . . . 94 renderman code, shading code . . . . . . . . . . . . . . . . . 94 renderman code, shading parameters . . . . . . . . . . . 93 renderman material, accessor call . . . . . . . . . . . . . . 97 renderman material, add call . . . . . . . . . . . . . . . . . . . 97 renderman material, calls . . . . . . . . . . . . . . . . . . . . . . 96 renderman material, material file . . . . . . . . . . . . . . . 96 renderman material, method call . . . . . . . . . . . . . . . 97 renderman material, move call down . . . . . . . . . . . 97 renderman material, move call up . . . . . . . . . . . . . . 97 renderman material, remove call . . . . . . . . . . . . . . . 97 renderman material, shading parameters . . . . . . . 96 resolution shadow map . . . . . . . . . . . . . . . . . . . . . . . . 44 resolution, multiplier . . . . . . . . . . . . . . . . . . . . . . . . . . 53 resolution, render pass . . . . . . . . . . . . . . . . . . . . . . . . . 52 resolution, rendered image . . . . . . . . . . . . . . . . . . . . . 52 resolution, rendering . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 resolution, use render globals settings . . . . . . . . . . 52 resolution, use render settings . . . . . . . . . . . . . . . . . . 52 reverse orientation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 RIB archive node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 RIB archive, archive lighting . . . . . . . . . . . . . . . . . . . 78 RIB archive, archive write mode . . . . . . . . . . . . . . . 79 RIB archive, definition . . . . . . . . . . . . . . . . . . . . . . . . . 91 RIB archive, ignore displacement shaders . . . . . . 39 RIB archive, ignore geometry attributes . . . . . . . . 39 RIB archive, ignore light links . . . . . . . . . . . . . . . . . 39 RIB archive, ignore light sources . . . . . . . . . . . . . . . 39 RIB archive, ignore surface shaders . . . . . . . . . . . . 39 RIB archive, ignore transforms . . . . . . . . . . . . . . . . . 39 RIB archive, output . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 RIB filename, output, render pass . . . . . . . . . . . . . . 55 rib fragment, add, render pass . . . . . . . . . . . . . . . . . 81 rib fragment, browse file, render pass . . . . . . . . . . . 81 rib fragment, filename . . . . . . . . . . . . . . . . . . . . . . . . . 81 rib fragment, object set, render pass . . . . . . . . . . . 82 rib fragment, use, render pass . . . . . . . . . . . . . . . . . . 81 rib fragment, view RIB, render pass . . . . . . . . . . . . 82 rib fragment, write, render pass . . . . . . . . . . . . . . . . 81 rib fragments, binary rib, render pass . . . . . . . . . . 81 rib fragments, compressed rib . . . . . . . . . . . . . . . . . . 81 rib fragments, project setting . . . . . . . . . . . . . . . . . 136 rib fragments, remove, render pass . . . . . . . . . . . . . 81 rib fragments, render pass, file output . . . . . . . . . 136 rib fragments, write mode . . . . . . . . . . . . . . . . . . . . . 81 rib viewing application . . . . . . . . . . . . . . . . . . . . . . . 103 RIB, binary output . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 RIB, compressed output . . . . . . . . . . . . . . . . . . . . . . . 55 RIB, output . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 RIB, output filename . . . . . . . . . . . . . . . . . . . . . . . . . . 55 round edges, end angle, polygon mesh . . . . . . . . . . 29 round edges, end sharpness, polygon mesh . . . . . 29 round edges, polygon mesh . . . . . . . . . . . . . . . . . . . . 28 round edges, start angle, polygon mesh . . . . . . . . 29 round edges, start sharpness, polygon mesh . . . . 29

Concept Index

166

S
sample motion blur on integer frames, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 sample motion, render pass . . . . . . . . . . . . . . . . . . . . 59 sample positions, motion blur, render pass . . . . . 58 samples, area light . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 samples, camera motion blur, render pass . . . . . . 58 samples, deformation motion blur, render pass . . 58 samples, global illumination, render pass . . . . . . . 73 samples, pixel, render pass . . . . . . . . . . . . . . . . . . . . . 56 samples, transformation motion blur, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 sampling strategy, area light . . . . . . . . . . . . . . . . . . . 48 scene, file paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 search paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 secondary display, output variable, a . . . . . . . . . . . 62 secondary display, output variable, Oi . . . . . . . . . . 62 secondary display, output variable, rgb . . . . . . . . . 62 secondary display, output variable, rgba . . . . . . . . 62 select render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 select, shader selector . . . . . . . . . . . . . . . . . . . . . . . . . . 12 shader collection, render sets . . . . . . . . . . . . . . . . . . . 77 shader file list, shader selector . . . . . . . . . . . . . . . . . 12 shader nodes, hide attributes . . . . . . . . . . . . . . . . . 105 shader preview, preferences . . . . . . . . . . . . . . . . . . . 104 shader preview, primitive . . . . . . . . . . . . . . . . . . . . . 104 shader preview, primitive RIB archive . . . . . . . . 104 shader preview, primitive scale . . . . . . . . . . . . . . . . 104 shader preview, shading rate . . . . . . . . . . . . . . . . . . 104 shader search paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 shader selection logic . . . . . . . . . . . . . . . . . . . . . . . . . 115 shader selector, close . . . . . . . . . . . . . . . . . . . . . . . . . . 12 shader selector, directory . . . . . . . . . . . . . . . . . . . . . . 11 shader selector, name filter . . . . . . . . . . . . . . . . . . . . . 12 shader selector, path . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 shader selector, refresh . . . . . . . . . . . . . . . . . . . . . . . . . 12 shader selector, select . . . . . . . . . . . . . . . . . . . . . . . . . . 12 shader selector, shader file list . . . . . . . . . . . . . . . . . 12 shaders, hypershade . . . . . . . . . . . . . . . . . . . . . . . . . . 115 shaders, hypershade, file output . . . . . . . . . . . . . . . 136 shaders, project setting . . . . . . . . . . . . . . . . . . . . . . . 136 shading code, renderman code . . . . . . . . . . . . . . . . . 94 shading model, photon map . . . . . . . . . . . . . . . . . . . . 24 shading parameters, renderman code . . . . . . . . . . . 93 shading parameters, renderman material . . . . . . . 96 shading rate multiplier, quality . . . . . . . . . . . . . . . . 19 shading rate, irradiance . . . . . . . . . . . . . . . . . . . . . . . . 25 shading rate, render pass . . . . . . . . . . . . . . . . . . . . . . 56 shading rate, shader preview . . . . . . . . . . . . . . . . . . 104 shading rate, shadow map . . . . . . . . . . . . . . . . . . . . . 45 shading rate, subsurface scattering . . . . . . . . . . . . . 37 shading rate, volume . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 shadow casting object . . . . . . . . . . . . . . . . . . . . . . . . . 46 shadow map display driver . . . . . . . . . . . . . . . . . . . . . 62 shadow map filename . . . . . . . . . . . . . . . . . . . . . . . . . . 44 shadow map, camera . . . . . . . . . . . . . . . . . . . . . . . . . . 46 shadow map, clipping plane, far . . . . . . . . . . . . . . . . 46 shadow map, clipping plane, near . . . . . . . . . . . . . . 46

shadow map, cube shadow map, generate . . . . . . 46 shadow map, deep shadow maps . . . . . . . . . . . . . . . 45 shadow map, depth filter . . . . . . . . . . . . . . . . . . . . . . 45 shadow map, depth filter, average . . . . . . . . . . . . . . 45 shadow map, depth filter, max . . . . . . . . . . . . . . . . . 45 shadow map, depth filter, midpoint . . . . . . . . . . . . 45 shadow map, depth filter, min . . . . . . . . . . . . . . . . . 45 shadow map, depth map . . . . . . . . . . . . . . . . . . . . . . . 45 shadow map, far clipping plane . . . . . . . . . . . . . . . . 46 shadow map, file output . . . . . . . . . . . . . . . . . . . . . . 136 shadow map, generate . . . . . . . . . . . . . . . . . . . . . . . . . 44 shadow map, generate first frame only . . . . . . . . . 45 shadow map, motion blur, generate with . . . . . . . 46 shadow map, name . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 shadow map, near clipping plane . . . . . . . . . . . . . . . 46 shadow map, objects in . . . . . . . . . . . . . . . . . . . . . . . . 46 shadow map, pixel samples . . . . . . . . . . . . . . . . . . . . 45 shadow map, post render MEL script . . . . . . . . . . 49 shadow map, pre render MEL script . . . . . . . . . . . 49 shadow map, resolution . . . . . . . . . . . . . . . . . . . . . . . . 44 shadow map, shading rate . . . . . . . . . . . . . . . . . . . . . 45 shadow map, type . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 shadow map, type, deep shadow maps . . . . . . . . . 45 shadow map, type, depth map . . . . . . . . . . . . . . . . . 45 shadow map, type, normal . . . . . . . . . . . . . . . . . . . . . 45 shadow map, volume interpretation . . . . . . . . . . . . 45 shadow map, volume interpretation, continuous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 shadow map, volume interpretation, discrete . . . 45 shadow map, volume interpretation, distance inside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 shadow maps, depth filter . . . . . . . . . . . . . . . . . . . . . . 70 shadow maps, depth filter, average . . . . . . . . . . . . . 71 shadow maps, depth filter, max . . . . . . . . . . . . . . . . 71 shadow maps, depth filter, midpoint . . . . . . . . . . . 71 shadow maps, depth filter, min . . . . . . . . . . . . . . . . 71 shadow maps, opacity threshold . . . . . . . . . . . . . . . . 70 shadow maps, project setting . . . . . . . . . . . . . . . . . 136 shadow maps, render . . . . . . . . . . . . . . . . . . . . . . . . . . 70 shadow maps, volume interpretation . . . . . . . . . . . 71 shadow maps, volume interpretation, discrete . . 71 shadow maps, zthreshold . . . . . . . . . . . . . . . . . . . . . . 70 shadow rays, visibility . . . . . . . . . . . . . . . . . . . . . . . . . 20 shadow render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Shadowmap viewing application . . . . . . . . . . . . . . 103 shape name, file paths . . . . . . . . . . . . . . . . . . . . . . . . 134 shave and a haircut, lighting . . . . . . . . . . . . . . . . . . 132 shave and a haircut, plugin . . . . . . . . . . . . . . . . . . . . . 2 shave and a haircut, shading . . . . . . . . . . . . . . . . . . 132 shutter, angle scale, render pass . . . . . . . . . . . . . . . . 59 shutter, efficiency, render pass . . . . . . . . . . . . . . . . . 59 shutter, motion blur position, render pass . . . . . . 58 sidedness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 smooth derivatives, quality . . . . . . . . . . . . . . . . . . . . 19 smooth uvs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 space, displacement bound . . . . . . . . . . . . . . . . . . . . . 25 specular color, maya fur . . . . . . . . . . . . . . . . . . . . . . . 35 specular intensity no shadow render pass . . . . . . . 64

Concept Index

167

specular intensity render pass . . . . . . . . . . . . . . . . . . 64 specular no shadow render pass . . . . . . . . . . . . . . . . 64 specular rays, visibility . . . . . . . . . . . . . . . . . . . . . . . . 21 specular render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 specular sharpness, maya fur . . . . . . . . . . . . . . . . . . . 35 sphere, coordinate system . . . . . . . . . . . . . . . . . . . . . . 98 standard atmosphere, advanced . . . . . . . . . . . . . . . . 86 start angle, polygon mesh, round edges . . . . . . . . 29 start render, render pass . . . . . . . . . . . . . . . . . . . . . . . 51 start sharpness, polygon mesh, round edges . . . . 29 start width, maya curves . . . . . . . . . . . . . . . . . . . . . . . 30 statistics file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 statistics level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 statistics viewing application . . . . . . . . . . . . . . . . . 103 subsurface scattering . . . . . . . . . . . . . . . . . . . . . . . . . . 37 subsurface scattering, coefficient scale . . . . . . . . . . 37 subsurface scattering, disable . . . . . . . . . . . . . . . . . . 37 subsurface scattering, enable . . . . . . . . . . . . . . . . . . . 37 subsurface scattering, group . . . . . . . . . . . . . . . . . . . 37 subsurface scattering, reduced absorption . . . . . . 37 subsurface scattering, reduced scattering . . . . . . . 37 subsurface scattering, refraction index . . . . . . . . . . 37 subsurface scattering, shading rate . . . . . . . . . . . . . 37 subsurface scattering, subsurface group . . . . . . . . 37 surface color . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 surface color render pass . . . . . . . . . . . . . . . . . . . . . . . 64 surface group, subsurface scattering . . . . . . . . . . . . 37 surface opacity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 surface point, maya fur . . . . . . . . . . . . . . . . . . . . . . . . 35 surface u, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 surface v, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

U
union, csg node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 use as background, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 use coordinate system, global illumination, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 use matte attribute, display . . . . . . . . . . . . . . . . . . . . 68 use Maya shaders, advanced . . . . . . . . . . . . . . . . . . . 85 use, rib fragment, render pass . . . . . . . . . . . . . . . . . . 81 uv smoothing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 uvsets, output all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 uvsets, use current . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

V
vertex color, output . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 view image, display, render pass . . . . . . . . . . . . . . . 61 view RIB, rib fragment, render pass . . . . . . . . . . . . 82 viewing application, Image . . . . . . . . . . . . . . . . . . . . 103 viewing application, Log . . . . . . . . . . . . . . . . . . . . . . 103 viewing application, Photonmap . . . . . . . . . . . . . . 103 viewing application, rib . . . . . . . . . . . . . . . . . . . . . . . 103 viewing application, Shadowmap . . . . . . . . . . . . . . 103 viewing application, statistics . . . . . . . . . . . . . . . . . 103 viewing applications, preferences . . . . . . . . . . . . . . 103 viewing render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 visibility and motion blur . . . . . . . . . . . . . . . . . . . . . 132 visibility, camera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 visibility, composite objects behind . . . . . . . . . . . . 20 visibility, diffuse rays . . . . . . . . . . . . . . . . . . . . . . . . . . 21 visibility, matte object . . . . . . . . . . . . . . . . . . . . . . . . . 20 visibility, occlusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 visibility, photons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 visibility, reflection rays . . . . . . . . . . . . . . . . . . . . . . . . 21 visibility, refraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 visibility, specular rays . . . . . . . . . . . . . . . . . . . . . . . . . 21 visibility, transmission rays . . . . . . . . . . . . . . . . . . . . 20 visible in reflections render stat . . . . . . . . . . . . . . . 123 visible in refractions render stat . . . . . . . . . . . . . . 123 volume interpretation, deep shadow map . . . . . . . 45 volume interpretation, deep shadow map, continuous . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 volume interpretation, deep shadow map, discrete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 volume interpretation, deep shadow map, distance inside . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45, 71 volume interpretation, deep shadow maps . . . . . . 71 volume shading rate, advanced . . . . . . . . . . . . . . . . . 86

T
template, render pass, save . . . . . . . . . . . . . . . . . . . . 52 templates, project setting . . . . . . . . . . . . . . . . . . . . . 137 templates, render pass, file output . . . . . . . . . . . . 137 texture display driver . . . . . . . . . . . . . . . . . . . . . . . . . . 62 texture filename, coordinate system . . . . . . . . . . . . 98 texture opacity, coordinate system . . . . . . . . . . . . . 98 texture resolution, coordinate system . . . . . . . . . . 98 texture search paths . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 textures file output . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 textures, hypershade . . . . . . . . . . . . . . . . . . . . . . . . . . 133 textures, project setting . . . . . . . . . . . . . . . . . . . . . . 137 tiff display driver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 tip ambient color, maya fur . . . . . . . . . . . . . . . . . . . . 35 tip color, maya fur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 trace sets, raytracing . . . . . . . . . . . . . . . . . . . . . . . . . . 22 transformation blur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 transformation blur, light . . . . . . . . . . . . . . . . . . . . . . 47 transformation motion blur samples, render pass . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 transformation motion blur, render pass . . . . . . . . 58 translate maya shader aovs, advanced . . . . . . . . . . 85 translate Maya shaders, advanced . . . . . . . . . . . . . . 85 translucence render pass . . . . . . . . . . . . . . . . . . . . . . . 63 transmission rays, visibility . . . . . . . . . . . . . . . . . . . . 20

W
white point, render pass . . . . . . . . . . . . . . . . . . . . . . . 73 windows, installation . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 wireframe, polygon mesh . . . . . . . . . . . . . . . . . . . . . . 29 wireframe, polygon mesh, raster space . . . . . . . . . 29 wireframe, width, polygon mesh . . . . . . . . . . . . . . . 29 write mode, rib fragments . . . . . . . . . . . . . . . . . . . . . 81 write photon maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Concept Index

168

write, rib fragment, render pass . . . . . . . . . . . . . . . . 81

Z
zthreshold . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 zthreshold, shadow maps . . . . . . . . . . . . . . . . . . . . . . 70

You might also like