(The bread and butter of RenderMan)
September 20, 2003
In addition to great shader examples that have turned up, over the years some excellent shader libraries been put together (Advanced RenderMan, BMRT, and RManNotes). Depending on the need in our desire to make use of these libraries, we find the need to extend them. Then what do we do when we want to share our shaders and these changes with others?
The typical method of just cutting and pasting snippits into our shaders or just making changes directly into these libraries doesn't seem to be the way to go. First many times it doesn't seem to give proper credit for the original auther of these libraries. Secondly, it muddles exactly what contribution you are actually making to these libraries.
This section will hopefully illustrate my proposal on how to rectify this problem. Also, as time permits, I will start conforming many of the shaders in the RMR to comform to this. The first place will be with my own shader section, TLShaders (which hasn't happened yet). -- Tal To make it easier to share functions and macros based on other's shader libraries, I am creating a new directory: shaders. This will contain the origianl shader libraries and derivative functions/macros based on them.
The plan is simple if you have derivative work off of these libraries observe the following:
Say for example shaders/arman shaders/mywork
Then you would just to refer to these libraries in your shaders or own shader libraries: #include < arman/noises.h >
I will put together more concrete examples when I have a chance.
As always, feel free to submit your own libraries or derivative works!
Shader Dev distribution -- shader libraries to begin your derivative work from. Currently only the Advanced RenderMan shaders directory and rmannotes.h are here -- Tal 11/23/03
Some thoughts on shaders by the author of WavesWorld (Mr. Wave himself, Michael B. Johnson).
Steve May in his RManNotes has some excellent background information such as: RManNotes: Shader Basics, RManNotes: Regular Patterns, and RManNotes: Stochastic Patterns.
All of the RMR shaders grouped by shader type instead of by author.
BMRT Shaders-- Shaders from BMRT
The following are some of the shaders that can be found in Michael B. Johnson's WavesWorld (under Source/Shaders)
The following shader can be found under (Source/Shaders/WWShaders):
WWCinderBlock.sl Sample RIB prman shader
K. Musgrave-- texture demos for example procedural shaders from Chapter 8.
Darwyn Peachey -- example shaders.
Andrew Klishin Shaders
Dan Weeks Shaders
Emil Mikulic Shaders
Fredrik Gustafsson Shaders
Frank Summers Shaders
Graeme Nattress Shaders
Ivan DeWolf Shaders
Jim Bumgardner Shaders
Jonathan Merritt Shaders
Larry Gritz Shaders
Mark Beckwith Shaders -- (And animation)
Mike King Shaders
Peter Quint Shaders
Michael Rivero Shaders
Rudy Cortes Shaders
Steve Weintz Shaders -- (And animation)
Stephen H. Westin Shaders
Tal Lancaster Shaders
Xavier Matia Bernasconi Shaders