Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

RenderMan's geometric settings can be set in Katana in several ways. 

Imported Geometric Settings

Many geometric settings come into Katana through the geometry importer (Alembic or USD).  These geometric settings end up under the "geometry" attribute.  These attributes include things that define the geometry (the vertices of a mesh, for example), and arbitrary primitive variables.  The attributes in the geometry group are explicit to the geometry location, so they are not inherited and won't vary per instance.

Read more about primitve variables here:

PrmanObjectStatements

There are two types of geometric settings on PrmanObjectStatements - those that can vary per instance and those that cannot. The attributes under the prmanStatements.attributes group can vary per instance.  These are also known as "instance attributes".  The attributes under prmanStatements.primAttributes cannot vary per instance.  These are also known as "master attributes".  RfK will flatten master attributes onto the geometry locations, so they can be inherited in Katana.

Read about PrmanObjectStatements here:

Scripting in Katana

You can set any of the attributes above via an Op, OpScript, or AttributeSet node.  Along with the attributes exposed in PrmanObjectStatemts, RenderMan also allows users to define their own attributes under the "user" namespace - prmanStatements.attributes.user.

Read more about user attributes here:

Attributes

RenderMan allows for attributes to be assigned to and used on geometry for different purposes.

Some attributes allow controls for:

Grouping objects
Linking objects
Giving hints to the renderer like intersection priority
User attributes for customizing output or pipeline functions
Altering visibility for certain effects like trace sets, camera or reflection visibility, etc.
Some options for optimization like trace depth and pixel variance

 

attributes grouping:membership string [] Grouping membership used for linking.
attributes identifier:id integer [0] Lower 32 bits of 64 bit object id.
attributes identifier:id2 integer [0] Upper 32 bits of 64 bit object id.
attributes identifier:lpegroup string [] Grouping membership used for light path expressions.
attributes identifier:name string [] Instance path name.
attributes lightfilter:subset string [] Active light filter groups in lighting.
attributes lighting:excludesubset string [] Exclude light groups from lighting.
attributes lighting:mute integer [0] Mutes light emission.
attributes lighting:subset string [] Light groups active in lighting.
attributes Ri:Matte integer [0] Indicates matte object.
attributes Ri:ReverseOrientation integer [0] Flip shading normals.
attributes Ri:Sides integer [2] Geometry can be one or two sided.
attributes shade:relativepixelvariance float [1] PixelVariance multiplier for camera visible objects.
attributes trace:holdout integer [0] Indicates holdout object.
attributes trace:intersectpriority integer [0] Raytrace intersection priority for nested dielectrics.
attributes trace:maxdiffusedepth integer [1] Maximum diffuse light bounces.
attributes trace:maxspeculardepth integer [2] Maximum specular light bounces.
attributes trace:reflectexcludesubset string [] Exclude object groups from relections.
attributes trace:reflectsubset string [] Object groups visible to reflections.
attributes trace:shadowexcludesubset string [] Exclude object groups from casting shadows.
attributes trace:shadowsubset string [] Object groups active in shadows.
attributes trace:transmitexcludesubset string [] Exclude object groups from refractions.
attributes trace:transmitsubset string [] Object groups visible to refractions.
attributes user:<name> <type> <value> Arbitrary instance user data.
attributes visibility:camera integer [1] Indicates if object is visible to camera rays.
attributes visibility:indirect integer [1] Indicates if object is visible to indirect (reflection and refraction) rays.
attributes visibility:transmission integer [1] Indicates if object is visible to shadow rays.

 

Primvars

Primvars can be set and manipulated on different types of geometry (as available for that type of geometry). This can allow pattern networks and shaders to retrieve this information at render time.

 

...