Also Known As: RenderMan Interface Bytestream, RIB
|Colors||Up to 24-bit|
|Maximum Image Size||NA|
|Multiple Images Per File||NA|
|Supporting Applications||RenderMan, modeling applications, others|
|See Also||DKB, MTV, POV, QRT|
Storage of image scene descriptions for Pixar's RenderMan product.
Although RIB is proprietary, RenderMan is a capable product available on a number of platforms, so an energetic aftermarket has developed. Enough applications besides RenderMan now read and write RIB files, which has pushed the format into prominence as a de facto standard for high-end rendering.
Vendor specifications are available for this format.
Pixar RIB files implement the RenderMan Interface Bytestream (RIB) Protocol, which was developed at Pixar to provide a "standard interface between photorealistic modeling and rendering programs." Because in practice RIB files are supported by other applications mainly to provide output readable by Pixar's RenderMan application, this description would be considered disingenuous, were it not for the fact that RenderMan is so highly regarded.
RenderMan is available on a number of platforms and has a certain currency among sophisticated computer graphics artists and animators. As an application, it provides photorealistic rendering capability, through calls to a comprehensive library of functions. Thus the files resemble scripts, or a series of function calls in a programming language. Each statement implements what Pixar calls a rendering primitive. A list of rendering primitives establishes a description of how a picture is to appear, without specifying how the rendering application should construct it.
RIB files are written one byte at a time, and thus Pixar has avoided potential portability problems caused by byte sex differences. The RIB protocol implements a command language, and the data contained in the files can be either 7-bit ASCII or in a compressed binary form. The RIB protocol thus defines an abstract rendering model. In this sense, a RIB file takes the place of a rendering application (usually RenderMan). The user later applies a rendering application to the RIB file to produce an actual image. RIB files are streams of free-form data compatible with the abstract RIB rendering application.
Keeping this in mind, then, RIB files maintain a graphics state, which contains the information necessary to render a graphics primitive, such as color and the various coordinate mapping transformations. In some other rendering applications, "graphics state" refers to the set of attributes associated with any objects being rendered, but Pixar extends the terminology slightly.
RIB defines a number of 2D and 3D geometric primitives, some of them quite sophisticated.
The RIB rendering application is assumed to be an interpreter scanning a bytestream. To support this model, RIB files are contructed from a sequence of tokens. Tokens are delimited by a set of special characters (", #, [, and ]), and the data stream may contain white space, defined as in the C language. Comments are strings preceded by a #.
Both signed real numbers and integers are supported, as are strings, and both also follow conventions similar to their counterparts in the C language.
Names, arrays, and parameter lists round out the data types defined in the specification. Names are usually text strings (or their binary counterparts) associated with RenderMan Interface requests, otherwise known as RenderMan commands. Alongside arrays and parameter lists, they allow the full specification of function calls to the rendering application.
A section of a RIB file might appear as follows:
Projection "perspective" "fov" [30.0] Translate 0 1 0 Rotate 90 0 1 0 WorldBegin Surface "wood" "roughness" [.3] "Kd" 1 Color [.2 .3 .9] Polygon "P" [010 011 001 000] WorldEnd
This is not an excerpt from a file, only an example of the kind of commands to be found in one.
For further information about the Pixar RIB format, see the article on the CD-ROM; this article was prepared by Pixar specifically for this book. For additional information, contact:
Attn: Ray Davis
1001 West Cutting
Richmond, CA 94804
Email: [email protected]
See the following site for information on RenderMan:
See these references for additional information about Pixar RIB:
Pixar, The RenderMan Interface Bytestream Protocol File Format, Pixar, June 1990.
Pixar, The RenderMan Interface, Version 3.1, Pixar, September 1989.
Upstill, Steve, The RenderMan Companion: A Programmer's Guide to Realistic Computer Graphics, Addison-Wesley, Reading, MA, 1989.
The latter two documents are needed for a full understanding of the RIB format. The binary version of RIB is discussed in the following:
Pixar, The RenderMan Interface, Version 3.1, Appendix C, Pixar.