Page tree

Versions Compared

Key

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

...

Include Page

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.

Class Specifiers: There are several types of Primvars

Constant:  One value remains constant over the entire surface primitive. 
Uniform:  One value remains constant for each uv patch segment of the surface primitive. 
Varying:  Four values are interpolated over each uv patch segment of the surface. Bilinear interpolation is used for interpolation between the four values. 
Vertex:  Values are interpolated between each vertex in the surface primitive. The basis function of the surface is used for interpolation between vertices. 
Facevarying:  For polygons and subdivision surfaces, four values are interpolated over each face of the mesh. Bilinear interpolation is used for interpolation between the four values. 

 

User Primvars

NameTypeDefaultDescription
<name> <type> <value>AnynullArbitrary primitive user data
identifier:objectstringnullObject name

...

 This space is allowed to be "world", "object", "camera", or any other space marked by a RiCoordinateSystem call. Setting minlength to a negative value indicates that the minlength is to be computed in a different fashion:

  • For a RiVolume where the "type" is not blobbydso, the minlength is automatically half the size of a voxel measured in object space.
  • For a RiVolume where the "type" is blobbydso (i.e. the volume is defined by an implicit field plugin), the minlength is set to be the return value of the MinimumVoxelSize method from the ImplicitField API, and the dicing rate will be constrained to be less than this length measured in object space.
  • For RiBlobby, if there is a DSO in the DAG defining the blobby, the minlength is set to be the smallest non-zero return value returned by calls to all MinimumVoxelSize methods from the DSOs in the graph implementing the ImplicitField API. If there are no DSOs in the DAG the minlength is zero (there is no minimum dicing rate constraint).

...

Master Primvars
Master Primvars

 

Displacement

NameTypeDefaultDescription
displacementbound:CoordinateSystemstringnull

The name of the coordinate system that the displacement bound is measured in.

 

  • any of the standard coordinate systems ("screen", "camera", "world", "object")
  • "current", which is the current space (identical to "camera" in RenderMan)
  • "null", which specifies the coordinate system at the time of the RiAttribute call
  • any user-defined coordinate system created with RiCoordinateSystem
displacementbound:spherestringnullAmount to pad the bounding box. The size is specified by identifying a single floating-point value which is the radius of a  sphere  which is guaranteed to contain the maximum possible displacement, and the name of the  coordinate system  in which this sphere resides. This value should be as tight as possible.
displacementbound:offscreeninteger0

by default, geometry that is entirely offscreen, but displaces into view may be prone to undertessellation because of the offscreen dicing strategy. In the (rare) cases where this becomes a problem, the user should set this attribute to the value of 1, and in doing so is also required to set a reasonable displacementbound. Doing both correctly will then incur a performance penalty commensurate with the size of the displacement bound, but also guaranteeing that no part of the geometry in question that displaces into view will ever undertessellate. This default is also controlled by a rendermn.ini setting: /prman/displacementbound/offscreen

 

Tracing Controls

NameTypeDefaultDescription
trace:autobiasinteger1Allow the renderer to automatially adjust ray bias, 0 is off
trace:biasfloat0.01The user-set bias amount, typically small values to offset a ray to avoid artifacts such as shadow acne
trace:displacementsinteger1Trace displacements (seen in reflections and refractions, etc) 0 is off
trace:samplemotioninteger0Whether motion blurred objects appear in ray-traced results. When 0, the motion blur of other objects hit by rays launched from the object with this attribute will be ignored. When non-zero, motion blur will be taken into account by rays launched from an object with this attribute

 

Shading

...