This is the first of a 2 part research post which I’m choosing to tackle as a topic almost purely on the grounds that it made my very average modelling and scene composition this trimester look somewhat presentable. I’ll aim to keep non-specifics brief here as those who shall definitely have to suffer my waffling have already covered this topic at some point.
A ‘Particle System’ is a process used across varied disciples of computer graphics to generate appropriate visual representations of ‘fuzzy’ phenomena; ie things like flames, snow, water, sand etc. that are complexly affected by outside forces. This is achieved by spawning a large amount of small objects or images possessing variables for range and often with a limited lifespan within the space. Particle smoke is a particularly (see what I did there) easy example to illustrate this with as it generally made up of only one or two images, expanding in a certain range and direction, altering in opaque properties before reaching an assigned end of lifespan, appearing to dissipate. Then it spawns again. Wew.
The important thing to note here is that particle systems maintain a usefulness in real-time graphics (and more complex stuff on a grander scale) by imposing a simple but necessary limiting system upon the number of images or objects, referred to as ‘sprites’. At any given time, once this upper limit is reached, there will be the same number of particles loaded into memory on a stack awaiting spawn. As a particle on screen ‘dies’ the next on the stack will take it’s place, so on and so forth. In such there can be situations where the variant lifetimes of particles can cause the stack to constantly rearrange, creating the truly unpredictably diverse visual situations that make a particle system the clear choice over more deliberate traditional method.
I’m somewhat keen on Unreal 4 so the rest of the post is going to focus largely on that. In Unreal you’ve got a couple of major elements that make achieving what you want with particles faster. Firstly, particles are handled by an emitter module which serves as a spawn point potentially for multiple particle effects on the same point. In Unreal 4 this is represented visually by the cascade editor, which displays each individual particle system as a stack of parameters in a column. A few of the things you might edit at this stage include the lifetime of your particle, directional forces such as wind and gravity, collision meshes, sphere of influence or changes to colour over time. For instance if you’re aiming to create a fire system you would aim to determine parameters for colour over life, velocity of the flame sprite, directional influence etc. but then also create secondary systems for sparks and smoke that will be spawning from the same emitter but at different points during the life, their own set of expiry and directional influences, and in the case of the sparks likely collision targets and behaviors.
My own use for the trimester hasn’t really gone beyond a singular sprite emitter system being used by each emitter, mainly due to my own poor time management. In future works (some of which may re-use these specific assets) I plan to make greater use of secondary systems, and also to closely integrate shaders into and around the particle effects, as I will discuss in the following post…
Epic Games,. (2016). 1 – Particle Terminology. Retrieved from https://www.youtube.com/watch?v=OXK2Xbd7D9w
Greer, M. (2012). Particle Systems From the Ground Up – Build New Games. Buildnewgames.com. Retrieved 28 August 2016, from http://buildnewgames.com/particle-systems/
Routh, B. (2016). Unreal Particles: Smoke. Retrieved from https://www.youtube.com/watch?v=YqyMle6AHCI