View Full Version : Exporting Renderman RIBS ...

01 January 2004, 09:11 PM
Evening all!!

Been reading over some old Weta articles, and saw that they exported their geometry heavy AI agents direct from MASSIVE to their own renderer (GRUNT I think) and was wondering if anyone knew how complex it would be to create RIB files from scratch?

Also, where on the web could I find any detailed info on this and sample code (etc)?



01 January 2004, 10:47 PM
Was GRUNT actually a renderer?

For some (completely unfounded) reason, I assumed that GRUNT took the MASSIVE data, linked it with the actual geometry of the characters (doing things like randomizing armour, etc) and then produced RIBs from that

01 January 2004, 02:35 AM
Yep that's what I heard as well. Grunt as in "Grunt work".

As far as writing your own rib files goes, if you where just doing it by hand, then it would get pretty monotonous after a while. I can be done but I wouldn’t recommend it. Probably the best way to go about it would be to write a rib converter for your favorite 3D app. But, there's probably already one out there if you look around. For instance, Lightman for LightWave; Maya Man, liquid and MtoR for Maya and SoftMan for XSI. One way to learn about writing a rib file converter is to look at some of the freeware python, mel and L scripts out there. you'll see that for getting geometry out into RenderMan, it's actually not as bad as one might assume.

Shader creation is a whole area of complexity onto it's self. Not hard but definitely requires some hardcore studying. take a look as the renderman repository:

This one does a pretty good job of filling you in on the rest:

My personal advice is to take the bull by the horns. There are people who'll try and dissuade you from learning it saying it's much to hard. But, You'll never know how hard it really is untill you try.

01 January 2004, 08:15 AM
This ( was my weapon of choice when writing my first RIB exporter. You should also have the RISpec ( around and one or two good books on RenderMan can never be wrong.

01 January 2004, 09:22 AM
Originally posted by ngrava
Yep that's what I heard as well. Grunt as in "Grunt work".

A quick google reveals that GRUNT stands for "General Renderer of Unlimited
Numbers of Things" - so maybe it does do the rendering too.....

01 January 2004, 10:14 AM
Hi Dan

If I were you I'd look up the RI Spec on and use the C API to output RIB. You will need to link against a library to provide support - I would suggest the Aqsis libri2rib library as it is free and has some documentation
You will need to check out the license yourself though as I don't know if it is GPL or LGPL which would affect your source code.

There are other RIB writing libraries out there, but I dont know how many are easy to obtain - obviously you need a copy of RenderMan Proserver to get the latest Pixar one.

This has the added benefit that if you stick to the spec then you can link against any RIB writing library you want.

also check out the affine toolkit as it has some interresting stuff

PS I am pretty sure GRUNT is a specialised renderer and is designed to be quick at the expense of being less general (al a prman).


01 January 2004, 11:54 AM
Cool, thanks for all the replies. I'll have a think about how I could do this. Don't really want to dive into custom renderer territory, and will probably see what existing tools are out there at the moment.



ps. Rendermaniac - just sent you a private message ...

01 January 2004, 02:21 PM
Another great resource is
It's not yet finished, but there's a forum and some useful tips and tricks for beginners.

As another note I might add, that Animallogic's SoftMan is just for Softimage|3D. XSI is not yet supported. And as far as I know there is no RIB Exporter for XSI out there...


p.s.: If you're really interested in the actual source code of a RIB-Exporter check out Liquid for Maya (I don't know the URL right now but a google should dig it up). Liquid was used by Weta on Lord Of The Rings.

CGTalk Moderation
01 January 2006, 06:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.