Traditional toon shading uses a 1D texture that describes how tone
varies with surface orientation relative to a given light source. In
this paper we describe two extensions to the basic algorithm that
support view-dependent effects. First, we replace the 1D texture with a
2D texture whose second dimension corresponds to the desired "tone
detail," which can vary with depth or surface orientation. This
supports effects such as levels-of-abstraction, aerial perspective,
depth-of-field, backlighting, and specular highlights.
Second, we further extend the toon shader to use a modified normal
field that can range from the original normals to a simpler set of
normals taken from an "abstracted shape." A global shape detail
parameter determines the degree of interpolation between the original
and abstracted normal fields. We explain how to implement these ideas
efficiently on the GPU via vertex and fragment shaders, and discuss
ways to extend our approach to alternative tone and shape detail maps.