Note |
---|
These may also be referred to as "master attributes" for clarity versus Instance Attributes which may be varied per instance. |
Common
...
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
Name | Type | Default | Description |
---|---|---|---|
<name> <type> <value> | Any | null | Arbitrary primitive user data |
identifier:object | string | nullempty | Object shape name. |
...
Shading
Name | Type | Default | Description |
---|---|---|---|
derivatives:extrapolate | integer | 1 | Extrapolated smooth normals across grid boundaries. |
displacement:ignorereferenceinstance | int | 0 | Indicates if displacement shading should ignore properties of the reference instance. |
displacementbound:CoordinateSystem | string | object | The name of the coordinate system that the displacement bound is measured in. |
displacementbound:offscreen | int | 0 | Apply 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:sphere | float | 0 | Maximum displacement distance used to compute object bounds. This value should be as tight as possible. |
Ri:Orientation | string | outside | Geometry winding order that determines surface normal. This attribute effects lighting and displacement. Supported values: inside, outside. |
trace:autobias | integer | 1 | Enable automatic raytrace bias. |
trace:bias | float | 0.01 | Manual raytrace bias in object space. Small values should be used to avoid artifacts such as shadow acne. |
trace:displacements | integer | 1 | Enable displacement shading. |
Dicing
Name | Type | Default | Description | ||
---|---|---|---|---|---|
dice:micropolygonlength | float | 1 | Micropolygon distance in raster space for "instanceprojection" dicing. Values are expressed in pixel size | ||
dice:micropolygonlength | float | 0 | Object micropolygon length expressed in pixel size | ||
dice:minlength | float | -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:minlengthspace | string | null | . | ||
dice:offscreenstrategy | string | "viewfrustumdistance | "Defines the dicing strategy used for offscreen objects that may be traced indirectly, the options are: "clamped", "sphericalprojection, "viewfrustumdistance", "worlddistance"Dicing method of objects outside the viewing frustum. Supported values: viewfrustumdistance, worlddistance, objectdistance. | ||
dice:rasterorient | integer | 1 | Turning 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 spaceChanges 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:referencecamera | string | null | RenderMan has support for specifying the camera and strategy to use during dicing. These are chosen via the "strategy" and "referencecamera" parameters of "dice". This reference camera is required to define the dicing when doing multi-camera rendering. RenderMan does not choose the best/finest camera automatically, it must be set by the userempty | Specify the camera used for dicing. If no reference camera is specified, RenderMan will use the primary camera. | |
dice:referenceinstance | string | nullempty | Specify 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:strategy | string | "instanceprojection | "Defines the dicing strategy used for objects on screen, the options are: "instanceprojection", "sphericalprojection", "worlddistance"Dicing method of objects within the viewing frustum. Supported values: instanceprojection, worlddistance, objectdistance. | ||
dice:worlddistancelength | float | -1 | Object micropolygon length expressedMicropolygon distance in world space | unitsfor "worlddistance" dicing or object space for "objectdistance" dicing. | |
Ri:GeometricApproximationFocusFactor | float | -10 | Allows the renderer to | diceuse more | coarsely for out of focus objectscoarse dicing for blurry objects due to depth of field. |
Ri:GeometricApproximationMotionFactor | float | 0 | Allows the renderer to | diceuse more | coarselycoarse dicing for blurry | or fast moving objects
Displacement
Name | Type | Default | Description |
---|---|---|---|
displacementbound:CoordinateSystem | string | null | The name of the coordinate system that the displacement bound is measured in.
|
displacementbound:sphere | string | null | Amount 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:offscreen | integer | 0 | 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
Name | Type | Default | Description |
---|---|---|---|
trace:autobias | integer | 1 | Allow the renderer to automatially adjust ray bias, 0 is off |
trace:bias | float | 0.01 | The user-set bias amount, typically small values to offset a ray to avoid artifacts such as shadow acne |
trace:displacements | integer | 1 | Trace displacements (seen in reflections and refractions, etc) 0 is off |
trace:samplemotion | integer | 0 | Whether 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
objects due to motion blur. |
Points
Name | Type | Default | Description | |
---|---|---|---|---|
falloffpower | float | 0 | For 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:minlength | float | -1 | Volume minimum dice length. Negative indicates to automatically compute this value. |
dice:minlengthspace | string | empty | Coordinate space of dice:minlength. |
Ri:Bound | float[6] | 0 0 0 0 0 0 | Volume bounds. |
volume:dsominmax | integer | 0 |
SubdivisionMesh
Name | Type | Default | Description |
---|---|---|---|
dice:pretessellate | integer | 1 | Pre-tessellate subdivision geometry to polygons. |
dice:watertight | integer | 0 | Tessellate geometry with no holes. Watertight geometry requires less raytrace bias. |
shade:faceset | integer[n] | empty | Active geometry face indexes. |
stitchbound:CoordinateSystem | string | empty | |
stitchbound:sphere | float | 0 |
NuPatch
Name | Type | Default | Description |
---|---|---|---|
trimcurve:sense | string | inside | Supported values: inside, outside. |
PolygonMesh
Name | Type | Default | Description |
---|---|---|---|
polygon:concave | integer | 1 | Allow concave polygons. |
polygon:smoothdisplacement | integer | 0 | Output smoothed (per-vertex) normals as Ndsp primvar, if polygon:smoothnormals hasn't already inserted smooth normals. |
polygon:smoothnormals | integer | 0 | Smooth (per-vertex) normals if not provided. |
Procedural
Name | Type | Default | Description |
---|---|---|---|
procedural:immediatesubdivide | integer | 0 | |
procedural:reentrant | integer | 0 |