Selective collisioning

bartiss

21-04-2009 21:43:50

Hi,

I have a single hero entity in a huge level full of geometry. I want this "level geometry" to use a triangle collision mesh and the hero entity will use a sphere.
I know how to do it, but there's one major problem. Level geometry collides with each other every frame causing a very serious FPS drop.
What I want is to get collision callbacks from "hero sphere" vs. "level geometry" contacts, but without level geometry colliding with each other. Is it possible?

Until now I was using

StepHandler::step( time );
World::synchronise();

every frame to get the right callbacks, but what now? I'm thinking about checking collisions manually using ODE's collide() method. Is it the right approach?
I think I read about something called "Category bits" but I'm not sure if it's ODE at all :/

Any hint is more than welcome.

lanael

22-04-2009 17:43:04

I think these functions will do the trick,; though I haven't used them ( yet ) :
void OgreOde::Geometry::setCollisionBitfield(unsigned long bits);
unsigned long OgreOde::Geometry::getCollisionBitfield();