[ODE] Rolling edge collisions when the normals between the
trimeshtriangles are equal
Erwin de Vries
erwin at vo.com
Wed Sep 10 19:37:47 MST 2003
I'm not entirely sure what the source of these problems is, but i know
exactly what you mean. In my own app i do the following:
----
if (Flags & 0x80000000){ // Bad!
// Hack
dReal k = dDOT(Position, Plane);
Depth = Plane[3] - k + Radius;
Contact->pos[0] = Position[0] - Plane[0] * Radius;
Contact->pos[1] = Position[1] - Plane[1] * Radius;
Contact->pos[2] = Position[2] - Plane[2] * Radius;
Contact->pos[3] = REAL(0.0);
Contact->depth = Depth;
}
----
before i do OutTriCount++;
You could see if it helps. This is NOT recommended for all types of
geometry, and should be used carefully.
Cheers,
Erwin
----- Original Message -----
From: "Damien G" <damienodelist at hotmail.com>
To: <ode at q12.org>
Sent: Wednesday, September 10, 2003 11:11
Subject: [ODE] Rolling edge collisions when the normals between the
trimeshtriangles are equal
> I am rolling a ball (sphere) along a flat trimesh surface (for a test).
> The surface consists of two triangles to make a long flat rectangle.
> When rolling the ball down the 'centre' of the rentangle it eventually
> comes to the edge between the two triangles.
>
> However the ball does not roll "straight" over this edge.
>
> When the ball reaches the edge it rolls over the edge but does not
continue
> in a straight line. It deflects slightly at "right angles" "to the edge"
and
> rolls off the side of the rectangle.
>
> If anyone knows how to implement a workaround please let me know.
>
> eg:
> - can I "disable" the "edge collision" checking for when two connected
> triangles have the same normal?
>
> - can I easily ignore this edge collision in my code somehow? dot product
> etc...
More information about the ODE
mailing list