Physics Simulation Forum

 

All times are UTC




Post new topic Reply to topic  [ 73 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next
Author Message
 Post subject:
PostPosted: Tue Feb 20, 2007 6:57 pm 
Offline

Joined: Sun Jul 03, 2005 4:06 pm
Posts: 757
Location: Bellevue, WA
You can look for this paper which compares quite some different approaches and should be fairly easy to implement (you will this paper using the link I will provide below):

M?ller - A Versatile and Robust Model for Geometrically Complex Deformable Solids


Quote:
however if for example we want to parametrize realistic materials in terms of poisson ratio and young modulus that way of preserving the volume wouldn't do it. There is also some coupling between the edge preservation constraints and the volume preservation constraints. So it maybe a good choice for many cases but i would not exclude the other options.



Yes, I agree on this. I find it personally quite hard to model different materials using sequentiel projections. On the other side this method is unconditionally stable. There is another method based on shape matching to model deformable objects which might be used in Ageia 2.6 (I am guessing here). You find a 2D example implementation on M. Muller side:

http://www.matthiasmueller.info/

HTH,
-Dirk


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 20, 2007 7:36 pm 
Offline

Joined: Tue Feb 20, 2007 4:56 pm
Posts: 179
Thank you very much for the guidance. Sorry, yes I said force but I was really looking at implementing it as a constraint.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 20, 2007 8:09 pm 
Offline

Joined: Sun Jul 03, 2005 4:06 pm
Posts: 757
Location: Bellevue, WA
Your welcome. Let me know if you need help with the gradients.


Top
 Profile  
 
 Post subject:
PostPosted: Tue Feb 20, 2007 9:15 pm 
Offline

Joined: Tue Feb 20, 2007 4:56 pm
Posts: 179
AntonioMartini wrote:
There is also some coupling between the edge preservation constraints and the volume preservation constraints.


Follow-up question on this method: if you scaled the edge lengths in your edge preservation constraint by, say, the ratio of the current-to-original volume, it seems that would help decouple the two constraints. Right or wrong?

Of course, since the edge is likely shared between several tetrahedrons, I suppose you would need to come up with a combined volume ratio (perhaps the average current-to-original volume ratio), so maybe it's less than practical.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 10:05 am 
Offline

Joined: Wed Jul 27, 2005 10:28 am
Posts: 135
Location: SCEE London
bone wrote:
AntonioMartini wrote:
There is also some coupling between the edge preservation constraints and the volume preservation constraints.


Follow-up question on this method: if you scaled the edge lengths in your edge preservation constraint by, say, the ratio of the current-to-original volume, it seems that would help decouple the two constraints. Right or wrong?

Of course, since the edge is likely shared between several tetrahedrons, I suppose you would need to come up with a combined volume ratio (perhaps the average current-to-original volume ratio), so maybe it's less than practical.

one way to go about this could be to create a constraint that does everything in one go, something like for example:

C(p0,p1,p2,p3) = 1/2*C0(p0,p1,p2,p3)^2 + 1/2*C1(p0,p1)^2 +
1/2*C2(p0,p2)^2 + 1/2*C3(p0,p3)^2 + 1/2*C4(p1,p2)^2 + 1/2*C5(p2,p3)^2 + 1/2*C6(p3, p0)^2

where the C0 is the volume conservation constraint and the others Ci are the edge length preservation constraints. Whatever form of C we choose the following properties seem to follow:

1. One stiffness value for each tetrahedron. so its easier to switch material between tetrahedra belonging to the same volume.
2. iteration is over tetrahedra
3. at each iteration each edge is resized n times, where n is the number of incident tetrahedra

in the end we may even realise that the extra parameter adds some desired flexibility.

cheers,
Antonio


Last edited by Antonio Martini on Thu Feb 22, 2007 10:33 pm, edited 3 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 10:13 am 
Offline

Joined: Wed Jul 27, 2005 10:28 am
Posts: 135
Location: SCEE London
Dirk Gregorius wrote:
On the other side this method is unconditionally stable.

implicit FEM are as well but of course they are a totally different beast:)

Dirk Gregorius wrote:
There is another method based on shape matching to model deformable objects which might be used in Ageia 2.6 (I am guessing here). You find a 2D example implementation on M. Muller side:

to me the problems of shape matching are the following:

1. inferior quality if compared to other methods
2. collision detection becomes far more complicated. If we have a tetrahedral mesh it's very easy to tell if a point is inside a mesh.
3. cannot have different materials in a single mesh. See also the skin layer example i made earlier.

now it could well be that

1. The quality is sufficient for the purposes of our application.
2. we dont have collision detection between deformable bodies.
3. we dont have the need of switching materials in a single body.
4. we want to minimize the storage requirements.

So thats why like i said in my previous post every method has its own place depending on our objectives and constraints.

regarding collision detection and shape matching the paper:

http://graphics.ethz.ch/~mattmuel/publi ... _SIG05.pdf

states(section 6) that they have used

http://graphics.ethz.ch/~mattmuel/publi ... _vmv04.pdf

which requires a tetrahedral mesh. i Actually thought they used:

http://graphics.ethz.ch/~mattmuel/publi ... _pba04.pdf

of course we can keep the tetrahedral mesh and "shape match" clusters of vertices belonging to the volume, then we can use the connectivity only for collision detection purposes. However doing so we would loose one of the main benefits of shape matching.

cheers,
Antonio


