Custom Hypershade Node
The graphics and notes on this page explain how custom hypershade nodes written using the RenderMan Shading Language can be combined with sophisticated physically plausible nodes that ship with Pixar's RenderMan Studio.
Using the Renderman Shading Language, I first created a custom hypershade node that contains the eye pattern with a UI. Above were several renders created wtih my custom eye hypershade node in combination with a GPSurfaceShader.
Inspirations & References
For this project, my intention was to create a pattern that can be flexible enough to transform into different types of eyes. Creating this eye pattern with the interface can be integrated into a production environment for creation of CG eyes with little time. I used animal eye references from both reptiles and mammals.
Using an eye diagram as reference, I've broken down the eye pattern into 4 parts: sclera, rim, iris, and pupil.
Each part could be manipulated by it's horizontal & vertical translations, overall radius, horizontal radius, and color. What clarify what the horizontal radius is, they are to control how narrow or wide the part of the eye to be. This is the parameter to use to create the reptile - slit pupils.
Below shows the hypershade network of the eye shader I used for all the eye patterns seen within the video. I used multipy/divide and blend color nodes to get the variation of noises on top of the flat colors. No image maps were used.
In order for the gecko to perform the act of sticking out it's tongue, I had to rig it's head. The rig consist joints in the area of each eye, top jaw, bottom jaw, and four for it's flexible tongue. Weights were painted according to where each point drives it's dominance. And then controllers were parent constrained to the joints for where I wanted to animate. In addition, a "squash" nonlinear deformer was also applied to the gecko for a cheap and subtle squash and stretch effect.
Diffuse Color (Left) and Displacement (Right) painted in Mudbox.