I’ve just finished working on a nicer UI for the PA Particle Field demos along with a comparison scene. So, what is PA Particle Field? It’s an alternative particle system for Unity, GPU based and specifically optimized for looping ambient effects, with particles that kind of exist forever (persistent) and minimal CPU usage.
The idea behind PAParticleField came about while we were working on Shark Escape, a mobile game that would have been set underwater. Particular matter in the water is very important in selling the feeling of being underwater, but the processing required to do this with a particle system would be better used elsewhere, and we were aiming for low end android devices with arm6vfp architecture so pretty damn low.
But for a few reasons we dropped the project and PA Particle Field stopped being developed until VR Jam 2013, where we teamed up with @LucaMefisto to work on an underwater game using the Shark Escape assets. It was clear to me straight away that a solution like PA Particle Field would be very handy, in the game the player dropped quickly to the sea floor and was then free to walk about. For the particular matter we started with a particle system parented to the player just in front of them, simulated in world space but as the player fell it was obvious that the particle emission couldn’t keep up, and when the player moved the particles would clip through the players divers helmet (using separate cameras wasn’t a great option due to the oculus rift distortion correction). So the basic premise of PA Particle Field is particles only exist in a certain space and when they leave the bounds they are recycled on the opposite side of the field. This means that if we parent a PA Particle Field in the same way we did the particle system, now when the player falls particles at the top of the field are recycled to the bottom giving a constant distribution, and when the player moves the particles that would have clipped the players helmet now hit the bounds and become the particles in the distance.
All of this is done on the GPU, with just the mesh generation and delta time done on the CPU, resulting in a very fast running system. The system has many applications, and on the demo page I’ve added Rain, Snow, Caustics and Stardust, and I plan to add Bokeh, falling leaves and space debris (Deadspace style).
Unlike the built in particle systems it also works in the Editor, which is a huge help for look development as you can can instantly see how everything is going work together.
So thats PA Particle Field, the other thing that we’ve released recently is PAProximity, a plugin giving access to the Android proximity sensor, which I wrote mostly to learn how to write android plugins, but its primary aimed at VR developers where the proximity sensor can be used to detect when the user has put their device in the HMD.
And still in the works is Kindred and our vine generator for it, I’ll save that for another post but here’s a quick preview.