Last edited by Antonio Martini on Thu Feb 22, 2007 8:20 am, edited 2 times in total.

Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 3:01 pm 
Offline

Joined: Tue Feb 20, 2007 4:56 pm
Posts: 179
Thanks again Antonio and Dirk. I'll chew on that for awhile.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Feb 21, 2007 3:15 pm 
Offline

Joined: Sat Aug 19, 2006 11:52 pm
Posts: 198
Dirk Gregorius wrote:
Your welcome. Let me know if you need help with the gradients.


An easier (but lazy) solution is to use a math program to derive the gradients for you. I can recommend http://www.livemath.com/, but I'm sure Matlab or Maple could do the same thing.


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 10:57 am 
Offline

Joined: Fri Dec 08, 2006 10:16 am
Posts: 23
I have implemented this method and I should say that I expected something more :)

First, the method suffers from "super-elastic" effect. (I tried to fix this by using semi-rigid approach proposed by X.Provot, but it took no effect). 8 meter cloth behaves pretty good, super-elastic effect appears with size of 1.5 meter(I tested 37x37 cloth grid with 9.8 gravity, 5 solver iterations). Increasing number of iterations helps, but I dont want to use about 15 iterations since it hurts performance.

Second, it's hard to get stable self-collision - "testing continuous collisions is insufficient if cloth gets into a tangled state, so methods like ones proposed in "Untangling cloth"(David Baraff et al.)".
By the way, has anyone implemented self-collisions with this or any other approach except implicit Euler("Large steps in cloth simulation")? :)

Now I think it would be good to me to take a look at the methods used by Bridson
(are they suitable for the realtime simulation?, any links are greatly appreciated :))


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 1:57 pm 
Offline

Joined: Wed Jul 27, 2005 10:28 am
Posts: 135
Location: SCEE London
stbuzer wrote:
I have implemented this method and I should say that I expected something more :)

First, the method suffers from "super-elastic" effect. (I tried to fix this by using semi-rigid approach proposed by X.Provot, but it took no effect). 8 meter cloth behaves pretty good, super-elastic effect appears with size of 1.5 meter(I tested 37x37 cloth grid with 9.8 gravity, 5 solver iterations). Increasing number of iterations helps, but I dont want to use about 15 iterations since it hurts performance.

Second, it's hard to get stable self-collision - "testing continuous collisions is insufficient if cloth gets into a tangled state, so methods like ones proposed in "Untangling cloth"(David Baraff et al.)".
By the way, has anyone implemented self-collisions with this or any other approach except implicit Euler("Large steps in cloth simulation")? :)

Now I think it would be good to me to take a look at the methods used by Bridson
(are they suitable for the realtime simulation?, any links are greatly appreciated :))

5 iterations for a 37x37 cloth is definitely too low for any iterative method. If you cannot have more than 5 iterations, it's very likely that you cannot have any of the much more expensive things like self collision detection.

cheers,
Antonio


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 2:58 pm 
Offline

Joined: Fri Dec 08, 2006 10:16 am
Posts: 23
I planned to use self-collision feature only for some very important clothes, where self-intersections are clearly visible. But for a simple clothes it is too expensive to have 6-7 ms per cloth piece.
Anyway, this method one of the best I have ever seen for realtime applications.(BTW, pity, but I have only seen many Verlet and some implicit Euler solvers, what other approaches exist(velocity based?)?)


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 3:53 pm 
Offline

Joined: Tue Jul 26, 2005 10:11 am
Posts: 15
Hi,

stbuzer wrote:

...

Now I think it would be good to me to take a look at the methods used by Bridson
(are they suitable for the realtime simulation?, any links are greatly appreciated :))


Definitely not, forgot about realtime simulation with complex piece of cloths/garments, especially with self collisions.

Regards,

Carlo Lanzotti


Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 4:55 pm 
Offline

Joined: Wed Jul 27, 2005 10:28 am
Posts: 135
Location: SCEE London
stbuzer wrote:
I planned to use self-collision feature only for some very important clothes, where self-intersections are clearly visible. But for a simple clothes it is too expensive to have 6-7 ms per cloth piece.
Anyway, this method one of the best I have ever seen for realtime applications.(BTW, pity, but I have only seen many Verlet and some implicit Euler solvers, what other approaches exist(velocity based?)?)


you may want to consider something like the following:

http://www.cg.ces.kyutech.ac.jp/paper/ca01.pdf

a coarser grid will have faster convergence, however this will worsen the collision detection problem, especially if done at vertexVsFace level as you would have longer edges.

cheers,
Antonio


Last edited by Antonio Martini on Thu Feb 22, 2007 6:25 pm, edited 1 time in total.

Top
 Profile  
 
 Post subject:
PostPosted: Thu Feb 22, 2007 6:18 pm 
Offline

Joined: Sun Jul 03, 2005 4:06 pm
Posts: 757
Location: Bellevue, WA
You can really forget about the Bridson stuff. It is really to slow. You can try to use a coarser mesh as Antonio suggested and then either use this to deform a render mesh (something I like to try next since this solves the problem the cloth is always thin like silk) or you subdivide (e.g. Butterfly). For the later see S. Melax post here on the forum


Top
 Profile  
 
 Post subject:
PostPosted: Fri Feb 23, 2007 8:10 am 
Offline

Joined: Fri Dec 08, 2006 10:16 am
Posts: 23
Thank you. I'll take a look at these methods.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 73 posts ]  Go to page Previous  1, 2, 3, 4, 5  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group