What are the best ways to keep particle effects looking 3D without weird billboard rendering?

I’m experimenting with particle effects quite a bit these days and one thing I’ve been looking at is making my own custom particles using PNGs however perhaps I just need to experiment more but it’s getting annoying using certain techniques like trying to create smoke and making them render in a convincing way.

What I mean by this is, it will look fine at one angle and then when I start to go around the particle effect, you can quickly see that the smoke particles are just completely flat. Now billboard is clearly designed to partially fix this however with stuff like smoke and fire it is clearly rotating the particles to face the camera and you can see it rather blatantly sometimes.

Is there a better way of doing all this? I’m researching but people might have some knowledge that’s not in any tutorials as usual just from experimenting themselves. Now obviously there’s different methods I can do like using actual 3D objects in my particle effects but this isn’t exactly practical if I want to keep things sensible in terms of how much computing power is used.

I just looked up a video by Brackey’s which shows a perfect couple of examples that I’m talking about, there’s the flamethrower and the rocket. Both have particle systems which you can clearly see are not using the billboard effect and you can rotate the camera around them without any issues.

I need to be able to do this much at least otherwise my games just won’t progress in quality.

The most effective, efficient, and commonly used technique, and the one the pretty much every AAA game uses is …

… to do nothing special. It’s a tiny percentage of the player base whom will notice the issue at all.

Having your particle effects not last very long helps as you don’t get a chance to move around the effect. Having multiple particles to make up your effect gives it some 3d volume as well, though can cause some sorting problems if not handled carefully.

A more advanced technique is to indeed use meshes. This is quite common for VR games these days, but is not unique to that. Indeed using meshes for effects can be quite effective. Gigantic, Fortnite, Street Fighter 4 & 5, and several others are great examples of mixing 2D sprites and meshes to produce visual effects.

https://vimeo.com/159139794

If handled properly, this isn’t that much more expensive than sprite based techniques. This can be as complex as having a fully modelled lumpy sphere and whispy tentacle shapes for an explosion smoke and fire, to just having a couple of intersecting quads placed in random orientations that each show the same sprite.

There’s also 360 sprite based techniques, similar to how old “3D” games did their sprites, like Doom or Mario Kart. More recent examples of this would be the Octahedral Impostor system added to Fortnite. Amplify has an asset that implements this technique, and there’s a feww github project someplace too.
https://shaderbits.com/blog/octahedral-impostors/
It would be possible using instanced particles to implement a similar system.

Going beyond that, you could use true volume rendering, but that’s really, really expensive. Some people have done some experiments with lightfield based approaches, which is less expensive than volume rendering in terms of shader complexity, but needs way bigger textures to be useful, and is pre-baked where volume rendering can be done on realtime smoke simulations.

However I’ve skipped the single most useful technique, which is using an animated flipbook texture with a good bit of motion. Because the particle texture has a ton of motion already in it, when rotating around it’s not as apparent that it’s just a billboard sprite.

Here’s the kicker. Those are in fact just using billboard sprites. Lots of them, and also using animated flipbooks. The combination of both means that there’s a actually 3d volume to the effect by way of having multiple particles, and the billboard nature of the individual particles is hidden by them being animated. Several of the flipbooks in that video appear to be the ones Unity released themselves for people to use.
https://blogs.unity3d.com/2016/11/28/free-vfx-image-sequences-flipbooks/

1 Like

Thanks for the really detailed reply! I guess it’s just a matter of experimenting more with it then and finding out what works. I have these smoke particles that I made and it looks fine at one angle but the moment you start trying to move around it the billboard effect ruins everything so it looks like I’ll need to make it look way more 3D and just try settings out.

I agree with you it’s not that big of a deal for most effects like say tracers which happen really quick anyway but if you get particle effects just right so you can examine them in detail it makes a big difference to the way your game looks. I’ll check out the resources you mentioned, thanks for the links.

I just thought I’d post this to help out anyone that stumbles across this thread and is struggling with particles, I found this helpful video that showed the workflow of making some detailed smoke and it explains a hell of a lot without any commentary.

As @bgolus correctly explained, a lot of it seems to be down to just creating some sprite sheet animations but instead of making it for characters or anything like that you’re doing it for 3D particles.