ms9
Particles: Random variations from a texture atlas for quad particles
* Moved some useful functions for packing data for shaders into common header * Added shader macros to easily use half precision floats (packed uint values on shader side, 2 ezFloat16 on C++ side, unpacking macros to automate the stupid work) * Moved billboard particle rotation computation to shader * Significantly reduced GPU data footprint for particles by using packed half2 and color16f values * This additionally removes the need for CPU side conversion of some data that is already half precision
Particles: Moved the fog calculation to the vertex shader.
Particle stretch and stuff
Particles: Infrastructure for mixing texture atlas variations and flipbook animations
More consistent naming of texcoord interpolators
Merged all quad particle shaders into one shader with a few permutations.
Particles: * Life/Age stream now uses half precision * Quad type now has an enum for the texture atlas usage, though it has no effect so far * Trail particle data is now in a separate GPU structured buffer