Pixar RIB: Summary from the Encyclopedia of Graphics File Formats

Pixar RIB File Format Summary

Also Known As: RenderMan Interface Bytestream, RIB


Type Scene description
Colors Up to 24-bit
Compression NA
Maximum Image Size NA
Multiple Images Per File NA
Numerical Format NA
Originator Pixar
Platform All
Supporting Applications RenderMan, modeling applications, others
See Also DKB, MTV, POV, QRT

Usage
Storage of image scene descriptions for Pixar's RenderMan product.

Comments
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.

Contents:
File Organization
File Details
For Further Information

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.

File Organization

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.

File Details

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

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:

Pixar
Attn: Ray Davis
1001 West Cutting
Richmond, CA 94804
Voice: 510-236-4000
FAX: 510-236-0388
Email: [email protected]
WWW: http://www.pixar.com/

See the following site for information on RenderMan:

http://pete.cs.caltech.edu/RMR/textonly.html

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.


This page is taken from the Encyclopedia of Graphics File Formats and is licensed by O'Reilly under the Creative Common/Attribution license.

More Resources