These pages provide an intro RenderMan, plus a few hints, tips and
images. If you haven't used RenderMan here's some basic background
info to get you started.
Angel is my RenderMan(ish) compliant renderer.
It's still work in progress, so lacks a number of features, but it's making
For those who INSIST on having source code for everything, here's the source to my "alternatve" RM Renderer... Of course it's written entirly in shell script!! That's write RenderMan implemented in shell script. It was presented as a Stupid RenderMan Trick at SIGGRAPH 08.
Currently under development, SLander is runtime
system for renderman shaders allowing them to be previewed more rapidly
than BMRT or PRman.
Based around the SLander engine, Buffy provides a full
shader debugging system.
For those that would rather paint than code, Kendra
is a basic 3D painting system. Though not exactly Amazon, it allows textures
to be quickly positioned on geometry described by rib files, and saved
as tiff's for import into a more powerfull 2D painting system.
Rendering smoke with particle maps
This Stupid RenderMan Trick offers a new way to render smoke and other atmospheric effects. By storing particles in a photon map-like data structure, they can be ray marched in an atmosphere shader. The resulting shaders are fast, and controllable.
Implementing RenderMan on the Sony PS2
I ported Angel to the PS2, and then optimised it to use the custom hardware available on that platform. If you have a PS2 Linux kit you can get the executables from the PS2 Linux site.
Compressing RIB Files
RIB files can get large, but you can compress them using the Unix diff command.
Faith is an experimental tool for rendering RIB files in layers.
When using RiProdecural it is oftern necessary to calculate a bouding box for a RIB archive. This can now be done trivially using BBGen.
Anti-alising shaders is a continual battle. Inoise is a filtered verision of
the standard Perlin Noise function, and produces signifigantly better images than simple frequency clamping.
Mental Ray's core rendering engine is excellent, but its API's are difficult
to work with, and have limited support. Ethel
converts Rib files into Mental Ray compatable MI files, allowing Mental
Ray to be mixed into a RenderMan based production pipeline.
RenderMan allows procedural pritives, where an external program can be
called mid-render to generate additional geometry for a scene as it's needed.
demonstrates how this can be used to invoke
on the fly, and extract objects from hip files as required by the scene,
rather than generating rib code for all primitives a-priori.
New in PRMan3.9 is the RiBlobby functions, allowing metaballs to be evaluated
at rendertime. While this is relativly well documented in Pixar's Application
note #31, and appears to be well designed and thought out, the actuall
RIB syntax is more than a little intimidating, effectivly being machine
code for a virtual dataflow machine. Edmonds
is an assembler for this machine, taking a human readable description of
the required object and producing the required RIB description of the object..
Packages have varying levels of support for blobby objects. However
its often easier to deal with points and then convert to Blobbies
at render time. RiPtoB performs this conversion
on rib files.
Reguardless of what renderer you use it's important to understand the concept
of Gamma correction. Hopefully this document will
clarify why gamma is important, and show you how to manage it.
Here are a few little demo's that I've produced. They shouldn't be considered
as final animations, as they're really just proof of concept work, demonstrating
some of the fun things you can do with RenderMan.
The Candle sequence was generated entirly
using the C-API. It's hard work, but allows for greater flexability than
most applications. In addition to the surface shaders, the core of this
image is the lighting - multiple shadow maps are used to create the multicoloured
Explosion was animated in Houdini,
and the flame effect is generated using a shader generated by the Materials
editor. However the cool interesting bit is the displacement shader which
provides all the surface detail for the space station.