[ODE] Finally Trimesh-Trimesh collision works!!

Flavien Brebion f.brebion at vrcontext.com
Thu Oct 26 12:22:12 MST 2006


Francisco Leon wrote:

>Good news: Finally ODE Trimesh-Trimesh Collision works
>correctly.
>
>Really works. No fakes!!
>
>Trimesh-trimesh collision system was refactored,
>replacing OPCODE with GIMPACT.
>
>see: http://gimpact.sourceforge.net
>  
>
After checking the API in more details, it looks pretty good, and i'm 
noticing an improvement of x4 / x5 in performance in your gammaleon demo 
compared to opcode ( Pentium D 830 3 Ghz ), while spawning a few 
hundreds of various primitives ( a few cubes, a few spheres, and lots of 
tri-meshes ). It slows down a bit when the objects are spawned quickly, 
but it stabilizes and maintains a very good framerate ( 200-ish ) when 
all the objects are at rest; in the same config, opcode gets no more 
than 40-50 fps.

I'm still hesitant about GImpact though. It seems to handle pretty well 
the case large amount of simple tri-meshes, but does not seem so 
optimized for a low amount of very complex tri-meshes.

As i understand it, dynamic tri-meshes ( those who have a transformation 
matrix ) requires to update the *whole* vertex array of the tri-mesh 
each time the transformation matrix changes ? So, moving a single 
tri-mesh of 10K vertices at 60 fps requires 600K vertex transforms per 
second ? Also, the per-triangle AABBs have to be updated, is that 
correct ? Note that i haven't measured this performance, maybe it's not 
so bad, but those were my first thoughts when i digged into the API.

What are the other limitations of the library ? Does it work with ODE 
compiled in double-floating point mode ? Or in 64 bits ?

I noticed some strange defines / settings in the API, one specifies the 
maximum bounding box of the scene to be +-1638.0f, what happens if a 
scene is larger ?

Otherwise, it looks very good and seems more robust than Opcode's 
trimesh code.

F. Brebion



More information about the ODE mailing list