Texture Wrapping:Can't do this. Currently each particle vertex uses 64 bytes of ram. To form a cube particle, we need 8 vertices. For efficiency we need a copy of the particle vertices on both system ram and video ram. So each particle requires 8 x 64 x 2 = 1024 bytes of RAM. The game currently allows for 4000 active particles = 4MB of ram.

To do texture mapping, we need 24 vertices per particle to correctly map the textures to each face, and another 4 bytes per vertex to hold the UV (texture) coords. So we would now require 24 * 68 * 2 * 4000 = 13MB of RAM. We can't afford that.

The particle shader would now have to process 3 x more vertices, and do a texture lookup for every pixel. So it's not just an extra RAM cost, but also a shader processing cost.

On top of that, we can't mix and match texture and non texture particles in the same particle system / shader, so I'd have to split it into 2 particle systems.

In short, not going to happen, the cost is too high.

Shapes Selector & Particles modeler:We can't mix and match particle shapes, we'd need a different particle system per shape type. Plus shapes such as spheres and toruses require a lot more vertices than a cube, dramatically increasing the RAM usage and particle shader processing time.

Not going to happen.

Orbit, Vertical Rotation, Set Max Particle Expansion:All of these are possible, but come at a cost.

Verticle rotation is the cheapest, it only requires another 2 bytes per vertex - 8 * 2 * 2 * 4000 = 128kb of RAM and the additional processing required in the shader is not too bad.

Set Max Particle Expansion:This would require an extra 12 bytes of RAM per vertex = 8 * 12 * 2 * 4000 - 768kb of RAM. Quite a cost for something I think can be controlled well enough with the current options. There is also a cost for the shader as it has to calculate and react if a particle has reached the expansion limit.

Orbit:Probably the most useful of all of the options here, but also the most costly. To handle Orbit we need an origin (12 bytes) and a 3D rotation vector (12 bytes) - So the RAM cost is 8 * 24 * 2 * 4000 = 1.5MB. Signficant. Also the shader cost is significant - it requires several matrix operations. The only way I could add this is to reduce the number of active particles.

Pitch & Yaw:This is possible with little cost, because it does not require any new vertex data - the pitch and yaw can be calculated and set on the vertices when the particle is spawned - because it's a fixed value.

Texture Wrapping:Can't do this. Currently each particle vertex uses 64 bytes of ram. To form a cube particle, we need 8 vertices. For efficiency we need a copy of the particle vertices on both system ram and video ram. So each particle requires 8 x 64 x 2 = 1024 bytes of RAM. The game currently allows for 4000 active particles = 4MB of ram.

To do texture mapping, we need 24 vertices per particle to correctly map the textures to each face, and another 4 bytes per vertex to hold the UV (texture) coords. So we would now require 24 * 68 * 2 * 4000 = 13MB of RAM. We can't afford that.

The particle shader would now have to process 3 x more vertices, and do a texture lookup for every pixel. So it's not just an extra RAM cost, but also a shader processing cost.

On top of that, we can't mix and match texture and non texture particles in the same particle system / shader, so I'd have to split it into 2 particle systems.

In short, not going to happen, the cost is too high.

Shapes Selector & Particles modeler:We can't mix and match particle shapes, we'd need a different particle system per shape type. Plus shapes such as spheres and toruses require a lot more vertices than a cube, dramatically increasing the RAM usage and particle shader processing time.

Not going to happen.

Orbit, Vertical Rotation, Set Max Particle Expansion:All of these are possible, but come at a cost.

Verticle rotation is the cheapest, it only requires another 2 bytes per vertex - 8 * 2 * 2 * 4000 = 128kb of RAM and the additional processing required in the shader is not too bad.

Set Max Particle Expansion:This would require an extra 12 bytes of RAM per vertex = 8 * 12 * 2 * 4000 - 768kb of RAM. Quite a cost for something I think can be controlled well enough with the current options. There is also a cost for the shader as it has to calculate and react if a particle has reached the expansion limit.

Orbit:Probably the most useful of all of the options here, but also the most costly. To handle Orbit we need an origin (12 bytes) and a 3D rotation vector (12 bytes) - So the RAM cost is 8 * 24 * 2 * 4000 = 1.5MB. Signficant. Also the shader cost is significant - it requires several matrix operations. The only way I could add this is to reduce the number of active particles.

Pitch & Yaw:This is possible with little cost, because it does not require any new vertex data - the pitch and yaw can be calculated and set on the vertices when the particle is spawned - because it's a fixed value.