ODE 0.10 breaks OgreODE

Ally

16-07-2008 12:10:25

From my preliminary testing with the newest ODE release and SimpleScenes demo, 0.10 obviously breaks OgreODE:

* First I got "colliders array not initialized" assertion failure, but that was easily fixed by placing a call to dInitODE2() in OgreOde::World constructor.

* I get "mParentEntity->mBoneWorldMatrices", line 177 immediately upon creating a ragdoll object in SimpleScenes F1 mode. Has anyone managed to find a workaround for this problem yet?

rewb0rn

18-07-2008 00:09:25

what happens in the ragdolls demo (f7)?

Ally

19-07-2008 10:22:12

Ragdoll demo (F7) seems to work okay. Zombies have *really* jerky ragdoll movement when I shoot them, though. Is this normal behavior with ODE? My FPS is around 30-40. Do I have to adjust the simulation step or something to fix it?

BTW, I have Eihort 1.4.9.

rewb0rn

19-07-2008 11:56:12

Well I havn't compiled the demo in a while but it wasn't very jerky when I tried it. Mybe its really due to your low framerate. Have you tried it in realese mode? Normally there would be no need to adjust the stepsize, nontheless you can try to scale down the step sizes and check if the simulation gets smoother (of course also slower).

cloud9

21-07-2008 08:44:52

I'm seeing the same thing as Ally, except to add that the first zombie goes down right, after that it gets worse and worse, also them seem to spasm on the floor rather than the the physics bodies actually going to sleep. I'm going to have a go at fixing it, but I doubt I'll get anywhere.

cloud9

21-07-2008 09:34:16

For the first assert error I found adding this to the bottom of the Ragdoll constructor worked


if (!mBoneWorldMatrices)
{
mBoneWorldMatrices =
static_cast<Matrix4*>(AlignedMemory::allocate(sizeof(Matrix4) * mNumBoneMatrices));
}

cloud9

21-07-2008 10:37:29

I think the zombie jerkyness is mostly a stepper issue, although there could be some underlying problem. Also setting internal collisions on the ragdoll seems optional. These settings seem to work pretty well, SimpleScenesFrameListener.cpp


const int _stepper_choice = 2;
const Ogre::Real time_scale = Ogre::Real(1.0);


I think someone reported a while ago they were having trouble with ForwardFixedInterpolatedStepHandler.