Re[1]: [ODE] Negative penetration depths

Thomas Harte thomasharte at lycos.co.uk
Wed Sep 4 12:16:01 2002


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--=_NextPart_Caramail_0236941031166900_ID
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit

Nate W :
> What are you trying to achieve with negative penetration? Are you trying
> to get rid of an oscillating pentrate/no-penetrate problem?

I'm performing mesh on mesh collisions. But in my world polygons may be two faced, or 
if you prefer to think of it that way, my objects may be infinitely thin. They also are not 
necessarily convex. Therefore I start getting into trouble if a vertex 'breaks through' one 
of these infinitely thin polygons, because it is not obvious which side of the polygon it 
should be on. In particular, consider that it may start on the 'wrong' side of the polygon 
as a result of the contact constraint not having fully fixed the problem from a moment 
ago, and that it may interact with many polygons at once, so using a state based design 
could become very memory expensive.

Therefore, in my solution, when an object is found to intersect another, a binary search 
(see the other thread on stepping backwards in time / restoring an old state) is done 
through the step time to find a point before it intersected, but when it was 'very close'. 
The constraint is added then to definitely keep the vertex on the correct side of the 
polygon and future problems are avoided at root.

The secondary advantage of this solution is that I explicitly trade off maximum 
penetration against processing time, rather than indirectly by means of picking a time 
step length. Unfortunately it does not solve the problem of tunnelling, but that one I have 
been able to avoid by starting with a relatively low time step.

Naturally, I know that mesh on mesh collisions involves checking edges against edges 
also, which is handled in a similar way.

Martin C. Martin :
> My understanding doesn't involve a differential equation. Basically,
> there are two parts to a constraint. One says "the velocity of this point
> on the object needs to be at least this much in this direction." 

Obviously the non-contact constraints are differential equations, since most of them 
explicitly define allowed forces as a function of position. ODE gives the game away on 
that front in any case by explicitly having a small section on Integration - section 3.3.

Now to explain the confusion - my understanding, gained principly from those 
Siggraph '97 papers that seem to be some sort of definitive source for computer people, 
is that a contact constraint says :

"this point must not travel beyond this planar distance"

This time making velocity a function of position, and again yielding a differential equation.

> And
> the penalty method the way you've described it -- apply a greater force
> the more the constraint is violated -- doesn't require a solver and
> doesn't work very well.

No, but then the fact that it doesn't need a solver reveals nothing, when we have already 
decided that a solver is needed regarless of the existance or not of a penalty method in 
addition to the real hard constraints, and the fact that it doesn't work very well isn't 
relevant. The hard constraint means that the problem of interpenetration can't get any 
worse, and the soft one (i.e. the penalty method) makes the problem get a little better. 
So the two combined make a better solution than either individually.

But I will try your box example, since it does seem to disprove this theory.

> > In the case of negative penetration depth, it is my fear that ODE may still try to 
impose
> > the penalty method, but in using a negative distance, will pull the objects together 
rather
> > than letting them move correctly.
> 
> This would be very easy to test...

Yes. It was! And the result is that adding a contact constraint with a negative penetration 
depth does cause the two objects to be sucked together, making me think that 
regardless of how hard the hard constraint actually is, the penalty method is in there 
somewhere.

-Thomas

P.s. apologies if this message appears multiple times, when my web mail times out it 
never reveals where it timed out in terms of the process of sending the mail then loading 
the advertising heavy send comfirmation screen.
______________________________________________________
Check out all the latest outrageous email attachments on the Outrageous Email Chart! - http://viral.lycos.co.uk	


--=_NextPart_Caramail_0236941031166900_ID--