After some test, I can simulate 2000 cubes, dropped randomly on a 2D static plane.
Cubes rarely touch each other.
With rendering + my engine cost, in PC, I get :-
- >80 fps in normal case
- 50 fps in the worst case (a brief period that all cubes start to touch the ground)
- Windows 7, Intel Core i5-4460 CPU@3.20GHz
- Visual C++, -O2, release mode
- single thread
- without continuous detection (i.e. no CCD)
In this test, I don't share shape, i.e. I use 1 btBoxShape per 1 btRigidBody.
According to the profile, Bullets take about 30% of overall execution time.
My conclusion
Without multi-threading, Bullet can support around 5,000 cubes (if I try very hard).
Question
Is it a correct estimation?
How many btRigidBody your favorite engine can support? (if any)
In 2017, is it practical to achieve https://www.youtube.com/watch?v=J9HaT23b-xc (tower 5,000 planks) in real time?
It is so hard to find some reliable Bullet stress test.
I would like to hear the rough number before designing more gameplay / optimizing further.
Please answer if you happen to know something. I am so lonely in this darkness.