I’m following Blender development by every people involved, from artists to official coders.
I’m pretty happy with all the features they’ve accomplished, there are features for everything, from fence making, to geometry spread-sheet, vehicle and building generation, the incredible scatter add-on… etc
It’s exciting using Blender and having the possibility of using all these features.
But there is only one single thing that prevents me switching to Blender from Maya, and obliges me to keep up with it: cloth collision! My projects involve very specific and accurate cloth collision - such as for bed mattress, breasts, bags, and a lot of other stuff, and in that matter, Maya provides you with incredible tools. Unfortunately, whenever I use Blender’s cloth system, the collision dynamics are not ok, they just turn the vertices mad when I land something over a cloth mesh, it gets twitchy and fuzzy and simply won’t stop iterating the collisions in a funky fashion, as for in Maya, collisions run troubleless. I’ve tweaked everything possible already and is something that is knowingly bad.
If only developers could really solve this up, this would be a dream come true, because all the possibilities Blender gives you are unmatched! It’s pure creation, procedural, smart creation, but my projects demand a lot of excellent collisions, and that’s literally the single drawback that turns my chance of using Blender impossible! I’ve thought about an intergration, but it’s unbearably unefficient.
Please, could somebody manage this? Even cloth interactions and dynamics are good, it’s only about the collision, when a collider lands and stays over the cloth mesh, it simply won’t stop moving, it’s frustrating! Please, help us with this! Pleaaase!
can you show us an example with a blend file attached so we can help ?
I your file if i just crank up the quality steps of both the solver and the colliders its pretty much stable, although i couldn’t get something stable with self collision on, it would help if you show us a reference of how it’s supposed to behave exactly
Sure! This is from Maya, with minimun iteration/quality settings and a huge amount of force countering the collider poking, such as compression resistence and pressureimcompressibility
Left one is your original mesh, normals recalculated, right one is the same but with a subdiv after the cloth sim and a boolean so you can see the collision precision
1- i removed your cloth setting, added a new one and only changed a few settings
2- your normals were reverted, it was on purpose ? i recalculated the normals mesh with shift +n
3- in the screenshot you will find what i changed from the settings
on top of that i have self collision on, in your original file activating self collision made the mesh explode. Air viscosity is an important setting, if you don’t want your mesh to do weird movement back and forth, just crank up that setting.
Here’s an example of what kind of collision the solver can do, this example is made by lucas, the one that developed the collision system https://twitter.com/LucaRood/status/1044979412683436032
Huh…Apparently the normals play a huge job on this right?
That is intriguing because I made this mesh from a cube. I wonder why is Blender not being efficient with normals generation?
Anyways, the collider pokes marvelously, but the point is that I need it pressing the cloth and stopping.
And even with these setting it still happens. I could go further, tweak other several settings and have a decent result, but what’s the point? Will I have a precise material type simulation (leather, rubber, etc)? In Maya you tweak cloth setting to further finess the material behaviour, because I immediatly have a stable result in the first place, but in Blender you continuously tweak them in order to hopefully have any mild result.
I’m no expert but it can be felt the there is something which-so-ever that is not right about the collision algorithm. Perhaps clamping vertices movement down and/or making them follow the collider’s vector as soon as collision takes place? Idk, the fact is that I can’t work with precision the way it is so far, it’s fine for flags or curtains but to have a fine interaction between objects? That’s not the case currently, unless in a very unintuitive complicated fashion.
Raising the quality steps to a higher value (I used 20) is enough to fix the “jumping” effect, if things are still wonky, crank up the damping settings (except bending). If the bed looks like it’s “sliding” try raising the friction in the “collider” settings of the ground and the capsule.
At least that’s how it worked for me, it might be something else, depending on the situation.
Yes, I see, but that’s not the point, if I change damping it will turn into a rubber, what if I don’t want rubber? You see, the question is about precision. I’ve been tweaking a lot of settings in the last weeks, sometimes I get better result on collisions, but if anything gets tweaked any further than is very likely that collision will get once more screwed. I figure collision algorithm is not good the way it is right now, could be possibly a mismatch between dynamics and collision systems perhaps, but there is something not quite right in order to make good precise dynamics. I’m bringing this to your attention because I don’t see any updates or news about the dynamic systems, I think collision needs a certain revamp now.
Please, I still need to know if someone agree and if there is something that I might be missing here!
I agree that the cloth sim settings are not intuitive at all, but the collision solver is pretty solid IMO, I haven’t used Maya in a while so I can’t say if it works the same or Maya’s is better but I think it may be just a case of very bad defaults on the Blender side, sometimes the default values are just not setup properly for a good result out of the box. Speaking about defaults, did you try the cloth presets? They’re pretty simple but could give you a good idea to begin with.
In my startup file I set the general quality steps at 10 by default, the Collisions settings quality also at 10, and distance for both Object and Self Collisions at .005 (if the scene units are set at meters, so this value would be 5mm).
Before doing any sim in Blender you should always check normals (as suggested before) and transformations, so make sure you apply any transformation on the objects before doing the simulation. The scale of the objects also plays a big role, in my experience oversized objects tend to have less accurate collisions, by default 1 Blender unit = 1 meter, so keep that in mind and try to setup your objects with real world scales.
Hope this helps a bit
Here’s the file you shared before, I reset the cloth settings and did the setup as I explained in the post above. I also did two more changes to the file: added a vertex group to the base vertices to keep them static in place, using it as the pin group in the Shape settings; and put the subdivision modifier after the cloth.
The sim is baked but you can delete the cache and play with it.
Thanks for the consideration. I think I found out what is happening and what plays a huge part on that is ‘self collision’ propertie. In this example I provided self collision is not important because the mesh is totally convex and homogenous, but in other examples, when I press something over the mesh, vertices spaces get closer and therefore they can’t stop colliding! The problem is, I need self collision to work, not for this example, but for others. Damn! Self-collision is faulty in that sense! Hope they see it and fix it! Cheers