The explosion particles here are coming from a static vertex buffer and are fully animated and updated on the GPU. They're substantially faster than CPU particles and - despite being currently uncoloured - suffer no other tradeoffs.

Unfortunately there's only so far this can go without making use of a geometry shader and vertex texture fetch. Yes, it is possible without these, but it would incur some extra overhead that would wipe out the gains.
In other words a full implementation will need to wait until I move to D3D11, but it's still nice to get this much done by way of a proof of concept.
What this means is that I'm now at the stage where I'm really just fooling around with the engine rather than actually doing anything of any significant importance, and that in turn means that things are warming up for release. Can I say this week? Maybe, maybe.
Tuesday, February 14, 2012
GPU Particles
Posted by
mhquake
at
1:26 AM
Subscribe to:
Post Comments (Atom)
5 comments:
980fps, nice
What's the average on that map?
Also, have you ever tried to make the particle color fade over time? From yellow to red for instance (explosions). Not sure it that would look any better, but never hurts to try.
Oh, it'll run faster - particles aren't being killed on time with this (another thing I need a GS for) so there's about 3 times as many in the scene as there should be. It timedemos at about 1200 fps (compared to 1080 with CPU particles) so I expect it to go higher again when I get this done properly (D3D11 is faster too so that will also help).
Quake already specifies particle colour behaviour and they actually do change over time.
More of these screenshot posts would be good :D It's nice to see the results of your work more visually.
Want!
Want all you like, you need to wait for D3D11 for this...
Post a Comment