[ODE] BSP and ODE's collision system

gl gl at ntlworld.com
Mon Apr 21 08:00:02 2003


You could of course add a BSP collider to the ODE source.  You would have to
implement BSP <-> ODE's collision primitives collision - spheres, boxes, the
two cylinder types, and ideally triangles (using the contributed dTriList
which plugs Opcode 1.2 into ODE).  Oh, and possibly heightfields, if I ever
get some quality time on them again : ).

There's some good ideas on the net about implementing this (I looked into it
briefly a while back), eg.:
http://www.gamasutra.com/features/20010324/melax_01.htm

If you fancy doing that, and contributing it back, that would be great : ).
--
gl

----- Original Message -----
From: "Mohammad Bilal" <prettyh8machine@mail.com>
To: <ode@q12.org>
Sent: Monday, April 21, 2003 3:30 PM
Subject: Re: [ODE] BSP and ODE's collision system


>
> Ok naturally I never meant to say that ode has anything to do the way Im
rendering..but..since I load a .bsp file into the memory, I have the
geometry only binary space partitioned...but this is what Im gonna do and I
want you to correct me since I am not too sure if this is the right way:
>
> Im gonna create geometries for all the convex areas of the BSP geometry
(in the same like while rendering you get to the current convex area and
find all the convex areas visible from that point) and add them to a single
geometry and then add that geometry to ode's collision space. Now if I add
any other geometry (say, an entity) into this space, the collision will be
done perfectly well.
>
> I hope that this would do enough hierarchical geometry addition and would
save ode from calculating collisions of one entity to the whole geometry
(bsp world). Please comment.
>
> Thanks,
> Bilal
>
> ----- Original Message -----
> From: "Aras Pranckevicius" <nearaz@interamotion.com>
> Date: Mon, 21 Apr 2003 16:59:07 +0200
> To: <ODE@q12.org>
> Subject: Re: [ODE] BSP and ODE's collision system
>
> > > partitioned geometries. What I understood is that ODE needs to get
> > > all the geometry (heirarchically or otherwise) and maintains a
> > > collision space.
> >
> > Yes.
> >
> > > Everytime you're about to draw, you check the collision etc.
> >
> > Not exactly "every time you draw" - more precisely, "every time you
need" :)
> > This can coincide with the rendering, or it may not. ODE doesn't care
about
> > your rendering in any way.
> >
> > >While drawing with BSP involves only finding the node you're in and
> > > then after calculating some regular visibility tests, you just draw
> > > what's needed.
> >
> > Yes, but, again, ODE doesn't care about your rendering, so your BSP for
> > visibility tests and ODE's collision system aren't and shouldn't be
aware of
> > each other. Unless, of course, you would want to re-use your BSP for
> > collision _also_ (not only for visibility). In that case - ODE has no
BSP
> > collision system (it's hash space is more like grid/octtree approach).
You
> > possibly could implement, say, "bsp collision space"...
> >
> > > Since BSPs are precompiled, how would you create a collision space
> > > at the load time of your program manually, in the first place ? Any
> > > thoughts ?
> >
> > Again - just pretend that you don't have the BSP. Just tell ODE about
the
> > collidables, and that's all. You have your geometry information
somewhere
> > else, not only in the BSP, right (at least you would need that for
rendering
> > purposes)?
> >
> >
> >
> > Aras Pranckevicius aka NeARAZ
> > http://www.gim.ktu.lt/nesnausk/nearaz/
> >
> >
> > _______________________________________________
> > ODE mailing list
> > ODE@q12.org
> > http://q12.org/mailman/listinfo/ode
>
> --
> __________________________________________________________
> Sign-up for your own FREE Personalized E-mail at Mail.com
> http://www.mail.com/?sr=signup
>
> _______________________________________________
> ODE mailing list
> ODE@q12.org
> http://q12.org/mailman/listinfo/ode
>