RenderMan is not a program in itself, but a rendering interface developed by Pixar in the early 1980's and released publicly in 1989 as RiSpec. RenderMan is often confused with PRMan, which is Pixar's commercial RenderMan compliant rendering program. RenderMan is actually deeply rooted with Pixar's history, and in many ways birthed the studio and software developer.
In the beginning of the 1980's Ed Catmull had brought a bunch of graphics programmers to the Computer Division of LucasFilm, the goal was to computerize the special effects industry in three ways : to replace the optical film printer with digital compositing; replace the physical film editing station with digital off-line editing; and to replace miniature effects with computer generated animation. During that time the fastest computer generally available was the VAX 11/780. The Computer Division undertook three hardware projects: the Pixar-2D, the EditDroid and the ambitious Pixar-3D.
The Pixar-3D was a giant image synthesis hardware pipeline. The software prototype of this rendering pipeline was given the name of REYES, which stood for "Render Everything You Ever Saw", but also the name of a California based park. The "Genesis Effect" sequence in Star Trek: The Wrath of Khan was done with an early version of the software, as well as the stained glass man sequence in Young Sherlock Holmes.
Around this time John Lasseter had joined LucasFilm for a few months, on behalf of Ed Catmull's request, to experiment with computer animation. Several months later the first Renderman based short "The Adventures of Wally and Andre B" was completed.
Pixar was spun off of Lucasfilm in 1986, when Steve Jobs bought the division.
The Pixar-3D hardware project was eventually named the "Reyes Machine". This machince was an expensive piece of hardware, with a series of special purpose boards that each accomplished one part of the Reyes rendering pipeline. leading to the RM-1 Project, which was a lower cost hardware machine that thought to replace the very expensive "Reyes Machine". Eventually the idea to have a standard interface like Silicon Graphics had with their hardware (GL), and started to develop the next generation GL, called the "Rendering Interface," or RI.
At some point in time the idea that the entire Reyes Machine would be small enough to be compared to a Sony Walkman, that one could have video piped directly to video sunglasses (it was the 80's). This was the birth of RenderMan. After that the "RM" in the RM-1 was simply understood to mean "RenderMan", and Pixar started to try to sell RM-1 machines to anyone who need high speed rendering services; mainly Industrial Light and Magic. It was decided by an advisory group of 20 big name companies in the computer graphics industry to announce that "RI" was the PostScript of 3D. There was only one snag when Steve Jobs decided the "Rendering Interface" was not "snazzy" enough. They needed to come up with a new name. So thus all the hardware and software turned into RenderMan; RenderMan Interface, RenderMan-1 Hardware, RenderMan Toolkit. Sadly the hardware never made it out of beta testing, and it was killed by the inexorable march of Moore's Law and intristic unsupportability of special purpose hardware.
In an attempt to demonstrate the merit's of the Pixar Image computer, Lasseter completed the "Luxo Jr" short, which not only impressed computer scientists, but the film industry as well. "Luxo Jr" was nominated for "Best Short Animated Film" by the Academy Awards in 1986.
Pixar released it's next product that was the software version of the Pixar 3D hardware, dubbed PhotoRealistic RenderMan. Over the next several years Pixar sold over 100,000 licenses of the software that was generally not marketed for consumers.
In 1988 Pixar released the RiSpec 3.0 to the public. While this was a document that was publicly available, the only available software using the RiSpec was PRMan until the mid 90's when a student by the name of Larry Gritz wrote BMRT (Blue Moon Rendering Tools), a free alternative to the pricy Pixar software.
Over the next decade several commercial and free rendering software packages became available, all RenderMan compliant, some having features not found in PRMan (such as BMRT's ability to ray trace at the time). Some have been made for personal use, while others such as 3Delight and AIR made for professional production.
RenderMan has been credited for bringing computer graphics to the big screen, with it's speed, accuracy and expandability. Since the early 90's more and more films are being made with computer animation and effects in them, most of the time using PRMan. Since 1995 and the release of Pixar's "Toy Story", once again PRMan proved to the film industry that full CG films can be done.
RenderMan Interface Specification
What set the RISpec apart from other standards of the time was that it allowed using high-level geometric primitives, like quadrics or bicubic patches, to specify geometric primitives implicitly, rather than relying on a modeling application to generate polygons approximating these shapes explicitly beforehand. Another novelty introducting by the RISpec at the time was the specification of a shading language (SL).
The Renderman Shading Language allows material definitions of surfaces to be described in not only a simple manner, but also highly complex and custom manner using a C like language. Using this method as opposed to a pre-defined set of materials allows for complex procedural textures, new shading models and programmable lighting. Another thing that sets the renderers based on the RISpec apart from many other renderers, is the ability to output arbitrary variables as an image—surface normals, separate lighting passes and pretty much anything else can be output from the renderer in one pass.
For a renderer, in order to call itself "RenderMan-compliant", it must implement at least the following capabilities:
- A complete hierarchical graphics state, including the attribute and transformation stacks and the active light list.
- Orthographic and perspective viewing transformations.
- Depth-based hidden-surface elimination.
- Pixel filtering and anti-aliasing.
- Gamma correction and dithering before quantization.
- Output of images containing any combination of RGB, A, and Z. The resolutions of these files must be as specified by the user.
- All of the geometric primitives described in the specification, and provide all of the standard primitive variables applicable to each primitive.
- The ability to perform shading calculations through user-programmable shading
- The ability to index texture maps, environment maps, and shadow depth maps
- The fifteen standard light source, surface, volume, displacement, and imager shaders required by the specification. Any additional shaders, and any deviations from the standard shaders presented in this specification, must be documented by providing the equivalent shader expressed in the RenderMan shading language.
Optional advanced capabilities
Additionally, the renderer may implement any of the following optional capabilities:
- Area light sources
- Bump mapping
- Depth of field
- Displacement mapping
- Environment Mapping
- Global illumination
- Level of detail
- Motion blur
- Programmable Shading
- Special camera projections
- Spectral colors
- Ray tracing
- Shadow depth mapping
- Solid modeling
- Texture mapping
- Volume shading