Short Contents

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 The Assignment Panel.

An empty Geometry Atrtibute Node

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 The Add / Remove Attributes Window). 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 Maya Render Stats and Geometry Attribute Nodes for more details.

3.5.2 Attribute Inheritance

Attributes contained in a given geometry attribute node can be inherited in two ways: from one scene's 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 parent's attributes if needed). As an example:

--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 parent's 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.
  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, it's 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 collection's 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 object's 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 object's 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 object's 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 object's 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.

The General attribute panel

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 object's 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.

The Quality attribute panel

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 Quality). 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.

3.5.5 Visibility

The Visibility attribute panel

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). 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 surface's opacity using the attached shader. This option is recommended only 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 Maya's Hypershade can further refine if they are visible in reflections and refractions using the relevant "render stats"; see Maya Render Stats and Geometry Attribute Nodes. 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 object's "Color" and "Opacity" attributes in a geometry attribute node (see Color and Opacity). 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 surface's 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 object's "Color" and "Opacity" attributes in a geometry attribute node (see Color and Opacity). 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 surface's opacity using the attached shader to determine the color and opacity that will affect ray traced diffuse rays.
` Visible To Photons'
When this attribute is on, the attached objects surfaces will interact with photons according to the selected "Shading Model" (see section Global Illumination). This attribute is on by default.

3.5.6 Lighting

The Lighting attribute panel

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

The Raytracing attribute panel

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 ray’s 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 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.

The Motion Blur attribute panel

Figure 3.17: The Motion Blur attribute panel

` Transformation Blur'
This attribute controls if the attached objects are subject to transformation blur. Refer to Motion Blur 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.
` On'
The attached objects will be transformation blurred, regardless of the "Transformation Blur" setting in the render pass.
` Off'
The attached objects will not be transformation blurred, regardless of the "Transformation Blur" setting in the render pass.
` Deformation Blur'
This attribute controls if the attached objects are subject to deformation blur. Refer to Motion Blur 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.
` On'
The attached objects will be deformation blurred, regardless of the "Deformation Blur" setting in the render pass.
` Off'
The attached objects will not be deformation blurred, regardless of the "Deformation Blur" setting in the render pass.

3.5.9 Global Illumination

The Global Illumination Attribute Panel

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 and Opacity). 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 Visibility). The available shading models are:
` Transparent'
There will be no interactions with photons. This is the default value.
` Matte'
This value generates a diffuse reflection and is fine for color bleeding effects.
` Chrome'
This value reflects all photons like a mirror. It also generate caustics.
` Glass'
This value will partly reflect photons, partly refract them. It also generate caustics.
` Water'
This value is similar to Glass but has a different refraction index.
For the Chrome and Matte models, reflected photons are colored by the Color attribute (see Color). 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

The Displacement attribute panel

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.

The Culling And Dicing attribute Panel

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"

The Geometry attribute Panel

Figure 3.21: The Geometry attribute panel

` 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 for details.

3.5.12.1 Polygons

The Geometry Polygons attribute Panel

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.
  • 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 `0's for vertices where the color set is not defined, and `1's were it is defined. This attribute is off by default. See Exporting Per-Vertex Attributes on Polygon Meshes 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.
` Partial'
Will ask 3Delight to perform some work to minimize UV distortion on the surface. Seams are left untouched. This is the default.
` Full'
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.
NOTE

This also controls the interpolation of vertex colors and other quantities that are attached to geometry's 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.
` 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

The Geometry Polygons Wireframe attribute Panel

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 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.
` 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

The Geometry NURBS attribute Panel

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.

The Geometry Curves attribute Panel

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.

3.5.12.5 Particles

The Geometry Particles attribute Panel

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'
The render type set in the particle shape will be used. This is the default.
` Points'
The particle system will be rendered as points, overriding the render type set in the attached particle shape.
` Spheres'
The particle system will be rendered as spheres, overriding the render type set in the attached particle shape.
` Sprites'
The particle system will be rendered as sprites, overriding the render type set in the attached particle shape.
` Streak'
The particle system will be rendered as streaks, overriding the render type set in the attached particle shape.
` Blobby'
The particle system will be rendered as blobbies, overriding the render type set in the attached particle shape.
` Disk'
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.
` Render nCloth as Particles'
When this attribute is on, any attached nCloth shape will be rendered as a particle system. The nCloth shape's "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 for more details on how Cs is used with hypershade shaders and photons. This attribute is off by default.
` 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 Exporting Particle Attributes 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'

3.5.12.6 Maya Fur

The Maya fur attribute Panel

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 Desccription's 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.
` 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.
` Output Hair Length'
When this attribute is on, a `uniform float hairlength' variable containing an approximation of the hair's 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.

The Reference Geometry Panel

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.

3.5.14 Subsurface Scattering

The Subsurface Scattering Panel

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:

` 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'.

3.5.15 MEL Scripts

The following attributes allow the user to call custom MEL scripts before and after the attached object's 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.

The MEL Scripts Panel

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 attributes(1) 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 The RIB Archive Node.

The RIB Archive Panel

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:

3Delight for Maya 6.0. Copyright 2000-2011 The 3Delight Team. All Rights Reserved.