Light passes through solid objects?

I consider myself a fairly well versed Blender user, but this problem really confuses me, and I believe it should be fairly simple. Here are 3 images. The first is shows a simple blender torus, with an area (directional) light point at it from the side (viewport). How can there be light on both the outside, facing the torus, and this inside, where a shadow ought to be cast? The second image shows the problem via the blender internal renderer. The third image shows the problem, “fixed” with the cycles renderer. Is the blender internal just not capable, or is it something else? (Trust me, the light’s direction is only pointing in the y with slight z (up) rotation, it has no x rotation). This only happens with objects where one set of normals all face outward, and another face inward (any tube with thickness, be it this torus or a simple hollow cylinder with thickness).


Attachments



Light passing through objects = light casts no shadow?


Blender Internal’s lights cast no shadow by default. Cycles’ lights do.

In BI, spot-lights cast shadows.

There’s also a (very useful!) “shadow-only spotlight” that only casts shadows. Sometimes what you really want is the shadow, not any additional light here-or-there. Or, for compositing purposes, you want to know where the shadow is, and how dense it is in various places, and what object-IDs it’s falling upon. You can even use this in conjunction with Cycles renders, to get the “smooth-lighting goodness” of Cycles and precise, tack-sharp shadow effects. “The 3d effect” really come mostly from shadows; secondarily from specular highlights, and BI’s great for providing “a layer of data” describing those two things.

If you want a light to shine right through something without “seeing” it, a layer-specific light will do just that. Nevermind that such a thing could not exist “in the real world.”

@IkariShinji Setting the light to “Ray Shadow” worked in BI render, but it still doesn’t show up right in the viewport (I don’t think that’s much an issue though). Thanks!

@sudialsvc4 Good tips, I might use 'em someday. :slight_smile:

Thanks guys!

To get shadows to show up in viewport you gotta do this:

  • Set renderer to Blender Internal (to make the buffer shadow options available)
  • Add a spotlight and set it to use buffer shadow instead of ray shadow
  • Set viewport rendering mode to GLSL (press N and look under Shading tab)
  • Set viewport shading mode to “Texture” by pressing ALT+z