Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Cloth clipping through itself
#1
I'm having trouble where cloth is clipping through itself despite having self collisions on. My setup is an Obi Cloth with a proxy, since I want my cloth to appear to have some thickness. The proxy is no thick like the actual model, but is only one mesh 'layer'. The particles already have some thickness in the editor.

Here is a video of the problem occuring in my use case as I attempt to make the cloth behave like a "Zap Strap". Please note that this is obviously not the correct order of doing things for first aid (this is basically a first simulator project). I am also still working on my implementation of a velcro system so it is not yet self adhesive.

https://streamable.com/0ak8e9

In case it is helpful to see my setup, here are some screenshots of the blueprint with all visualizations on and the skin map (separated so you can see what is going on, but when I am 'done' editing I overlap the two meshes)

https://ibb.co/LZQHj1R
https://ibb.co/0DNNKyj
https://ibb.co/L11mS1M
Reply
#2
(27-11-2020, 07:18 AM)arkanis Wrote: I'm having trouble where cloth is clipping through itself despite having self collisions on. My setup is an Obi Cloth with a proxy, since I want my cloth to appear to have some thickness. The proxy is no thick like the actual model, but is only one mesh 'layer'. The particles already have some thickness in the editor.

Here is a video of the problem occuring in my use case as I attempt to make the cloth behave like a "Zap Strap". Please note that this is obviously not the correct order of doing things for first aid (this is basically a first simulator project). I am also still working on my implementation of a velcro system so it is not yet self adhesive.

https://streamable.com/0ak8e9

In case it is helpful to see my setup, here are some screenshots of the blueprint with all visualizations on and the skin map (separated so you can see what is going on, but when I am 'done' editing I overlap the two meshes)

https://ibb.co/LZQHj1R
https://ibb.co/0DNNKyj
https://ibb.co/L11mS1M

Hi Arkanis,

It's hard to tell where the issue might be, a couple things i'd check: make sure particle collision constraints are enabled in the ObiSolver. You can also add a ObiParticleRenderer component to your cloth the be able to see the particles at runtime and debug collisions. When the cloth is overstretched, gaps can open in between particles trough which the particles can pass.

let me know if you need further help with this Sonrisa.
Reply
#3
(27-11-2020, 08:56 AM)josemendez Wrote: Hi Arkanis,

It's hard to tell where the issue might be, a couple things i'd check: make sure particle collision constraints are enabled in the ObiSolver. You can also add a ObiParticleRenderer component to your cloth the be able to see the particles at runtime and debug collisions. When the cloth is overstretched, gaps can open in between particles trough which the particles can pass.

let me know if you need further help with this Sonrisa.

Particle collision constraints are enabled, set to parallel (I think I saw something about this reducing jittering, which I had a problem with), 2 iterations, and relaxation at 1. Would increasing iterations possibly help with this? I'll get back after I try some particle visualization as well.
Reply
#4
(27-11-2020, 10:26 AM)arkanis Wrote: Particle collision constraints are enabled, set to parallel (I think I saw something about this reducing jittering, which I had a problem with), 2 iterations, and relaxation at 1. Would increasing iterations possibly help with this? I'll get back after I try some particle visualization as well.

https://streamable.com/kehu2q

Here is a recording using the particle renderer. It seems pretty clear you are right that the cloth is stretched enough that the particles are able to settle in between each other. How can I combat this while still maintaining the stretchiness?
Reply
#5
(30-11-2020, 06:41 AM)arkanis Wrote: https://streamable.com/kehu2q

Here is a recording using the particle renderer. It seems pretty clear you are right that the cloth is stretched enough that the particles are able to settle in between each other. How can I combat this while still maintaining the stretchiness?

In your case, I'd try increasing particle radius in the cloth blueprint editor. By ensuring particles overlap in rest state, you will have some room for stretching before gaps appear in the particle representation.

In the general case though, there's no way you can make it stretchy and still have accurate self collision detection in a particle-based engine. This would require using full triangle based collision detection, that has traditionally been just too expensive for realtime use. We are working on it for Obi 6.0 though (see the last part of the following video):



This is currently under development and it will take a while to get released, as it requires a large paradigm shift for the entire engine: we're generalizing particles to n-dimensional simplices (points, edges, triangles and tetrahedra, in 0,1,2 and 3 dimensions respectively), and using a convex optimization algorithm to find contact points between them in a unified way. This is the recent research article this work is based on: https://mmacklin.com/sdfcontact.pdf
Reply
#6
(30-11-2020, 09:33 AM)josemendez Wrote: In your case, I'd try increasing particle radius in the cloth blueprint editor. By ensuring particles overlap in rest state, you will have some room for stretching before gaps appear in the particle representation.

In the general case though, there's no way you can make it stretchy and still have accurate self collision detection in a particle-based engine. This would require using full triangle based collision detection, that has traditionally been just too expensive for realtime use. We are working on it for Obi 6.0 though (see the last part of the following video):



This is currently under development and it will take a while to get released, as it requires a large paradigm shift for the entire engine: we're generalizing particles to n-dimensional simplices (points, edges, triangles and tetrahedra, in 0,1,2 and 3 dimensions respectively), and using a convex optimization algorithm to find contact points between them in a unified way. This is the recent research article this work is based on: https://mmacklin.com/sdfcontact.pdf

Thank you for your help with this. For now I will try increasing the particle radius and accept the remaining clipping while I wait for the release of Obi 6.0.
Reply