I've been working on a GPU driven particle system for mobile devices (OpenGL ES 2.0). I've gotten stuck on one part of it, namely billboarding the particles in the vertex shader. Since there is no vertex texture fetch in OpenGL ES 2.0 I have packed all the data each particle needs into the vertex buffer, this somewhat limits the effects I can achieve with the system, but it's good enough for what I need.
The problem is that after the position, etc. for each particle has been calculated, it's no longer positioned at the origin in the local space of the particle system, so when I apply my billboarding the entire particle system gets billboarded as one unit - but this is obviously not what I want as I want to billboard each particle individually. And I simply can not come up with a way to do this inside the vertex shader.