Zack Waters

CS563

Advance Topics in Computer Graphics

Prof. Emanuel Agu

 

Final Project Proposal

 

I am proposing to integrate global illumination into my own implementation of Pixar’s Renderman shading language.  It was only up until recently that Pixar incorporated global illumination into their Renderman tools as the problem is not trivial.  Artists in the past faked global illumination in Pixar’s tools by strategically placing secondary light sources all around the scene.

 

One approach to solving this problem is to incorporate contributions of global illumination into the ambient() function provided by a Renderman renderer.  However, the problem with this is that not all of the important effects from the shaders are included into the global illumination calculations.

 

For example, a wall associated with a red checker board shader should properly bleed red onto the ceiling at the checker locations.  In addition, shaders can control the opacity of a surface which allows light to pass through.  These lighting effects need to be incorporated into the GI solution.

 

State of the Software

 

I have a renderer that I have been working on over the past year.  It is called StingRay and it includes partial support of the Renderman language.  For example, functions can not be defined yet in the shader.  The entire source is original and completely written by me.  StingRay also has support for Photonmapping.  However, there are problems with the implementation that need to be addressed.

 

Plan

 

The plan is to fix the problems with the photon mapping implementation.  Once this is complete I will tackle the problem of integrating it into Renderman.  Right now I am leaning towards a two-pass approach.  The first pass will calculate the GI solution in which the shaders will be sampled for color and opacity.  During the rendering pass the shaders will have the ability to look up the GI solution.  How this is done is yet to be determined.

 

Project Deliverables