The purpose of this assignment was to experiment with RIFs as a means to modify a RIB file before it is sent to the renderer. Utilizing RIFs can save a lot of time if RIB-files are quite large or small tests need to be made.
How RIFs Work
To understand RIFs you first have to grasp how Renderman works. When you create a scene in Maya (or any other 3D package) you are crafting a set of instructions that an on-screen renderer is processing and displaying for graphical manipulation. When you want to experience the final render of your scene your scene, if you are using Renderman is written as a RIB file. This file contain instructions on how to reproduce what you have created.
That RIB-file is then sent to the Renderman renderer, the commands are interpreted, and subsequently images are output. During that interpretation process RIs are utilized. The RIB-file's instructions are sent to the RIs to be understood and calculated.
With RIFs we can interrupt that stream and substitute a filter or in other words a modification to the file without permanently rewriting it (a temporary change, in a sense).
All of this is very useful for quick tests on normally long-to-write RIB-files, debugging, and non-destructive experimentation.
Curve Color RIF
This python script is used to modify the color of a fur elements curves in an already baked out RIB. The script accepts two decimal-based RGB color vectors when run. The first set is used for the base and the second for the tip. In order to go about replacing the color values, the new values have to be placed into a variable. Then the old values are deleted and subsequently replaced with the new variables. A surprisingly easy process.
The following code is run as a MEL script in the Maya Script Editor. This script is dependent on a number of other scripts established by Malcom Kesson. Documentation can be seen at: Fundza: RiMel, Rman, Slim, Image Tool & Python Setup.
The ease of modifying any RIB without a full regeneration of said RIB is insurmountably useful. RIFs will prove quite useful in future, more complex, scenes.