Optimization strategies
If you play a little and increase the value of the global constant NUM_BALLS
from 50 to 500, you will start noticing degradation in the frame rate at which the simulation runs as shown in the following screenshot:
Depending on your computer, the average time for the draw
function can be higher than the frequency at which the animation timer callback is invoked. This will result in dropped frames. We need to make the draw function faster. Let's see a couple of strategies to do this.
Optimizing batch performance
We can use geometry caching as a way to optimize the animation of a scene full of similar objects. This is the case of the bouncing balls example. Each bouncing ball has a different position and color. These features are unique and independent for each ball. However, all balls share the same geometry.
In the load
function, for ch5_BouncingBalls.html
we created 50 vertex buffer objects (VBOs) one for each ball. Additionally, the same geometry is loaded 50 times,...