The RenderMan Interface - Paul Bourke
The RenderMan Interface - Paul Bourke
The RenderMan Interface - Paul Bourke
- No tags were found...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
total of ncurves values of the appropriate type. Primitive variables of class varying<br />
should supply ∑ (nsegs i + 1) values for nonperiodic curves, and ∑ nsegs i values<br />
for periodic curves, where nsegs i is the number of segments of the ith curve (see<br />
below). Primitive variables of class vertex should supply ∑ nvertices i values of the<br />
appropriate type, that is, one value for every control vertex ”P”.<br />
<strong>The</strong> number of piecewise-linear or piecewise-cubic segments of each individual curve<br />
is given by<br />
⎧<br />
nvertices i − 1 for linear, nonperiodic curves<br />
⎪⎨ nvertices i for linear, periodic curves<br />
nsegs i = nvertices i−4<br />
vstep<br />
+ 1 for cubic, nonperiodic curves<br />
⎪⎩<br />
for cubic, periodic curves<br />
nvertices i<br />
vstep<br />
Since the control vertices only specify the direction of the “spine” of the curves, by<br />
default the curves are assumed to always project a cross-section of the specified width<br />
(as if it were a hair or a strand of spaghetti). However, if ”N” values are supplied, the<br />
curves will be interpreted as “flat” ribbons oriented perpendicularly to the supplied<br />
normals, thus allowing user-controlled rotation of the ribbon.<br />
RIB BINDING<br />
Curves type [nvertices] wrap ...parameterlist...<br />
<strong>The</strong> number of curves is determined implicitly by the length of the nvertices array.<br />
EXAMPLE<br />
Curves ”cubic” [4] ”nonperiodic” ”P” [0 0 0 -1 -.5 1 2 .5 1 1 0 -1 ] ”width” [.1 .04]<br />
Curves ”linear” [5] ”nonperiodic” ”P” [0 0 0 3 4 5 -1 -.5 1 2 .5 1 1 0 -1 ]<br />
”constantwidth” [0.075]<br />
SEE ALSO<br />
RiBasis<br />
5.6 Blobby Implicit Surfaces<br />
<strong>The</strong> <strong>RenderMan</strong> <strong>Interface</strong> allows the use of free-form self-blending implicit-function surfaces<br />
in the style of Jim Blinn’s blobby molecules, Nishimura et al.’s metaballs and Wyvill,<br />
McPheeters and Wyvill’s soft objects. Blobby surfaces may be composed of spherical and<br />
sausage-like line-segment primitives with extremely flexible control over blending. <strong>The</strong><br />
surface type also provides for repulsion to avoid intersection with irregular ground planes,<br />
represented by depth maps.<br />
RiBlobby ( RtInt nleaf, RtInt ncode, RtInt code[], RtInt nfloats, RtFloat floats[],<br />
RtInt nstrings, RtString strings[], ...parameterlist...)<br />
85