Physics & collision requirements

Started by
8 comments, last by GameDev.net 18 years, 10 months ago
Hi all, OK I have my basic physics engine ready, but before I go any further, I noted that my collision detection lib only tells me one point of collision, and the colliding poly's (it's coldet). Is this enough to proceed into a full physics engine? I've read around get the feeling that as I progress into deeper physics I may need to detect multiple collision points, maybe intersection depth etc. Anyone have experience they can share in this..?
Advertisement
Hi,

I'd recommend having a look through the documentation for the 'Solid' collision library.

www.dtecta.com

Download the library, the docs are a pdf in the4 docs directory. They cover the kind of things a collision library needs to do and the differrent types of collisions.

Hope that helps,

David
Usually, contact points (several, for a face-face, or edge face), collision normal, intersection depth and/or time of collision, and of course the two colliding objects' references. Basically, the more info, the better. But a structure containing the stuff above would be enough. THen you can grab stuff, like material ID from the colliding objects, or the attached physics objects, ect...

There are also distance queries, and closest points plug-ins in collision systems, as well as some ray-tracing support (point of intersection, normal of interseciton, distance from ray origin, object intersected). SOLID has all of that now.

A good mechanism used for collision systems is implementing callback, for various stages of the collision tests.

Broad phase (sweep and prune) callbacks, can be used to say, ignore collision queries between certain object types.

Narrow-phase (when a collision /intersection is detected) can be used to either, perform the contact point calculations, or stop there if you are just interested in an on-off type of query.

Then there is the contact resolution stage, where contact points are calculated, and this is what a phyiscs system will use to perform actions on the objects, such as collision responses.

These are just examples. There are other methods and ways of doing things.

Solid is a very good library col. det. BTW. And I like Gino V.D.Bergen's new professional site. And he has now a fully featured collision system. He also wrote a very good book on collision detection, I think it's pretty much what his library does in details.

Everything is better with Metal.

Hmmm 2000 Euros licence cost for SOLID. Somewhat out of my range currently :(
I've been looking at OpCode by Mr Terdiman. Seems to have a good pedigree (Used by ODE, Tokamak) and he went on to create Novodex...

Olii: I've got a basic point-mass physics system working, with some problems which lead me to make this post (and some of your previous posts helped me get it working thus far ;)).
Tokamak does not use ODE.
Also Opcode is not a collison detection library.
I just find the pontecial intersecting triangles between a aabb box and a mesh of triangles, or two mesh. I does that by organazing the mesh into a syayic tree of AABB.

Solid on the other hand is a true collision detection that compute contacts, normals, and penetration depth.
I meant
Tokamak does not use opcode.
Ode does but not for collision detection only for polygon queries
Quote:Original post by Anonymous Poster
Also Opcode is not a collison detection library

Not what it says here:
http://www.codercorner.com/Opcode.htm

Quote:Tokamak does not use opcode

Not what it says here:
http://www.codercorner.com/OpcodeUsers.htm

Quote:
Solid on the other hand is a true collision detection that compute contacts, normals, and penetration depth

Are you sure about calculating penetration depth - I couldn't see any claim about that on the Solid web page.
Quote:SOLID offers the necessary queries for performing ray casts, distance and penetration-depth computation, as used for instance in 1st person shooters and racing games.
___________________________________________________David OlsenIf I've helped you, please vote for PigeonGrape!
Quote:Original post by RAZORUNREAL
SOLID offers the necessary queries for performing ray casts, distance and penetration-depth computation, as used for instance in 1st person shooters and racing games.


Yes - sorry - looking at the old site :)

Sorry MrRwol I apology to you for not been 100% accurate

My comments about Tokamak were based on a post on the old forum by Christ, the author, where he categorically said that Tokamak do not use opcode. So unless that changed in some later version I suppose I have to believe you, or that list of opcode users.

About the feature list of opcode, I could not find the line saying opcode calculate contacts of two colliding solids.
I could not find the line saying that it calculates the closest distance for two approaching solids, and I could find the place saying it calculates penetration depth and contacts for tow penetratoing solids.
All I found was that is find the array of triangles that could potentially intersect another solid or another mesh.
I think SOLID does provide that kind of queries.

So unless I am reading it incorrectly it seems that opcode is better described as an intersection query library and NOT as a collision query library.



This topic is closed to new replies.

Advertisement