Jump to content

  • Log In with Google      Sign In   
  • Create Account

Awesome job so far everyone! Please give us your feedback on how our article efforts are going. We still need more finished articles for our May contest theme: Remake the Classics

#ActualKrohm

Posted 06 June 2012 - 09:07 AM

There're several ways, BSP might not be the best.

You should always utilise mutli-level collision detection, that is, first test against its AABB, then again the primitives or polysoup. The trick for a polysoup is, to subdivide the poly-set into some really compact AABBs with a reasonable number of polys inside. The AABBs could be put into an oct-tree like structures or some other data-structure(sweep'n'prune etc). This way you will have a very fast and constant access to your polysoup (gimpact does something similar ?).

I've never looked at GIMPACT, rumor has it there is some kind of hierarchical representation. I don't know the details.
Bullet does indeed what you mean. AABB testing is the so called broadphase, then a narrowphase follows resolving an exact hit using the internal collision shape. The collision shape can be trasformed by a rigid transform. There are a variety of shapes, polysoup being one of them.

An other way is to utilise callbacks (i.e. when using bullet). My terrain collision detection works only with callbacks, I calculate the mesh (only a hand full of polys per collision object for terrain-object collision) on-the-fly.

As far as I know this will wreak havoc for dynamic objects. I will look again at the documentation but from what I recall, I don't see how callbacks could help me there.

As a side note, were never part of the picture. What I meant to say was that BSP leafs were conveted into hulls.

#1Krohm

Posted 06 June 2012 - 09:05 AM

There're several ways, BSP might not be the best.

You should always utilise mutli-level collision detection, that is, first test against its AABB, then again the primitives or polysoup. The trick for a polysoup is, to subdivide the poly-set into some really compact AABBs with a reasonable number of polys inside. The AABBs could be put into an oct-tree like structures or some other data-structure(sweep'n'prune etc). This way you will have a very fast and constant access to your polysoup (gimpact does something similar ?).

I've never looked at GIMPACT, rumor has it there is some kind of hierarchical representation. I don't know the details.
Bullet does indeed what you mean. AABB testing is the so called broadphase, then a narrowphase follows resolving an exact hit using the internal collision shape. The collision shape can be trasformed by a rigid transform. There are a variety of shapes, polysoup being one of them.

An other way is to utilise callbacks (i.e. when using bullet). My terrain collision detection works only with callbacks, I calculate the mesh (only a hand full of polys per collision object for terrain-object collision) on-the-fly.

As far as I know this will wreak havoc for dynamic objects. I will look again at the documentation but from what I recall, I don't see how callbacks could help me there.

PARTNERS