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.

RiContext (ctx1);<br />

...<br />

<strong>The</strong>re is no RIB equivalent for context switching. Additionally, other language bindings<br />

may have no need for these routines, or may provide an obvious mechanism in the language<br />

for this facility (such as class instances and methods in C++).<br />

2.2 Bytestream Protocol<br />

This document also describes a byte stream representation of the <strong>RenderMan</strong> <strong>Interface</strong>,<br />

known as the <strong>RenderMan</strong> <strong>Interface</strong> Bytestream, or RIB. This byte stream serves as both<br />

a network transport protocol for modeling system clients to communicate requests to a<br />

remote rendering service, and an archive file format to save requests for later submission<br />

to a renderer.<br />

<strong>The</strong> RIB protocol provides both an ASCII and binary encoding of each request, in order to<br />

satisfy needs for both an understandable (potentially) interactive interface to a rendering<br />

server and a compact encoded format which minimizes transmission time and file storage<br />

costs. Some requests have multiple versions, for efficiency or to denote special cases of the<br />

request.<br />

<strong>The</strong> semantics of each RIB request are identical to the corresponding C entry point, except<br />

as specifically noted in the text. In Part I of this document, each RIB request is presented in<br />

its ASCII encoding, using the following format:<br />

RIB BINDING<br />

Request parameter1 parameter2... parameterN<br />

Explanation of the special semantics of the RIB protocol for this request.<br />

At the top of the description, parameter1 through parameterN are the parameters that the request<br />

requires. <strong>The</strong> notation ‘–’ in the parameter position indicates that the request expects<br />

no parameters. Normally the parameter names suggest their purpose, e.g., x, y, or angle.<br />

In RIB, square brackets ([ and ]) delimit arrays. Integers will be automatically promoted if<br />

supplied for parameters which require floating point values. A parameter list is simply a<br />

sequence of string-array pairs. <strong>The</strong>re is no explicit termination symbol as in the C binding.<br />

Example parameter lists are:<br />

”P” [0 1 2 3 4 5 6 7 8 9 10 11]<br />

”distance” [.5] ”roughness” [1.2]<br />

<strong>The</strong> details of the lexical syntax of both the ASCII and binary encodings of the RIB protocol<br />

are presented in Appendix C, Language Binding Details.<br />

10

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

Saved successfully!

Ooh no, something went wrong!