Included Ri Filters

Included Ri Filters

PRMan ships with a number of useful RiFilters. These "Rifs" can be found in $RMANTREE/etc. Brief descriptions can be found below.


RIBBound.so

RIBBound.so - print world-space bounds of rib

prman -rif RIBBound.so rib-files

RIBBound.so is a Rif plugin provided with PRMan. It tracks the world-space bounding box of a RIB stream and prints it to stdout on close. Procedural bounds are used as given in the RIB; the procedurals are not cracked open. Transformation and deformation motion blur are taken into account.

RIBBounds.so only works with prman; it will not function correctly with catrib. To find the bounds of a .rib file without having to actually render it, prman -catrib can be used to prevent actually rendering an image.

The following example displays the world-space bound of the primitives in foo.rib.

prman -rif RIBBound.so -catrib /dev/null foo.rib

RifFaceEdgeData.so

prman -rif RifFaceEdgeData.so [-rifargs [-emitMetaData 1|0]] rib-files
RifFaceEdgeData.so takes a surface that has been tagged with __handleid and generates a file called: __handleid.fed. This fed file can then be passed to the ptxmake program. The -emitMetaData argument enables the optional inclusion of the topology of the mesh in the fed file with the standard Ptex meta-data tags (default is 0, or "off"). Note, a limitation of the RifFaceEdgeData plugin is that it can only be used when rendering with prman. It will not function with catrib or prman with the -catrib option.

RifSubdivFaceIndex.so

prman -rif RifSubdivFaceIndex.so rib-files
RifSubdivFaceIndex.so takes a subdivision surface without a faceindex and create the appropriate __faceindex values at each vertex.

RifRayTraceHider.so

prman -rif RifRayTraceHider.so [-rifargs [-mode fixed|adaptive] [-minsamples samples] [-variance pixelvariance] -rifend] rib-files
RifRayTraceHider.so modifies a RIB to render using the raytrace hider. Unless it sees Display or Hider requests that indicate a deep shadow, depth mask, or photon pass in the next World block, it will insert Hider and PixelVariance requests immediately before each WorldBegin. See the raytrace hider documentation for details on optional arguments.