[ODE] Slow performence in a given scene - optimizable, or "just how it is"?
Shamyl Zakariya
shamyl at zakariya.net
Fri Nov 11 13:11:53 MST 2005
I'm a little late to this party, but I recently experienced something
more or less like this, when I added dynamically generated trees to
my game world. In my world, as the character moves around, trees are
procedurally generated in a static grid following the player around.
The generator creates a mesh which I use to display the tree, but for
collisions I was building a bunch of static capped cylinder geoms
( not for the whole tree, just going in three levels of recursion ).
The performance was *awful* ( I am doing this on an anemic 1.3 Ghz
powerbook, but still bad even by my standards ). Profiling showed it
to be way too many nearcallbacks, mostly between the individual parts
of the trees.
When I switched to using a single trimesh geom generated from the
mesh used for display, my performance went back up to the 30fps range
I consider to be baseline for this hardware.
That said, I *thought* dGeomTransform supported adding multiple
geoms, but my documentation for the official 0.5 release seems to say
that it only supports one geom. I would assume that if I could have
put all of a tree's geoms into one dGeomTransform I could have gotten
around the issue of the individual branches having nearcallback
called on one-another.
shamyl zakariya
"Robustness is the child of transparency and simplicity"
- Rule 8: Rule of Robustness
On Nov 6, 2005, at 1:59 AM, Jon Watte (ODE) wrote:
>
>> Eh, there's presently a lot of inner-collision between the trigger
>> bodies on a given entity (arms vs torso vs legs vs head vs sword hit
>> zones), and that's dead easy to optimize out... it's just that 246
>> doesn't seem terribly extreme for a larger scene, with piles of
>> random
>> boxes and such - and I still need that level of scene to run better
>> than this. Never mind that the larger scene would have dynamics
>> going
>> as well, vs the present almost-no-dynamics-at-all-just-collisions
>> scene.
>
> Where's that CodeAnalyst profile?
>
> Heck, if you have a Linux version, even gprof would help.
>
> Without that data, I refuse to speculate on the performance of your
> program anymore!
>
> Cheers,
>
> / h+
>
> _______________________________________________
> ODE mailing list
> ODE at q12.org
> http://q12.org/mailman/listinfo/ode
More information about the ODE
mailing list