Can I get a (simplified) explanation on Lambert and diffuse shading?

Light from any direction hits a surface, penetrates it for a very slight amount – which will give some absorption, and then it gets re-radiated in a color-filtered way equally in all directions. The path back to the surface will give absorption too, proportional to the distance D traveled through the object surface.

As this distance D is inversely proportional to the cosine of the exiting angle (D=D0/cos(a)), the intensity of the diffuse light in that direction will be proportional: I = I0 cos(a). This is the angular distribution of outgoing, diffuse light, according to the mathematician J.H. Lambert (about 1750). At perpendicular scattering, angle a=0 so cos(a)=1 and the response is maximal, while at parallel scattering cos(a)=0 and there is no response at all.

And since cosine calculations are hardwired into modern CPU electronics, this is a speedy rendering approach by any means. Therefore, Poser includes Lambert shading into Diffuse (see the basic and intermediate articles on this). This offers a resource-friendly first step towards more realistically looking renders. And, for people who want more steps in that direction, Poser offers alternatives like Clay.

Now, look what will happen to the render result. A specific area on the render plane (say: a pixel), marked green in the illustration, gets its light from an area on the object surface (marked green as well). At skewer angles a between surface normal and camera, this area on the object gets larger: A = A0 / cos(a).

At skewer angles such an area emits less light per unit of surface (cm2 or alike) and the resulting amount of light onto the pixel in the render plane is I * A = I0 cos(a) * A0 / cos(a) = I0 * A0 is a constant

So the Lambert shading not only matches a nice explanation on diffuse lighting, it also makes that the intensity of light in the render result does not depend on the camera angle to the surface. Because at skewer angles the pixel in the render represents a larger area on the object surface, which diffuses less light towards the camera, and both effects cancel out.

Look at the light

This leaves the effect of the incoming light itself. At skewer angles, the same amount of light will hit larger and larger areas of the object surface, so the intensity per unit of surface decreases accordingly: L = L0 cos(b) . Besides the math, this means that the extent to which shading reveals the shape of an object, depends on the ‘directivity’ of the light only. Point lights are quite directive, even a flat surface it lit under varying angles. An infinite light is less directional, a flat surface is evenly lit but a ball is not. IDL lighting is hardly directive at all, the light comes from all directions and all surface areas are equally lit whatever the shape of the object. Hence the shape of objects is less revealed, and objects will look flat.


Left: point light nearby, the edges get darker faster. Mid: Infinite light. Right: IDL, the ball looks like a disk.

Next >

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.