Re: How to find the intersection point of two intersecting OBBs
- From: "cr88192" <cr88192@xxxxxxxxxxxxxxxxxx>
- Date: Fri, 18 Nov 2005 07:47:19 +1000
"Dave Eberly" <dNOSPAMeberly@xxxxxxxxxxxxxxx> wrote in message
news:U53ef.8514$2y.6707@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
> <mike.jacobs@xxxxxxxxxxxxxxxxxxxxx> wrote in message
> news:1131985413.709344.170110@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
>
>> I have been using David Eberly's detailed documentation
>> (http://www.geometrictools.com/Documentation/DynamicCollisionDetection.pdf)
>> as a guide to implement the determination of the intersection point. I
>> have got so far as determining the first time of intersection and the
>> axis that intersects as described in section 2.3.1 of the document.
>>
>> I am having trouble understanding section 2.3.2.
>
> Do not use this algorithm. It turns out to be numerically unstable
> in some situations. Moreover, it is quite a complicated approach.
> Instead look at the description for contact set construction in
> http://www.geometrictools.com/Documentation/MethodOfSeparatingAxes.pdf
>
> The chapter on collision detection systems in "3D Game Engine Design"
> second edition (currently writing this) will have a full discussion of the
> entire process and will include source code. Once this book ships, I will
> retire the older web site documents.
>
yes, I await this myself, maybe...
ok, so, in general, the seperating axis tests work well in my experience. my
problem, like the op, is that of lame contact behavior, and never being able
to find an algo that both:
produced realistic behavior;
was behaviorally stable.
with your papers:
I don't understand how knowing the first time of contact and the first
seperating axis "best" determines the collision axis.
otherwise, I often can't make that much sense of the algos.
however, I still do appriciate your papers, as otherwise I probably wouldn't
have made as much progress as I have...
my engine thinks more in terms of "does a collision occure between T0 and
T1", and if so, attempts to handle contacts between object (via use of a
single point, a normal, and a depth).
I have seen many variations of OBB colliders that use "the axis of least
penetration", but I have never succeeded in getting sufficiently good of
behavior from this (eg: where I can maintain stable stacks of OBBs and
similar).
partly, this may have been that I have never been able to compute a "good"
contact point along this axis.
for some of my other colliders, I used the approach of generating cubes of
points (ok, for OBBs, for other solid types other approaches work better),
and generating the average of all the intersecting points. this works well
in many cases (eg: a moving objects vs a less movable object such as part of
the map or even an AABB). doesn't work so well if both can move readily.
I guess one thought (not yet tried) would be calculating a point like this
followed by using the forces at this point to calculate the normal. in this
way the normal would align with the velocities and also with whatever object
has the greater force. hmm...
point cubes are potentially slow, but in my experience more time seems to go
into AABB/AABB disjointness testing (used to more quickly rule out
impossible collisions).
maybe you can attempt to define exactly what defines a "good" contact point
and normal?...
my current collider works, but it is lame. it can't pull off stacks, largely
because the OBBs always repel each other much like funky spheres...
but, I do wonder sometimes if there is any point to all this?...
I am unlikely to create anything of value I think...
maybe it is pointless for me to maintain a physics engine (after all, I
could be using ode, which has generally better behavior anyways).
of course, I wanted an opengl style api. but does this mean anything though?
all in all though, I am at a loss as to what I "should" be doing
otherwise...
> --
> Dave Eberly
> http://www.geometrictools.com
>
>
.
- References:
- How to find the intersection point of two intersecting OBBs
- From: mike . jacobs
- Re: How to find the intersection point of two intersecting OBBs
- From: Dave Eberly
- How to find the intersection point of two intersecting OBBs
- Prev by Date: Trend in Graphics & Graphics Art
- Next by Date: Hueristic method to determine good # of segments for bezier?
- Previous by thread: Re: How to find the intersection point of two intersecting OBBs
- Next by thread: Reverse Engineering - Architectural Geometry
- Index(es):
Relevant Pages
|
Loading