Stipple Cave Shader
I have developed a shader that renders light using stippled dots, to mimic a style used by the 2D illustrator Kilian Eng.
In my graduate Rendering and Shading course, we were asked to develop a shader that replicated a particular artistic style. For this project, I decided to emulate a particular style of depicting light used by a favorite illustrator of mine, Kilian Eng.
Reference Illustration
Above is the Eng illustration I used as a basis for my rendered scene. I was most interested in the stippled dots used to depict the light on the rock formations in the foreground, a technique he uses in several of his other illustrations.
Shader Composition
To achieve this lighting effect in 3D, I wrote a surface shader in Renderman Shading Language (RSL). The simple test sphere above shows the shader's response to a single light source. The size and frequency of the stippled dots are linked to the specular highlight, and the placement of these dots is based on random noise. The underlying shading is a simple cosine angle blend between a lit color (here, dark blue-grey) and a shadow color (black).
My shader draws from and builds upon code from a "rotting banana" shader, found at http://theboxthebox.com/work/3d/renderman_1/tech_breakdown/tech_breakdown.html. The banana shader code helps me generate the random dots for the light stippling. I then vary the size and frequency of these dots using the specular response, as previously described.
Shader Breakdown
Above are breakdown frames to further illustrate the effects of my shader on the final scene. The top frame shows the rock formation models with displacement applied, no lighting, and flat shading; the middle frame adds the scene lighting and a simple Lambert shader; and the final frame (bottom) adds my shader to the rock formations, with a backdrop shaded with textures pulled from the original image.