[ODE] which method is best for large scale terrains?

Matthew Reid f14_tomcat1 at hotmail.com
Mon Oct 2 20:48:02 MST 2006

I need a way to do fast collision detection on large terrain (2048x2048 
quads or more). I've tried the terrainY contribution, but performance with 
this is very poor. A single ray check across the terrain can potentially 
lead to millions of calls to the getHeight() callback, and even for a single 
vehicle with about 200 calls, my game performance takes a huge hit (25% 
performance drop).

What's the most efficient method for doing collision checks on large 
terrains? I've thought of using trimesh, but from previous experience with 
another physics engine, loading and checking against a multi-million polygon 
trimesh is out of the question. How is large scale terrain collision and ray 
checking handled in commercial games such as battlefield 1942? Is there some 
technique whereby the trimesh could be split up into a AABB tree...similar 
to BSP collision?

More information about the ODE mailing list