You're blocking ads, which pay for BlenderNation. Read about other ways to support us.

Blender Gets Irregular Shadow Buffers


isbsmall.pngNormally 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.

From Ton's explanation:

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 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.

Windows build from me
Linux build from Rui Campos

About the Author


Just a guy really into 3D, especially where Blender is concerned.


  1. simple benchmarks of the default scene with a plane under the cube and AA disabled and lamp set to spot.

    # Single thread
    Raytraced: 2.25sec
    BufShadow: 1.26sec (defaults)
    Irregular: 1.00sec
    no shadows: 0.81sec

    # Threads enabled
    Raytraced: 1.22sec
    BufShadow: 0.76sec (defaults)
    Irregular: 0.5sec
    no shadows: 0.42sec

  2. @Everyone
    I forgot to mention the transparency aspect of irregular shadow buffers so I added it to the post. So hopefully not too maybe people missed it. You can find that control in the material panel (with the shadless and Env buttons).

    That's the way I see it :)

  3. I've only played with it for five minutes, but they seem like a great addition. Is there any chance of them getting set as the default shadow casting method? Seems silly to incorporate a nice new method and then force users to switch to it every time a new lamp is created. ^_^;

  4. Hmm, no more soft shadows? I rarely use ray shadows anyway, because I dislike sharp shadows. They are too unnatural. No real shadow is perfectly sharp & crisp. Then I read this:

    "What doesn't work...
    Since this method directly works with the samples of the scanline render system, shadow casted by Irregular Buffers are not visible for ray-traced mirrors, ray-traced transparent or for solid Halos.
    Soft shadow is also not possible, nor is 'halo step' possible. "

    So, this does not seem to be that useful...

  5. It looks like you can select different types of shadow buffers, one being Irregular Buffers and the other being the other one.

  6. i can see where this could be usefull, places where speed is critical the sharper shadows might be what you want, i think i shall stick with radiocity rendering for now though.

  7. roofoo: your post scared me until I downloaded the build and tried it out. You can still do things the old way. There is a drop down menu that lets you choose between "classical" and "irregular" shadow buffers. The irregular shadow buffers are noticeably faster though.

    This is a pretty cool developement. What would be really nice is if we could use buffered shadows with other kinds of lamps.

  8. Great, I just recently rendered an animation but the shadows were all stretched and mutated until around the 40th frame, Maybe this will fix it.

  9. Michael Crawford on

    i'd update my test build for mac on the forums but i'm having trouble accessing CVS, or for that matter. Odd. Will try tomorrow and post an updated mac ppc build.

  10. @GBOI
    You should totally throw that issue in the bug tracker.

    @Michael Crawford
    If you are making a PPC build I'm sure it would certainly be welcome on the BlenderBuilds site. Would you be up for that?

  11. One Question: what's the difference between the 101406%Blender%20CVS[1].zip and the bl_20061015_sse2_cvs[1].zip?
    Both have the same Datas inside, which one shall I install?

  12. Unless Ton is building the framework for something bigger, I fail to see any real advantages to this.

    Most of us use spots with buffers to eliminate the horrible hard edged look of raytraced shadows. The transparency is also utterly unrealistic, this simply doesn't happen in real life, and you can't define alpha transparency with textures, which is what a lot of people would have wanted more than any of the current features. Also invisible to rayracing? c'mon...

    So it's slightly faster than raytraced shadows, big deal. Im with Roofoo on this.

  13. Thanks, that's another good feature! I think, other artist would want that more than the the other feature^^

    Ummmm... That's a little OT, but:
    You can make games with 3D-Filters (like anagraph...)
    Cant you make it avilable for Anims and Pics aswell? That would be nice; The next great Blenderfilm would be able to have ´"true" 3 dimensions^^

  14. I don't know that much about cartoon rondering, but this might have a useful application there. I don't think many photorealistic scenes will be needing this. Eh, we'll see.

Leave A Reply

To add a profile picture to your message, register your email address with To protect your email address, create an account on BlenderNation and log in when posting a message.