I am trying to create a plane that will stop shadows that hit it, but will not cast a shadow itself. I am using Blender Internal and have tried a combination of "Receive", "Cast", "Shadows Only" and "Cast Only" to no avail.

Keeping "Receive" on but turning "Cast" off just allows shadows to pass through it.

In this image I'm trying to get 00 Caster to cast a shadow on 01 Blocker, and to have neither of them cast a shadow on 02 Receiver (which can receive shadows from other objects). Would Light Groups be a way of doing this?

Here's a link to the blend.


1 Answer 1


I replicated your setup and I think the answer is simply that, no it is not possible.

The closest you might get in my opinion would be disabling shadows for CASTER and/or BLOCKER by unchecking traceable in material options. And it fakes the desired effect but won't hold true in general - it is not "shadow blocking"

Using light groups you can achieve a similar effect, in that you might have two similar lights, one affecting CASTING and BLOCKER (but not RECEIVER), the other exclusively lighting the receiver. But this is not shadow blocking either.

What I understand is that you want it so that... - if a backward ray (from RECEIVER to the light) hits blocker first, RECEIVER is illuminated regardless of anything else in between light and the receiver. - if a backward ray doesn't hit blocker first, process shadows normally.

As far as I know, options to cast shadows without raytracing have been removed from Blender (no shadow maps anymore). I'm not sure what you might achieve with an older version (maybe pre-2.5x if my memory is correct). This is relevant to your problem in that, in raytracing shadows are simply a by product of not receiving light. So I'm not saying that it's impossible with raytracing, but they would have to implement "shadow blocking" as a specific feature for this to work.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .