Basic Game Smoke - thoughts?

Hey all,

I tasked myself with creating a smoke material in UE4, no flickbook textures, no simulation, just using the editor nodes and textures. I am pretty happy with the motion of the material, and I haven’t done anything in terms of the emitter modules yet.

I am always looking to improve though, and wondered what you guys thought of this attempt, and any tips you might have to improve the material itself :slight_smile:


Edit* smoother video… other one was a bit choppy


I think this is looking nice, texture and motion-wise :slight_smile: , I think next you should look at ways to have your smoke material react to the scene lighting. I’d probably start with some approximate hemispherical lighting where it is shaded differently by the light from the sky and the light bouncing off the ground.

Hey Ryan, thanks for the feedback! I must admit lighting is something I haven’t looked into much yet. Hopefully I will get round to it soon :slight_smile: but as soon as I do I will post an update on here… any resources you have for tips are always welcome!

lighting particles is still something i have to look into a bit too but a cool trick is multiplying a gradient over your texture. there is a good example in the gdc talk on diablo 3.

it starts around the 30 min mark. i think this method is a little more camera dependent though but still cool to know.

1 Like

I’ll second what @Ryan said (lots of ryans up in here). A vertical gradient is often the best way to quickly add dimension and lighting to your sprites. With noise-based particle textures, you don’t necessarily need to rotate them to get variation between the particles, so a simple gradient may be sufficient.

For more detailed stuff, I’d look at how clouds are lit relative to the sun. When clouds are between the sun and the viewer, the thin areas of the cloud are bright due to single-scattering and the thick areas are dark due to self-shadowing. When you are looking away from the sun at a cloud, the edges are darkened and the center is bright for much the same reasons. Try recreating this effect in your material :smiley: You can get the dot product of the light vector and camera vector to know if the camera is looking toward the light source and lerp between the different shading behaviors.

Combine this with either some soft normalmap data or with just vertical gradients, and you can get a lot of extra detail in your smoke!