Normally we would wait for the October CVS report we will post at the end of the month, but this item was too cool to keep quiet. Ton recently committed a new type of shadow buffer to the CVS that takes advantage of some very interesting new methods to give Blender greater functionality.
The classical shadowbuffer - as supported in Blender until now - creates an image with Z values, as seen from a Spot Lamp, and uses these Z values to determine if a shadow gets received. By carefully tweaking the buffer resolution and clipping information you can define the quality of shadows. However, this system always will suffer the limitation of a buffer size, and it has to be calculated for an entire scene in advance, making it not part of the threaded tile-render system.Recently several papers have been published on a successful alternative method. Instead of creating a regular image from the Lamp point of view, it maps all to-be-rendered samples (the image pixels) to "Lamp space", and uses these samples to determine if faces in a scene are casting shadow. This method is called "Irregular Z buffering" because all such samples cannot be simply stored in a regular X-Y grid in Lamp space. Because each sample is individually tested for shadow, it results in crispy and sharp shadows just like for ray-traced shadows. This method now is available in Blender.
A great technical explanation - but what does it mean? What it means is that irregular shadow buffers can be used to produce hard shadows that are as accurate as those produced by a ray tracer or shadow volume-based renderer and we keep the performance advantages of standard shadow mapping.Â Another bonus isÂ that it allows transparent shadows (through theÂ "Shade A." button in the material panel (along with the shadeless and Env buttons))Â of which you can see examples of on the blender.org site.
You can check out this great new feature in the latest CVS build by checking it out in the spotlight's shadow buffer option. You can find a Linux and Windows build on Blenderbuilds.