Page tree

Versions Compared

Key

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

...

The PrmanObjectStatements is assigned to a specific location or group of locations and translates into prman as setting the state for an AttributeBegin/AttributeEnd block. This node allows you to do things like assign a subdivision approximation to objects to render smooth surfaces, apply a displacement bound for rendering displacements, and changing visibility flags and memberships.

 


In RenderMan, there are different ways to choose how your object and its instances will render. These are conveniently divided in the node:

SectionDescription
attributes

Attributes which can be varied across instances (e.g. lighting subset or camera visibility)

primAttributes

Per-primitive attributes which are considered "

master

prototype" properties (referred to in the table below as "Primitive Variables")

primvars

Constant per-primitive attributes which are part of the primitive definition. These cannot be varied per-instance.

traversalRfK plugin controls for scene traversal.


The settings are listed in the tables below. Note that the tables do not currently line up exactly with the PrmanObjectStatements UI presentation of the parameters.

...

Include Content
pageREN:Primitive Variables
keyREN

Primvars

Name
Type
Default
Description
falloffpowerfloat0Falloff power for point primitives.

Traversal

As RfK traverses the Katana scene graph it will process locations in parallel and pass them to RenderMan for rendering. By default each new child location retrieved from Katana will spawn a new thread for processing. This default behavior is unlikely to give the optimal performance for any given scene, however PrmanObjectStatements includes settings for tuning the efficiency and the level of parallelism for a particular pipeline (e.g. your studio's standard Op Chain) or various types of scenes (e.g. many instances, many textures, many primitives, or perhaps all three).



Name

Type

Default

Description

forceSerialint0Force traversal to serial processing for this and child locations.
evictHereint1Prevent sibling eviction at this location.
flattenInstanceSourceint2Flatten hierarchical instance source locations.

Force Serial

The first tool is an attribute to control the depth of parallelism in your scene: forceSerial.

...

Rather than changing the behavior to RfK's parallel traversal of the Katana scene, this setting improves RenderMan's traversal when building instances.  By default, RenderMan flattens an instance source into separate object masters prototypes for each geometric primitive in the group. This can get expensive as the number of instances increases or as the number of primitives inside the instance source increases.  Setting this option to Yes will tell RenderMan to keep this instance source location as a single object masterprototype.

This setting will override the global setting for prmanGlobalStatements.plugin.flattenInstanceSources - which can enable this setting on all instance source locations.