RenderMan Basics

What is RenderMan?

Well we start by saying that RenderMan is NOT a renderer produced by Pixar. RenderMan is an Interface between packages which produce geometry, and renderers which turn that geometry into images. The idea is that you can then plug and play the animation package of your choice into the renderer of your choice, and it just works. In practise it's never that simple, but it does work pretty well. An animation package produces RIB files which define geometry and passes them to the renderer. The RenderMan standard is also very big on "shading", adding surface detail to an object seperate to the geometry. In fact there's an custom programming language "sl" written purely for the purpose of defining shaders.

What Renderers are there?

The most famous renderer is of course Pixar's PhotoRealistic Renderman, or PRMan as it's known. In fact when people talk of renderman they generally mean PRMan. It was used for all the Pixar movies, is very fast, and totally production proven. It produces great results, yet most people are supprised to discover that it is a scanline renderer - that basically means it can't handle complex lighting effects like reflection and refraction. However the latest version has ray tracing extensions.

Blue Moon Render Tools was a shareware ray tracer (+radiosity) developed my Larry Gritz. It provides a very full implementation of the Renderman standard. Unfotunatly it has been dicontinued, along with its commercial sucessor Entropy for legal reasons.

Advanced Rendering Technologies might be the best of both worlds. They've developed a custom processor that is esspecially good at ray tracing. This allows complex lighting effects at PRMan speeds.

Render Dot C, is a scanline renderer running on NT, SGI, HP, and Linux, which is broadly comparable to PRMan. A resolution limited "broadcast" version is also available at a very competetivly price.

Aqsis is an open source scanline renderer. Though still relativly new, it seems to be a pretty good foundation. Its free to download and as it's open source - if you don't like it then make it better.

Air is a hybird scanline/ray tracing renderer for windows, and Linux, available from Sitex Graphics.

Angel is my own renderer available for free download.

3Delight, is a hybrid renderer, which is currenltly availabel for free download.

RenderMan renderer projects seem to be popular to start, and then the once keen developer discovers its a rather harder slog than they figured. A complete list of renderers, past, present and future can be found on the Render Dot C site.

What packages support RenderMan?

Houdini includes direct support for RenderMan - particularly PRMan, though with a bit of wrangling other renderes can be made to work fine. Integration is excellent, allowing Mantra Materials to be converted to RenderMan shaders. Other packages require plugins to access RenderMan compliant renderers.

Pixar support Maya through there MTOR plugin, part of the Renderman Artist Tools (RAT) package. Textures are attatched using glimpse rather than the Maya multilister which can make transitioning a little tedious. RAT includes the Alfred network rendering system which allows excellent control over large and complex networks of machines which can be used for rendering when not in use.

To access Renderman from SoftImage requires SoftMan by Animal Logic. UNforunatly it doesn't currently work with XSI.

Animal Logic also have a plugin for 3D Studio Max, (called MaxMan) and Maya.

So What Are Shaders?

RIB files define only the basic geometry of a scene. To each object in the scene the RIB file attaches a number of shaders which control its appearence. There are a number of shader types:
Surface
Applies color to a surface.
Displacement
Applies diplacement and bump mapping to a surface.
Light
defines the behaviour of lights.
Atmosphere
Produces depth fade, and volumettric effects.
Interior
Defines the behaviour of light inside an object.
Exterior
Defines the behaviour of light outside an object.
Transformation
Provides arbitary distortions to the space an object occupies.
Imager
Modifies the colour of the pixel as it is written to the file.
One of each may be attatched to an object. Only the first four are suported by PRMan. Each shader takes the form of a (usually) short program written in shader language (sl). By being procedural, the shading process is far more flexable than is found in other types of renderer. Texture maps may be used in a very simple shader, or more powerfull code may produce complex modifications to the geometry. It is in these shaders that the real power of RenderMan is to be found.

Where Do I Learn More?

Well I'd naturally recommend my own book: Essential RenderMan fast. Once you've read that you might also like to look at some of the following.

The RenderMan bible is "The RenderMan Companion" by Steve Upstill (Addison Wesley). It explains the C API to generate RIB files, and the "SL" shading language. It serves as both a tutorial and a reference. Though it probably falls slightly short in both roles its essential for anyone serious about RenderMan.

Unfortunatly the Companion is a little dated, and misses out on a few recent additions to the language. Details of these can be found in the Renderman Release notes on the Pixar web site.

"Texturing & Modeling, A Procedural Approach" by David Ebert et al is the second must have book for any prospective shader writer. To be brutally honest its a pretty badly written book, being in reality little more than a collection of papers. However it does contain some excellent information, when the authors manage to avoid blatent self publicising.

Chapter two of "Texturing & Modeling" (written by Darwyn Peachey) is perhaps the most usefull chapter of the book. Similar information can be found in the excellent RenderMan Notes and related web pages by Stephen F. May. Also check out the RenderMan Repository

Finally "Advanced Renderman : Creating Cgi for Motion Pictures" by Anthony A. Apodaca and Larry Gritz. Though the other books cover things in much more detail, this one provides a good up to date summary of their contents, plus lots of new goodies.

The final renderman resource is the news group comp.graphics.rendering.renderman. This is populated by a mix of inhabitants from the totally naive to a number of Pixar employees. See Ya There...

Ian Stephenson.
DCT Systems
NCCA,Bournemouth University