Creating Volumetric Fog effect

So I have a swamp level (for a Top-Down project), and I’m looking to make a very dense fog layer near to the ground. This is a good example of the kind of fog I’m looking for.

(Obviously, this isn’t going to be on the scale of buildings, and I know that fog doesn’t look this way when you get closer to it, but it looks really cool, and it can be easily explained away in the context of my project.)

So I tried using one of Unreal’s Exponential fog volumes, but it’s really only good for adding to a primary fog effect. It doesn’t have texture or movement to it, and I can’t get it to convey the depth of fog I’m looking for.

After this, I tried a particle system, and just by using subimages of a smoke material I was able to get something that was more to my liking. The problem is that while it works, it is a performance hog and running it on low performance machines makes me feel dirty. (It runs fine on my machine, but it’s pretty obvious it isn’t a smart idea to do it this way.) Then I looked at the fog sheet static mesh from Unreal’s Blueprint example project. This is way better for performance, but it still had issues with conveying the depth and movement I’m looking for.

So now I’m at a crossroads, Should I spend my time tweaking the material that I’m placing on the static mesh, or is there another solution? I’m really determined to get this effect working in one way or another, but I’m just not sure where to go from here. A lot of writeups on volumetric fog are concerned with making subtle, and highly realistic effects. I could honestly care less about whether it’s realistic, I just want it to be aesthetically pleasing.

As an addendum, I would really like to find a way to have lit translucency (or at least built in lighting) in some areas as well (I.E. a glowing torch or mushroom emits light, and the fog around it reacts accordingly). It doesn’t seem feasible performance-wise to have all of the fog do that, but I could be wrong.

Having a fog effect that reacts to movement within the level is something that I tried to implement, but couldn’t get to work, but I would assume that it would be way too performance intensive to justify. If anyone has some ideas on how I could potentially fake that (So that it looks like the fogs is pushed around when a moving objects moves into it, even if it’s a non-dynamic thing), or actually implement it without killing most machines, I’d love to hear it.

If this is for top down then a fogsheet approach with supplemental particles would probably be the best way to go.

You can use a somewhat tessellated sheet mesh for your fog material and give it a rolling world position offset material using some sine waves. You can give it fog depth by using the node “DepthFade”. You could try using a lit material with normal maps or faking the lighting directly using the material.

In terms of volumetric shadowing of said fog that is possible but tends to look poor for small objects. Shadows on translucency are at a much lower resolution.

Another approach is to use transparent shadow materials that have vertex shaders to project out in the direction of the light. It is actually fairly simple to set up and looks great. Even the GDC kite demo video used this technique for the kite shadows since the kites were too thin to cast shadows using actual lit translucency.

You’ve made some good points. I would also be very interested in such features. Currently you can’t even limit a fog to a certain area on your level, which makes it more or less unusable in my situation.