Page tree

Contents

When assigning instance attributes in Maya, they can be named like Primvars, where controls are found on the shape node. Or as attributes found on the transform node and variable per instance.

 

Example commands:

rfm2.ui.user_attrs.user_attrs_add(data_attr, nodelist, pdict) -> add to one or more nodes

rfm2.ui.user_attrs.user_attrs_del(data_attr, nodelist, attrlist) -> delete from one or more nodes

rfm2.ui.user_attrs.user_attrs(node) -> list all user attributes

 

Common

Name
Type
Default
Description
grouping:membershipstringemptyGrouping membership used for linking.
identifier:idint0Lower 32 bits of 64 bit object id.
identifier:id2int0Upper 32 bits of 64 bit object id.
identifier:lpegroupstringemptyGrouping membership used for light path expressions.
identifier:namestringemptyObject instance name.

Shading

Name
Type
Default
Description
lightfilter:subsetstringemptyActive light filter groups in lighting.
lighting:excludesubsetstringemptyExclude light groups from lighting.
lighting:muteint0Mutes light emission.
lighting:subsetstringemptyLight groups active in lighting.
Ri:Matteint0Indicates matte object.
Ri:ReverseOrientationint0Flip shading normals.
Ri:Sidesint2Geometry can be one or two sided.
shade:indexofrefractionfloat-1Override material IOR for nested dielectrics.
shade:relativepixelvariancefloat1PixelVariance multiplier for camera visible objects.
trace:holdoutint0Indicates holdout object.
trace:intersectpriorityint0Raytrace intersection priority for nested dielectrics.
trace:maxdiffusedepthint1Maximum diffuse light bounces.
trace:maxspeculardepthint2Maximum specular light bounces.
trace:reflectexcludesubsetstringemptyExclude object groups from relections.
trace:reflectsubsetstringemptyObject groups visible to reflections.
trace:shadowexcludesubsetstringemptyExclude object groups from casting shadows.
trace:shadowsubsetstringemptyObject groups active in shadows.
trace:transmitexcludesubsetstringemptyExclude object groups from refractions.
trace:transmitsubsetstringemptyObject groups visible to refractions.
visibility:cameraint1Indicates if object is visible to camera rays.
visibility:indirectint1Indicates if object is visible to indirect (reflection and refraction) rays.
visibility:transmissionint1Indicates if object is visible to shadow rays.
Link

 

Added notes:

Emit Color Sets - Emits color sets assigned to objects, this is especially useful when rendering MASH objects with procedural coloring.

Prevent Polygon Cracking - Typically it's expected that you displace subdivision surfaces. However, should you need to displace a polygonal surface with "hard" normals, this option will attempt to prevent the object from coming apart once it's displaced.

Emit Face IDs - This is allows surfaces to make use of Ptex texturing.

Reference Object _WPref and the place3d with the reference object should be parented below the object that you are animating. _WPref is necessary for instances to have the texture stick in the same way. However, during IPR if you move/translate your object and it does not deform, it is not re-evaluated and the _WPref is not updated if only the transform has changed. You will only see the correct values if you restart the render or trigger an update on the mesh somehow (for instance, tweaking the displacement bound).

 

These may also be referred to as "master attributes" for clarity versus Instance Attributes which may be varied per instance.

Common

Name
Type
Default
Description
identifier:objectstringemptyObject shape name.

Shading

Name
Type
Default
Description
derivatives:extrapolateinteger1Extrapolated smooth normals across grid boundaries.
displacement:ignorereferenceinstanceint0Indicates if displacement shading should ignore properties of the reference instance.
displacementbound:CoordinateSystemstringobjectThe name of the coordinate system that the displacement bound is measured in.
displacementbound:offscreenint0Apply displacementbound to offscreen geometry when dicing. Geometry that is entirely offscreen, but displaces into view may be prone to undertessellation because of the offscreen dicing strategy. This can be corrected by enabling this control and setting a reasonable displacementbound. Doing so will incur a performance penalty commensurate with the size of the displacement bound.
displacementbound:spherefloat0Maximum displacement distance used to compute object bounds. This value should be as tight as possible.
Ri:OrientationstringoutsideGeometry winding order that determines surface normal. This attribute effects lighting and displacement. Supported values: inside, outside.
trace:autobiasinteger1Enable automatic raytrace bias.
trace:biasfloat0.01Manual raytrace bias in object space. Small values should be used to avoid artifacts such as shadow acne.
trace:displacementsinteger1Enable displacement shading.

