Drape falls 'past' the things it's draping over

I’ve noticed that when using the ‘drape’ command, the draped shape falls below the things it’s being draped on, which creates an unrealistic fabric. I’m trying to model a tent-like fabric that is draped over a structure as shown. Changing the spacing doesn’t seem to help.

Yes, that’s to be expected. Drape is relatively primitive, this is more or less how it works:

  • Project a rectangular grid of points onto the model in the direction of the view
  • In the U and V direction, use each line of points as the control points for a NURBS curve
  • Make a NURBS surface using those curves

The problem is that the edges of surfaces and other details in the model being draped are not considered when doing this, only where the projected points land. All data between the projected points is ‘invented’ via the control point curve. So if one projected point falls on an upper surface near the edge, and its neighbor falls on another surface below that, the interpolated curve may actually cut through the upper surface. Plus, as the points are used as control points and not as interpolated points, the surface does not actually pass through the projected points either.

So, Drape is really only good for draping over relatively smooth, low-relief objects. I think there are some plug-ins or procedures in Grasshopper that may be more appropriate for cloth-like draping or shrink-wrapping.

Edit:

I should perhaps add that it is possible to get a better result with a finer grid. To do so you need to turn off automatic spacing on the command line and set the U and V independently. You can set it quite high - there is a maximum limit of U x V number of points, but I can’t remember what it is - but remember, you will then create a very dense surface which will increase file size.

But note that it still misses the upper edges of the cube.

1 Like

Thank you very much for the thorough explanation. This is very helpful!