Hi.
I am working on a sprite batcher in OpenGL. I use OpenGL 3.1 and GLSL #version 110.
My batcher has the following features:
- it works with 1 single atlas texture
- no persistence, meaning you push your whole list of sprites every frame
- each sprite can have his own UV on the atlas and his own 3x3 matrix transformation
- a camera with his own 4x4 matrix
The "no persistence" feature is a choice I made to keep the API very simple. No need to "add" or "remove" the sprites. Just ask to render what you need each frame independantly .
Today the batcher can reach 800 sprites at stable 60FPS on a 800x600 window. Running on my laptop:
ASUS i7-267M CPU @ 1.80GHz 1.80GHz
RAM 4Go
GPU Intel(R) HD Graphics Family with 116 ext.
Is it good performance ?
Note: I plan to add a new method in the batcher in order to render more efficiently large tiled backgrounds.