\
   

 

     


































home
contents
resume
showreel
portfolio

resources
renderman
maya
massive
houdini

friends
professor malcolm kesson
professor ron bernard
aleksander rodic
andrew dehner
billy dongyoon jang
kiki poh
sandro blattner
zahari dichev

contact
01. 912 . 272 . 2209
davekcw@yahoo.com.sg
Advanced RSL Shaders II - AOVs renderpasses
This project explores the creation of Renderman render passes, a technique often covered and buried in the automated reality of the current cg industry. By exploring how these passes work, we being to learn how we can also create unconventional passes suited towards our custom needs.

Notes!
This project may differ from the initial assignment writeup written for Professor Malcolm Kesson. It would have been edited to also reflect my later experiences, clearer tutorial techniques/codes and also later advancements made to the projects as well.
   
How it works

In this portion of the assignment, we were allowed to explore Renderman's concept of render passes and how data is passed from light to shader and to rendertime. While one may recall, why is it that render passes in mental ray is so limited to specific shaders and not all of them?

It seems the same detail lies in the usage of the Renderman renderer. From the beginning of our programming concept class in 319 up until this moment, we have understood that the idea of light and shading comes from commands such as illuminate(), diffuse(), gather() and etc. But what does this really tell us?

It is trying to say that Renderman itself is a system that uses and only uses resources based on the kind of task that it is assigned. Our basic programming lingo tells it only to do specific task such as "color this", "displace that", " add specular here" and etc etc... but what we have not asked of it, is to output this data into usable passes other than to render them as they are.

In order to output a pass, such data needs to be send out into a variable which Renderman can then use and build into a specific image. Just like how we use the default variable Ci to output color information into a rendered image, likewise we need to output passes into variables that Renderman or Maya can call out as render passes.

That process... is not too hard to understand. In order to output a pass, the data MUST and can only be performed by a surface shader (not light shaders). While there is no suggestion of volume shaders, I am thinking that such feat should be possible considering the nature of volumes and raymarching used in more complicated surface shading procedures.

To output a pass channel, one must INCLUDE the line

From here, what ever information that the user needs to input must be assigned to the variable. For example:-

 
 

So the concept is simple. Create a form of output variable and assign it the data from the "pass". Next we need to tell Renderman or maya to output these data into passes. This process is simple and comes generally in a 2 step procedure. First, we need to display or make visible these invisible channels by using:-

 
 

Next, we then output this visible channel into a image file on the framebuffer or Pixar's it viewer. This procedure can be done in 2 different ways, depending on whether it is Cutter/Command Line renders and Maya itself. It is however to be noted that Maya advances the code further that the use of a pre-world commands to declare the DisplayChannel command may no longer be needed. However, said process is pretty glitchy and sometimes, inexplicably does not work.

In general, the concept is to make it so that Rman Genrib or the render process will generate those lines of codes in the header of the RIB file. In maya however, this process can be replicated by entering your render settings and adding a custom pass according to the name that you have provided as the DisplayChannel. More details about Renderman's default naming convention for passes can be seen in further detail at Fundza's documentation on Secondary Images(AOV) over at this link.

   
   
   
   
   
   
   


 
dave kin chang wei - visual effects artist / technical director - davekcw@yahoo.com.sg - www.kamid.net