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.
Opcode Operands Operation<br />
0 count, ... add<br />
1 count, ... multiply<br />
2 count, ... maximum<br />
3 count, ... minimum<br />
4 subtrahend, minuend subtract<br />
5 dividend, divisor divide<br />
6 negand negate<br />
7 idempotentate identity<br />
8-99 reserved<br />
Table 5.3: RiBlobby opcodes for combining fields.<br />
<strong>The</strong> add, multiply, maximum and minimum operations all take variable numbers of<br />
arguments. <strong>The</strong> first argument is the number of operands, and the rest are indices of<br />
results computed by previous instructions. <strong>The</strong> identity operator does nothing useful,<br />
and is only included for the convenience of programs that automatically generate<br />
<strong>RenderMan</strong> input.<br />
RiBlobby primitives may be shaded much like ordinary parametric primitives, with<br />
the caveat that just like subdivision surfaces, they have no global u and v parameters.<br />
Nevertheless, they may be given vertex values by attaching scalar values or reference<br />
coordinate fields to primitive sub-objects.<br />
RIB BINDING<br />
Blobby nleaf [ floats ] [ strings ] ...parameterlist...<br />
<strong>The</strong> number of points is determined implicitly by the length of the ”P” array.<br />
EXAMPLE<br />
Blobby 2 [ 1001 0 1003 0 16 0 2 0 1 ]<br />
[1.5 0 0 0 0 1.5 0 0 0 0 1.5 0 0 0 -.1 1 .4 .01 .3 .08] [”flat.zfile”]<br />
5.7 Procedural Primitives<br />
Procedural primitives can be specified as follows:<br />
RiProcedural ( RtPointer data, RtBound bound,<br />
RtProcSubdivFunc subdividefunc, RtProcFreeFunc freefunc )<br />
This defines a procedural primitive. <strong>The</strong> data parameter is a pointer to an opaque<br />
data structure that defines the primitive. (<strong>The</strong> rendering program does not “look<br />
inside” data, it simply records it for later use by the procedural primitive.) bound<br />
87