[ODE] ODE in a BSP environment

Erwin Coumans erwin at erwincoumans.com
Fri Aug 11 21:23:07 MST 2006

On popular demand, I added an example loading a Quake 3 bsp file in Bullet 
As a basic test, you can shoot boxes around.
It converts the brushes in convex shapes, which should be more efficient 
then trimeshes.
You can download sources and precompiled demo for Win32, Linux and MacOS X 
Universal Binary here:


Once Bullet continuous/discrete CD is integrated in ODE it can be used 

----- Original Message ----- 
From: "Megan Fox" <shalinor at gmail.com>
To: "Rodrigo Hernandez" <kwizatz at aeongames.com>
Cc: <ode at q12.org>
Sent: Thursday, August 10, 2006 9:08 AM
Subject: Re: [ODE] ODE in a BSP environment

> My own (limited) testing suggests that having the trimesh in one big
> space shouldn't be a huge issue.  OPCODE already uses a system (an
> octree? kdtree?  not sure which) to reduce the number of pointless
> collides with a trimesh, so having ODE do the same thing may be a perf
> gain or may be a perf hit depending.  I'd worry about a per-BSP chunk
> trimesh approach if only because of how many excess polygons you're
> creating with all those splits.
> The important part is, rather, the spaces you throw your dynamic
> bodies into, and THOSE you definately want in different sub-spaces (if
> you have portals/sectors per region room that's ideal).  Especially if
> you split your world into separate geoms from the BSP chunks, you'll
> also want to be sure that you space your geometry such that you can
> disable inner-collisions in the static world.  It will quite happily
> attempt to collide adjacent floor chunks, accomplishing nothing other
> than a huge perf drop.
> On 8/10/06, Rodrigo Hernandez <kwizatz at aeongames.com> wrote:
>> Also, if you are using portals, you could make a space for each area,
>> if you're using Quake 3 bsp files, I believe it already contains portal
>> data, if you're doing your
>> own home brew BSP, then I guess its up to you :).
>> Jason Perkins wrote:
>> > On 8/10/06, Jose Marin <jose_marin2 at yahoo.com.br> wrote:
>> >
>> >> My idea is how to group the triangles for each branch,
>> >> to speed up the collision detection.
>> >>
>> >
>> > ODE's trimesh collider already builds an AABB tree, so you don't have
>> > to worry about that.
>> >
>> > If you are comfortable traversing the BSP tree yourself (you are
>> > probably doing it for rendering anyway), you can locate the brushes
>> > near your character and then do a plane/capsule (assuming you are
>> > using capsule) test against your characters geom. Just skip the ODE
>> > spaces entirely and use dCollide() directly.
>> >
>> > Jason
>> > _______________________________________________
>> > ODE mailing list
>> > ODE at q12.org
>> > http://q12.org/mailman/listinfo/ode
>> >
>> >
>> _______________________________________________
>> ODE mailing list
>> ODE at q12.org
>> http://q12.org/mailman/listinfo/ode
> -- 
> -Megan Fox
> Idyllon, LLC
> http://shalinor.circustent.us/megan/resume/
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode

More information about the ODE mailing list