Dicing

Name
Type
Default
Description
dice:micropolygonlengthfloat1Micropolygon distance in raster space for "instanceprojection" dicing. Values are expressed in pixel size.
dice:offscreenstrategystringviewfrustumdistanceDicing method of objects outside the viewing frustum. Supported values: viewfrustumdistance, worlddistance, objectdistance.
dice:rasterorientinteger1Changes micropolygon size according to the viewing angle of a surface. When rasterorient is on, surfaces are coarsely diced at a glancing angle.This feature is very useful for ground planes and other large objects that are seen at an angle and it should be disabled for geometry that is instanced several times as it can be seen from different angles as well as when displacement details are lost.
dice:referencecamerastringemptySpecify the camera used for dicing. If no reference camera is specified, RenderMan will use the primary camera.
dice:referenceinstancestringemptySpecify the reference instance used for dicing and displacement shading. The reference instance is used to drive dicing and displacement based on its position, scale, user attributes, and scoped coordinate systems. Reference instances are specified by its identifier:name attribute (instance name). If no reference instance is specified, RenderMan will automatically pick the nearest instance inside the primary camera's view frustum.
dice:strategystringinstanceprojectionDicing method of objects within the viewing frustum. Supported values: instanceprojection, worlddistance, objectdistance.
dice:worlddistancelengthfloat-1Micropolygon distance in world space for "worlddistance" dicing or object space for "objectdistance" dicing.
Ri:GeometricApproximationFocusFactorfloat0Allows the renderer to use more coarse dicing for blurry objects due to depth of field.
Ri:GeometricApproximationMotionFactorfloat0Allows the renderer to use more coarse dicing for blurry objects due to motion blur.

Points

Name
Type
Default
Description
falloffpowerfloat0For use with points, if not supplied, or set to zero, the points will have a hard edge. A value of 1 is a "reasonable" value that emulates the usual cosine based falloff; this will likely be the goto value for most people doing volumetric particle effects. Values between 0 and 1 makes the falloff faster, eroding the point faster - point has "less presence". Values higher than 1 (up to infinity) makes the falloff slower to the point of being non-existent.

Volume

Name
Type
Default
Description
dice:minlengthfloat-1Volume minimum dice length. Negative indicates to automatically compute this value.
dice:minlengthspacestringemptyCoordinate space of dice:minlength.
Ri:Boundfloat[6]0 0 0 0 0 0Volume bounds.
volume:dsominmaxinteger0

SubdivisionMesh

Name
Type
Default
Description
dice:pretessellateinteger1Pre-tessellate subdivision geometry to polygons.
dice:watertightinteger0Tessellate geometry with no holes. Watertight geometry requires less raytrace bias.
shade:facesetinteger[n]emptyActive geometry face indexes.
stitchbound:CoordinateSystemstringempty
stitchbound:spherefloat0

NuPatch

Name
Type
Default
Description
trimcurve:sensestringinsideSupported values: inside, outside.

PolygonMesh

Name
Type
Default
Description
polygon:concaveinteger1Allow concave polygons.
polygon:smoothdisplacementinteger0Output smoothed (per-vertex) normals as Ndsp primvar, if polygon:smoothnormals hasn't already inserted smooth normals.
polygon:smoothnormalsinteger0Smooth (per-vertex) normals if not provided.

Procedural

Name
Type
Default
Description
procedural:immediatesubdivideinteger0
procedural:reentrantinteger0
Link