I'm wondering what would perform better, point sprites (GL_POINTS) or regular sprites (GL_TRIANGLES). Here's the scenario:
I am developing a simple particle system to allow me to produce various effects like fire (in a very simple way). Each particle will be rendered using a texture, but the rub is I want different textures depending on the "age" of the particle (imagine a fire particle transitioning from a "burning" style texture to a "smoke" style texture).
As I understand it if I use point sprites I would have to bind different textures during the lifetime of the particle set based on the age of the various particles still alive. That is, as many texture bind operations as there are "stages" for a particle (at most).
Conversely if I use regular sprites I can do a single bind of an atlas then just render away.
I'd also "like" to be able to rotate the particles, but that's probably not a deal breaker if the performance gain for point sprites is significant. I would definitely want to scale, but I'm assuming I can do that by changing the point size... not sure what the max is for that.
My sense is that a few additional texture bind operations is going to have less of a performance impact than drawing 4 times the number of vertices (4 verts per sprite vs 1 per point). Of course there'd also be an additional sort operation in the point sprite approach so I can batch up the particles with the same texture, but again that shouldn't be too heavy if there are only 3-4 states per particle.
I'm developing for mobile (Android/iOS) so chipset will vary (not sure how much impact that will have on the decision).
Now the "right" thing to do would be to implement both and test, but that sounds like way too much hard work ;)
Would I be correct in assuming point sprites are still the better approach?