engCave_0001.png

Cave Lighting - Shader Writing

I have developed a shader that renders light using stippled dots, to mimic a style used by the 2D illustrator Kilian Eng.

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

I also rigged and animated the monster’s shadow, using 2D shadow puppet illustrations created by another team member.

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.