1
$\begingroup$

I was following a tutorial on YouTube, and the presenter said that he did not change the default options other than enabling self-collision and increasing the collision object's friction from 5 to 10. His looks like the first image below, but when I tried that, the cloth goes down past the top surface and stops at the bottom surface (second and third images below). Why is it so?

I had a previous problem with cloth, and it was due to the objects' small size. This time, I made sure that both the cloth and the cube are large enough. (Cloth=7.68*8.22*1.99m, cube = 7.68*7.68*0.897m)

The project file can be downloaded from here.

enter image description here enter image description here enter image description here

$\endgroup$

1 Answer 1

3
$\begingroup$

Seeing objects fall into another even with collisions on, always makes one word pop up in my mind, Normals.

They are the problem here and at the same time the solution.

The object below the cloth object is acting like it's a box, nicely taking the cloth object fall inside it. If you go in the "Viewport Overlays" and activate the "Face Orientation" checkbox, you'll see that the lower objects normals are showing red, which indicates that they are facing inside.

This is essentially making the supposed to be mattress a box, as the collision with the top will be ignored since there is no collision with the backside of the topside, but once the cloth object is inside the mattress, it's captured.

  1. Select the mattress object and go in "Edit Mode" with Tab
  2. Select all vertices with A
  3. Open the "Normals menu" with Alt+N in the Viewport, and click on "Flip" (in this case all normals are facing the wrong way, so this is easy, other times you may need to use "Recalculate Outside").
  4. You can deactivate the show "Face Orientation" again.

Here a little visual aid/explanatory video:

Culprit-> Normals

[Regarding the issue with the size of your objects before]

You mentioned the size of the objects, while it usually is not as much of a problem, there are cases when the size of the object is too small and results in the simulation failing. That is because the simulation is based on steps, where each step there is a check on collision, which then leads to a more complex resolving of the situation. That said, too small objects can be stepped over, as in one step the collision would not yet happen, and the next step the simulation is already past the object, thus resulting in no collision at all.

For completeness sake i mention rigid bodies here too, since both have their settings at different places.

  1. The rigid body related "Steps Per Second" value can be found here: enter image description here

  2. The cloth related "Quality Steps" value and "Quality" related to collisions can be found here: enter image description here

Happy blending.

$\endgroup$
2
  • $\begingroup$ Thanks you. Come to think of it, I previously had another problem with a doughnut, and flipped normals was the cause. But I had not flipped the normals myself in the first place. Do you know why were the normals flipped? In this question, the mattress (bottom cube) was created as a cube, then I added a few loop-cuts on the edges, and then applied subdivision and smooth shading. I am using Blender 2.81a (official release). $\endgroup$ Jan 6, 2020 at 1:09
  • $\begingroup$ Sadly it's not possible for me to figure out where the Normals got flipped. There are too many things one does while modelling, and some actions can result in bad Normals, that's why i highly recommend to check the Normals in between. $\endgroup$
    – Xylvier
    Jan 6, 2020 at 1:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.