Tuesday, July 31, 2007

9 million sprites per second


Well... almost.

I've just clocked my latest GFX lib release rendering 1 million 5x5 alpha blended sprites at 9 frames per second. Larger sprite sizes increase the rendering time, for example a 64x64 sprite can be rendered 6 hundred thousand times per second... but 9 million is a better number for a headline. :-)

This kind of speed comes courtesy of OpenGL batch mode operations, implemented via vertex arrays, which I am using via a Pyrex wrapper. I've re-implemented a tiny sub-set of numpy array functionality, so you can do things like move sprites around by adding an array of velocities to the sprite vertices... which is useful when implementing particle systems for example.

I imagine it will also be useful for rendering large tilemaps, game levels etc. Stay tuned for some over the top particle effects in my future games! :-)

3 comments:

Anonymous said...

Hi,

Looks like a very powerful and focused project. Thanks for sharing.

I installed GFX with the Windows installer but had a problem running some of the tests.

basic.py ran just fine, but...

When I ran bounce.py I got the error "ImportError: No module named dag".

When I ran click.py I got the error "ImportError: No module named dag".

When I ran cam.py I got the error "ImportError: No module named mainloop".

I guess I'm missing some modules. What can I do to get them?

Thanks again,

--Mike

Simon Wittber said...

Oops I did not mean to include the tests folder in the distribution, as they are not really tests, just bits of code I hack up to test one thing or another...

I'll code up some demo files soon and post here...

Anonymous said...

Hi Simon,

Okay, thanks. Look forward to the demos files.

--Mike

Popular Posts