GPU-Based Visual Effects System
Matthew JAFFE
Software Development
GPU-Based Visual Effects System
I have developed an engine system for creating, loading and simulating particlebased effects on the GPU. The goal of this project was to create a system that could be used to create cool visual effects and allow these effects to be used generously in games with minimal performance cost.
The reason I chose this topic is that I really enjoy the visual effects systems in game engines like Unity and Unreal Engine. In addition to being very fun to play with, a good visual effects system can have a huge impact on a game’ s feel. Good visual effects are something that can take gameplay from feeling simply okay to feeling incredibly impactful and satisfying. I was excited to learn more about how to create a system that supports the creation of cool visual effects and then leverage that system in future games that I develop using my personal game engine.
I worked on this system for around eight months. I began with focusing on getting the pipeline in place for simulating millions of particles in real time. Once I could effectively do that, I moved on to thinking about what behavior those particles would need to have to make effects I like, such as fire, explosions and magic. As I was creating the features of my system, I was constantly using it to see what types of effects I could make and then iterating on my features to fill in gaps that my effects were lacking.
This system is not just a tech demonstration. It’ s something I can leverage in future games. For example, I have since used it in a 3D space shooter game, which made combat feel much more satisfying. I have also used my system to add super weapons with generous use of lasers and explosions, which were simulated without any concern for lagging the game.
72 SOFTWARE DEVELOPMENT