Why does light pass through solid objects and surfaces in Rhino?

I feel like I’ve tried to find the answer to this question for weeks now but to no avail.

I’ll spell out a simple example I built in Rhino to demonstrate the issue I am having.

I made four planar surfaces, all on the xy axis. They are spread out vertically 4 feet from each other. I put a rectangular light just below the 2nd surface from the top facing down. That light illuminates the two planes below it. But, no matter what material I give the surface just below the light, and no matter how large I stretch it in the xy direction, it does not block the light for the surface on the ground plane. Even when I make the surfaces into extruded solids, the light passes through to the ground. Why is this?

I am trying to add lighting to the decks of a yacht, but only want the lights to illuminate the current deck they are above like it would in real life. I appreciate any insight you can offer. Cheers!



Can you post the 3dm file please and explain how you are testing the blocking of the light? For instance, is this in the Rendered display mode or when actually making a Render. If the latter, are you using Rhino Render or another plugin?

Hey Brian,

I actually hadn’t tried rendering it until you mentioned it. When I render the file the light is blocked as expected, thank you. Why doesn’t this occur in the rendered mode in the viewport?

Light Test.3dm (60.5 KB)

The Rendered display mode which uses OpenGL is going to be limited in how it accurately represents all the light types. Point lights and Spot lights will get blocked as you’d expect but rectangular lights are a special case and won’t. I’m not sure why exactly but @jeff would know. You can usually get specular highlights from them depending on the GPU though… however in your model, the reflection value and color of the material would need to change to see this.

Thanks for your help Brian. Cheers!