(Quoted from Pro WPF in C# 2008, Second Edition, Matthew MacDonald)
Before you delve into WPF lighting, it’s important that you realize that the WPF lighting
model doesn’t behave like light in the real world. Although the WPF lighting system is constructed
to emulate the real world, calculating true light reflections is a processor-intensive
task. WPF makes use of a number of simplifications that ensure the lighting model is practical,
even in animated 3-D scenes with multiple light sources. These simplifications include the
following:
• Light effects are calculated for objects individually. Light reflected from one object will
not reflect off another object. Similarly, an object will not cast a shadow on another
object, no matter where it’s placed.
• Lighting is calculated at the vertexes of each triangle and then interpolated over the
surface of the triangle. (In other words, WPF determines the light strength at each corner
and blends that to fill in the triangle.) As a result of this design, objects that have
relatively few triangles may not be illuminated correctly. To achieve better lighting,
you’ll need to divide your shapes into hundreds or thousands of triangles.
Depending on the effect you’re trying to achieve, you may need to work around these
issues by combining multiple light sources, using different materials, and even adding extra
shapes. In fact, getting the precise result you want is part of the art of 3-D scene design.