Toon shading is 3D technique based on a specific shading method, which consist in recreate the look of traditional 2D animation cels with the use of flat colours for shading 3D objects in a unrealistic way.
This shading technique has been used in several games. There are several games that use this tehcnique, such as: Ni No Kuni, Legend of Zelda, Ōkami, Naruto Shippuden, etc.
There are two main topics in Toon shading, First is shading it self and the second one is Outline.
Toon shading used the enhancement of Diffuse/Lambertian Reflection, called Half Lambert.
What is Diffuse reflection?
When incoming light touch the surface it will be reflected off the surface in all direction equally. The light intensity of a point in the surface can be computed using the surface normal vector N and the light vector L
Half Lambert is Technique first developed in the original Half-Life. Way of getting the lighting to show the surface of an object in low-light areas
Example of Half lambert equation in CG Language:
For the outline we can use Silhouette. A silhouette is an edge shared by one front and one back-facing polygon.
To get the outline more appeared we can enlarge back-facing polygon.
If you look into unity toon shading package, you will see following code in ToonBasicOutline shader to produce the outline.
Try out with 3D Model
This is the result when i tried out a 3d model with diffuse shading and toon shading.