Hi -
At least two ways may be possible (works in my case for RigidBodies - not tested with SoftBody)
- Using the Panda threading model
It gives me an immediate x2 fps boost (30fps to 60fps) with 250 simultaneous objects.
core.loadPrcFileData('', 'threading-model /Draw')
Easy to implement and very effective in my case.
- Regularely removing Bullet objects you don’t need anymore
Let’s say you have 250 Bullet objects falling down the ground which is made of a thin box shape. Some objects will ‘bounce’ on the ground and continue to fall down. You don’t see them and you don’t need them anymore: so you remove them from BulletWorld() and from render:it will decrease the unnecessary calculation and therefore increase performance.
This is a kind of “Culling system” but applied to Bullet objects (you can use for example a huge BoundingSphere to test objects and remove them once they are out of it).