to use a static vertex buffer if you manually update the vertex locations with matrix multiplies
true, but one can move the tranformation to vertex function, which outperforms CPU tranforming, since paralel pipelines eat it up, and yet, it allows one to have the buffer static. This is yet possible only if Vincent_M will not expand amount of verticies/sprites, keeping them in constant amount. I myself am using a very tripy aproach. I transform sprite quads by the help of their object space z - what allows mi to have any procedural animation, transforming all verticies by the uniformal matrix. Drawing sprites/particles by an indexed buffer is rather vital too, since buffer can contain 100 of them, but with indicies you can specify how many to draw, with what uniform transformation. For example uniform buffer limits you to 128 matricies, so you draw first 128, and then the next ones, in few batches. But I rather use procedural aproach, in case I am drawing fire, not light flies of course.