VFX For Games Tutorial 02: How to create brute force volumetrics within UE4

tutorials
shaders
ue4
vfx

#1

Our second tutorial for VFX is out and this time I detail creating some brute force volumetrics within UE4 from start to finish. This is useful for vapor/gases close to the ground. There’s a lot of room for improvement and expansion of this technique ranging from clouds in the sky to displaying a terrains height map for a holographic effect.

This method would likely hold up in a production environment, though there is a ton of overdraw. From our initial tests, there seems to be little to no impact on framerate by using this method, though we’d recommend you using this sparingly in larger areas when implementing this.

I recently bought a brand new microphone to help with the sound quality and volume for this specific purpose.

Ground Fog/Vapor:

Clouds using the same method:


I plan on continuing to provide tutorials to the VFX community, so please let me know if you have any further requests. I’d love to see what you guys come up with by using this technique. Admins let me know if I should start combining tutorials into a single thread as I post more over time.


JangaFX: Inferno Anomaly With Fireball Projectiles
#2

This is really cool! Really easy to digest; great job with the video! I’m also happy you did the bonus with the sequencer, had no idea that was a thing :laughing:


#3

Awesome! Thanks for the Tutorial, im learning a lot of interesting thing with your videos


#4

Thanks guys!

Here’s another gif of what could be done with this:


#5

Nicely done! It reminds me of a scene I made in AC: Rev years ago. Tbh, I think your method here is likely cheaper than what I ended up using back then. I had the floor littered with quarter pipe shaped particles. So the overdraw was better if you look down directly, but it was super super bad when you’d look horizontally from close-ish to the ground. Fortunately the camera control didn’t let it go to places where it’d get real bad :sweat_smile:

Have you tried to do ground fires that way? This is something i usually do for funsies whenever I find a cool technique to do anything I try to do fire with it… Just cause… I like to burn things… a little. maybe…

For reference, that shipped on ps3:


#6

Outstanding stuff, thanks a bunch for sharing!


#7

Thanks for sharing :facepunch:


#8

I registered just to say thank you for this. The effect is not just amazing but super useful and your tutorial is really smooth and understandable. It would be amazing if you could share more magic stuff like this. :slight_smile:


#9

Thanks!

I will probably be doing a part two to this tutorial to show how to implement flowmaps and how to create smoke that can be seen from the X/Y axis as well, like the stream of volumetric smoke below.


#10

Looks great! Does it use a raymarching technique, similar to what Ryan Brucks uses in his volumetric smokes? Looking forward for the tutorial. :slight_smile:


#11

Nope its all just layered meshes with a remapping funciton and some minor math.

No raymarching, though that might be the better way to go about it in some cases :smiley:


#12

Need to try this out… right now :star_struck: *heavy breathing *


#13

I like this somke and technic!!! Thank you!


#14

Nice technique :slight_smile: Blueprints makes all of that pretty clear, nice and easy!

I was thinking about absolutely same way to achieve volumetric fog, but was too scary about pixel overdraw. But, meh… looks like performance isnt too bad :slight_smile:

My fog. But instead of using BP i just make some, i guess, a “gradient lookup remapping” for making all planes slicing their own heigth part of texture.


#15

I’m sure there are a few ways to handle this, blue prints was the easiest way I could come up with. Love what you did and the results speak for themselves! One thing you could do is if pixels are completely transparent, delete faces/vertices there and have an adaptive mesh setup. Though I have no clue how to do that right this second :smiley:

Often you’ll find that the top 30-40% of the planes aren’t even used/have color in them and its purely just waste. Though i’m not sure if the cost of adaptive meshes outweigh just overdraw itself.

Overall excellent implementation and thanks for sharing! :slight_smile:


#16

On those cloud gifs you posted…are those the exact same setup as in the initial video?


#17

Indeed they are, just instead of going just in Z+ axis, i made it work in -z axis as well, that way its a full cloud from top and bottom. I would highly recommend not doing it in a full production game as a sky unless its a cinematic or something, or you have the budget for it “somehow” haha.