Extruding "shadows" from curve

(Rheinason) #1

Seemingly simple problem that has me stumped, I’m looking for an easy way to create shadows for a site plan that I’m doing. Here’s sort of the dream scenario:

So in reality it’s an extrusion made on a plane, if that makes sense. But that results in an invalid surface and will not be draw. Another solution is to extrude and give the direction a small Z value. That creates a polysurface which can then be Make2D’d into the correct curves, but that seems very cumbersome. My current workflow is just drawing the shadow curve manually, but that can become both cumbersome and sometimes a bit complicated(for example when curvy shapes are involved).

(Pascal Golay) #2

Hello - is the shadow always hitting just the ground plane?


(Rheinason) #3

It’s all just 2D geometry. So yeah just a Plane in this case. When I have 3D Geometry I often use a Python script of yours(ShadowCurves.py I think it’s called).

(Pascal Golay) #4

Ah, OK, the input is just curves - I see, I thought you were showing a plan view of 3d… I’d have to think about that… seems like it ought to be possible.



to get this to work on any kind of object you have to split the boundary on the edges where is shall throw the shadow from, then copy that boundary and use loft. to find the boundary at more complex shapes you can construct 2 lines with option tangent plus perpendicular from a 45° line.

edit: you can of course also just copy that boundary out and create 3 lines to close it. in any way you would have to hatch the outcome.

(Jeremy) #6

How’s this?

Draw the entire ground plan without shadows in 2D, then select all, extrude upwards and cap to make objects 3D. Turn on sun and manually set to come from southwest at about 45 degrees and set top viewport to render.

This has the advantage that you can tweak the shadows by changing the object height and/or sun position. The disadvantage is that if you want really black shadows you will have to postprocess in Photoshop or similar.



I would use _curveboolean instead of loft but yes, this could be the workflow.