Programming Models and Shaders (RenderMan) II

Tree with Leaves

The goal of this assignment was to incorporate Python scripting and RIB Archives that used custom surface and displacement shaders to create the effect of leaves. Very similar in concept to the Moss project from RenderMan I.


This project, unfortunately, is incomplete and had to be abandoned near the end (giving way to the lack of polish and completion as you can see in the above video). While working on this project, near the end I lost all of my data due to corruption and/or data loss related to this project on my school's network and my own backup external drives. So much of the final look development progress was lost, along with the shaders I wrote for the leaves.

With all of that aside, the goal of this assignment was to take the concept of render-time object replacement (similar to the moss project from RenderMan I) further and to develop surface and displacement shaders to fake the visual effect of a canopy of leaves. First a Python script was used to create the leaves (simple square polygons) to fill a canopy, and then I developed and wrote a surface shader to allow for some random variance of surface color to the leaves (based on parameters given to each leaf polygon from the original Python script) as well and then going one step further to develop a displacement shader to break the uniformity of the square polygon and help the leaf always be seen, even from the edge side towards the camera (which, in a regular flat polygon is infinitely thin, would disappear to the camera and ruin the effect of a leaf).


What I Learned/Challenges

- I learned more about Python scripting.
- I learned how to have a RSL shader reference user-defined attributes of the geometry that the shader is applied to.
- I had difficulty recovering and remaking work that I lost in the time I had available for this project without jeopardizing my other projects.
- I had difficulty getting the moss to be of a proper size while still being visible in the final render and still not slowing down the final render times to a crawl.

Future Improvements

- I would like to go back and continue the development of the surface and displacement shaders and the overall look-development to finish this project off.
- I would like to experiment more with trying to get the inclusion of the moss objects from my RenderMan I project to work and be more visible.

Technical Breakdown/Extra Information

Reference Images

The below are two images the demonstrate the render time replacement of the leaves using RIB Archives.

Single Tree

Multiple Tree


This class continued to build upon RenderMan I by developing more complex shader writing using RSL and integrating those shaders with Maya. New concepts were developed such as Conditional Evaluations and AOV Secondary Images. To see a more complete and technical breakdown of all of these projects, and a few of the smaller concepts, please visit my RenderMan II web page developed just for this class here.

Back to Top