[ODE] AutoDisable issue?
Mohsin Hasan
mohsin.hasan at trivor.com
Mon May 24 17:20:28 MST 2004
Ok. I was wrong. It improves performance a little but still kills 100 fps.
(It was basically 100 + 5-10 fps lost) and the reason being before stack
collapse each Quickstep call generates only 373 collision callback (for
disabled bodies) while after stack collapse Quickstep generates 1273
collision callbacks (again for disabled bodies). I believe there should be
some early culling instead of calling this many collision callbacks. How
does Novodex handle this? Apparently they achieve the same FPS after stack
collapse as before stack collapse.
Mohsin
-----Original Message-----
From: ode-bounces at q12.org [mailto:ode-bounces at q12.org] On Behalf Of Mohsin
Hasan
Sent: Monday, May 24, 2004 4:49 PM
To: ode at q12.org
Subject: RE: [ODE] AutoDisable issue?
I never thought about it this way... It works :). A max of 5-10 FPS drop
now. It should be documented though.
Thanks,
Mohsin
> the joints to 0. Since after falling there are a lot of contact
joints, this
> count must have grown considerably. Even though all the bodies have
been
> disabled the tagging is still being done on all the joints. I haven't
really
> gone into the detail of what's the purpose of tag so I'm not sure why
it is
> being done here. Any comments?
You shouldn't be creating contact joints between disabled-disabled and
disabled-nobody pairs.
Probably this could be done in ODE itself; right now the solution is to
add some code to your collision callback, like:
b1 = get body of geom1
b2 = get body of geom2
if b1 and b2 are disabled return
if (b1 is disabled) and !b2 return
if (b2 is disabled) and !b1 return
do usual collision and create contacts
This should reduce number of contact joints; and reduce the amount of
collision work.
Aras Pranckevicius aka NeARAZ
http://www.gim.ktu.lt/nesnausk/nearaz/
_______________________________________________
ODE mailing list
ODE at q12.org
http://q12.org/mailman/listinfo/ode
More information about the ODE
mailing list