Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Contents


Primitive Variables or 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.

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


Dicing and Approximating geometry

NameTypeDefaultDescription
dice:micropolygonlengthfloat0Object micropolygon length expressed in pixel size
dice:minlengthfloat-1(Volumes) By default, minlength is not enabled: there is no minimum constraint on dicing rate. Setting minlength to a positive value specifies the minimum length of the voxel, as measured in a space denoted by the "minlengthspace" parameter.
dice:minlengthspacestringnull

 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).
dice:offscreenstrategystring"viewfrustumdistance"Defines the dicing strategy used for offscreen objects that may be traced indirectly, the options are: "clamped", "sphericalprojection, "viewfrustumdistance", "worlddistance"
dice:rasterorientinteger1Turning this off, by setting it to 0, enables  nonraster-oriented dicing , a mode of dicing that computes micropolygon sizes using an un-oriented raster space metric rather than the standard screen-aligned raster metric. This is useful in situations where it is important that the dicing rate on an object doesn't change due to camera orientation. For example, it can help in situations where objects that are viewed edge on result in large micropolygons (but small in screen space), which are then displaced leading to micropolygons that are large in screen space.
dice:referencecamerastringnullRenderMan has support for specifying the camera and strategy to use during dicing. These are chosen via the  "strategy"  and  "referencecamera"  parameters of "dice".
dice:referenceinstancestringnullThis is the object name of the referenced instance used for dicing
dice:strategystring"instanceprojection"Defines the dicing strategy used for objects on screen, the options are: "instanceprojection", "sphericalprojection", "worlddistance"
dice:worlddistancelengthfloat-1Object micropolygon length expressed in world space units
Ri:GeometricApproximationFocusFactorfloat-1Allows the renderer to dice more coarsely for out of focus objects
Ri:GeometricApproximationMotionFactorfloat0Allows the renderer to dice more coarsely for blurry or fast moving objects

 

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.

 

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

NameTypeDefaultDescription
falloffpowerfloat1For 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.