Introduction

Some friends asked me to direct them in their learning of the Renderman Shading Language. The reading of at least one book on the subject is very important, but what is essential in my opinion, is practice.

Here is a few fun exercises that I came up with, to help them gaining experience with the "vocabulary" and processes of the language.
The idea was not to give them answers, but problems to solve. They have to find out the answers by themselves with whatever ressource they use. (I suggest the documentation provided by the chosen renderer. It is the best place to start!)

Some of the functions or constructs tend to be deprecated since RSL 2.0 (the illuminance/illuminate constructs, the message passing functions for example), but I feel it is important to be acquainted nonethless with them because their are still to be found in a lot of shaders.

The solutions given here are mere examples of a single potential solution, but by no means the only valid answer. And they should be looked at only when the exercice is complete, as a point of comparison. I tried to make them as simple as possible, with as few controls as possible.

I advise also to create separate shaders per exercice, as opposed to building on shaders of previous exercice. Simplicity is the reason.
If you find errors or have comments about these exercices, feel free to drop me a line.

I prefaced the exercices with a few notes and explanations. Feel free to have a peek.

Variables in shaders
_ _ Surface shaders
_ _ Light shaders
_ _ conventions

Notes on
_ _ Opacity
_ _ Faceforward
_ _ Shading grid
_ _ Raytracing visibility attributes

And now, the heart of the matter. You can do the exercises in any order (well... try to do the basics before the advanced stuff!). Have fun.

Exercises
_ _ basic functions
_ _ raytracing
_ _ pointclouds
_ _ illuminance and illuminate
_ _ message-passing, attributes and options
_ _ gather
_ _ functions, includes and AOVs
_ _ types of shaders
_ _ structs and classes
_ _ coshaders

 

 

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

 

 

- home - curriculum - competences - gallery -MEL scripts - shaders - contact - links -