26.01.2015 Views

The RenderMan Interface - Paul Bourke

The RenderMan Interface - Paul Bourke

The RenderMan Interface - Paul Bourke

SHOW MORE
SHOW LESS
  • 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!