[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