Page tree

Versions Compared

Key

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

...

NameTypeDefaultDescription
grouping:membershipstringnullGrouping membership used for linking
identifier:idinteger0Lower 32 bits of 64 bit object id
identifier:id2integer0Upper 32 bits of 64 bit object id
identifier:lpegroupstringnullGrouping membership used for light path expressions, example, keylight
identifier:namestringnullInstance path name
lightfilter:subsetstringnullActive light filter groups in lighting
lighting:excludesubsetstringnullExclude light groups from lighting
lighting:muteinteger0Mutes light emission
lighting:subsetstringnullLight groups active in lighting
Ri:Matteinteger0Indicates a matte object
Ri:ReverseOrientationinteger0Flip shading normals
Ri:Sidesinteger2Geometry can be one or two sided
shade:relativepixelvariancefloat1PixelVariance multiplier for camera visible objects, allows you to alter the samples relative to the global setting
shade:indexofrefractionfloat-1.3Set an index of refraction used in nested dielectrics, we use the bxdf result, this is used as an override
trace:holdoutinteger0Indicates holdout object, useful in holdout workflow
trace:intersectpriorityinteger0Raytrace intersection priority for nested dielectrics
trace:maxdiffusedepthinteger1Maximum diffuse light bounces
trace:maxspeculardepthinteger2Maximum specular light bounces
trace:reflectexcludesubsetstringnullExclude object groups from reflections
trace:reflectsubsetstringnullObject groups visible to reflections
trace:shadowexcludesubsetstringnullExclude object groups from casting shadows
trace:shadowsubsetstringnullObject groups active in shadows
attributes trace:transmitexcludesubsetstringnullExclude object groups from transmission/refractions
trace:transmitsubsetstringnullObject groups visible to transmission/refractions
user:<name> <type> <value>anynullArbitrary instance user data
visibility:camerainteger1Indicates if object is visible to the camera
visibility:indirectinteger1Indicates if object is visible to indirect (reflection and specular refraction) rays
visibility:transmissioninteger1Indicates if object is visible to shadow rays

...

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.

 

User Primvars

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. 

A variable's class and the surface primitive determine how many samples must be included when a primitive variable is attached to a surface primitive. The following two tables identify the correct number of values that must be included for each combination of class specifier and surface primitive.

Surface PrimitiveConstantUniformVaryingVertexFacevarying
Quadrics11444
Polygon11nvertsnvertsnverts
General Polygon11nvertsnvertsnverts
Points Polygons1npolysnvertsnvertssum(nverticesi)
Points General Polygons1npolysnvertsnvertssum(nverticesi)
Points11npointsnpointsnpoints
Subdivision Mesh1nfacesnvertsnvertssum(nverticesi)
Surface PrimitiveConstantUniformVarying and FacevaryingVertex
Patch Bilinear1144
Patch Bicubic11416
PatchMesh Bilinear1(nu-unowrap)*
(nv-vnowrap)
nu*nvnu*nv
PatchMesh Bicubic1usegs*vsegs(usegs+unowrap)*
(vsegs+vnowrap)
nu*nv
NuPatch1(nu-uorder+1)*
(nv-vorder+1)
(nu-uorder+2)*
(nv-vorder+2)
nu*nv
Curves Linear1sum(nsegsi-nowrap)sum(nverticesi)sum(nverticesi)
Curves Cubic1sum(nsegsi)sum(nsegsi+nowrap)sum(nverticesi)
Blobby11nleafnleaf

 

Note, in the above table for parametric surface primitives, unowrap, vnowrap, and nowrap are assumed to be a boolean value of either 0 = periodic or 1 = nonperiodic. This is NOT how uwrap, vwrap, and wrap are used in the RenderMan interface.

For a bicubic patch mesh the number of values for the uniform and varying classes is determined by the number of patch segments in the u and v direction (usegs, vsegs, and nsegsi in the above table). This is determined by the u and v basis functions of the patch mesh. The following table gives the formula for calculating the number of patch segments, in the u or v direction, of a patch mesh. N is the number of control vertices in the u or v direction (nu or nv in the above table).

 

 

User Primvars

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


Dicing and Approximating geometry

...

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 motion blur of other objects hit object with this attribute will be ignored. When non-zero, motion blur will be taken into account 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

 

Primvars based on geometry type

...

an object with this attribute

 

Primvars based on geometry type

Blobbies

NameTypeDefaultDescription
primvars:Blobby Ri:codeintegernull (required) 
primvars:Blobby Ri:floatsfloatnull 
primvars:Blobby Ri:nleafintegernull (required) 
primvars:Blobby Ri:strings   

 

primvars:Blobby Ri:code integer[n] [required] Description
primvars:Blobby Ri:floats float[n] [] Description
primvars:Blobby Ri:nleaf integer [required] Description
primvars:Blobby Ri:strings integer[n] [] Description

...