Scale - large/small objects, world size
Posted: Wed Aug 26, 2009 3:06 am
Hello.
I want to use Bullet for simulation at both large and small scales. That is, I want to simulate people-sized things, but also down to the centimeter or smaller level for grasping simulation. The manual says moving objects should be no smaller than 0.1 units. And no larger than 5 units.
If those are meters, the upper limit is fine, but 10cm isn't good enough for grasping. However, if I call the units, say, cm, then 1mm is great, but 5cm is obviously smaller than human scale. At 10cm per unit, I still don't get objects larger than 0.5m, and 1cm really is still a bit big for me.
My thought is to run multiple simulations, one at 1cm/unit and another at 1m/unit. The fine scale would only be invoked occasionally and be limited in its scope. When both are running, I would have to somehow synchronize objects between the two in terms of velocities/forces/whatnot.
Am I insane for trying this? Is there a better plan?
Also, how large can a world really get? I some comments for the btAxisSweep3 samples saying that I shouldn't get too large (say past -10000 to 10000). Does double vs. float have any impact on this? Also, if the simulation world is large, would it be better to run multiple Bullet worlds for each active area? Any different expectations for btDbvtBroadphase?
In other words, I'm looking at running multiple Bullet worlds, both for different active areas and for the same areas at different scales. Is this sane?
Side question, can Bullet do spherical or even multi-body gravity? (Sorry for the unrelated question. Just also been on my mind.)
Thanks much for any help.
- Tom
I want to use Bullet for simulation at both large and small scales. That is, I want to simulate people-sized things, but also down to the centimeter or smaller level for grasping simulation. The manual says moving objects should be no smaller than 0.1 units. And no larger than 5 units.
If those are meters, the upper limit is fine, but 10cm isn't good enough for grasping. However, if I call the units, say, cm, then 1mm is great, but 5cm is obviously smaller than human scale. At 10cm per unit, I still don't get objects larger than 0.5m, and 1cm really is still a bit big for me.
My thought is to run multiple simulations, one at 1cm/unit and another at 1m/unit. The fine scale would only be invoked occasionally and be limited in its scope. When both are running, I would have to somehow synchronize objects between the two in terms of velocities/forces/whatnot.
Am I insane for trying this? Is there a better plan?
Also, how large can a world really get? I some comments for the btAxisSweep3 samples saying that I shouldn't get too large (say past -10000 to 10000). Does double vs. float have any impact on this? Also, if the simulation world is large, would it be better to run multiple Bullet worlds for each active area? Any different expectations for btDbvtBroadphase?
In other words, I'm looking at running multiple Bullet worlds, both for different active areas and for the same areas at different scales. Is this sane?
Side question, can Bullet do spherical or even multi-body gravity? (Sorry for the unrelated question. Just also been on my mind.)
Thanks much for any help.
- Tom