Unreal Engine 4 - Smoke Plume

I made a smoke plume with few textures…
No subuv texture… No particle


oh wow, how’d you do this without a flip book?

Looks like UV Distortion to me. More noticeable at the top where the effect is fading out.

I’m curious how lighting was done on this.

1 Like

Feel free to explain a bit more in detail how you made it :slight_smile: It looks like a scrolling an slightly distorted smoke texture but regarding the lighting: Is it painted into the texture? Some Unreal SSS? Is the smoke using a NormalMap to get the volumne?

1 Like

You can’t get that lighting with a normal map.
I’d say there are two options. Raymarching or prerendered diffuse light stored in a channel. Knowing @Vich I’ll go with raymarching.

1 Like

Would depend on whether your scene lighting would have to be dynamic though right?

If the lighting conditions stay the same, assuming it happens in the skybox, it might just be a better option to render out high quality lighting outside of the engine. Potentially even baking in colour.

1 Like

it’s texture panning and add some uv distortion

1 Like

You’re right. Lighting is using 2d raymarching tech.
You can get a basic idea of this tech through this link


Partikel is right. I used 2d raymarching tech which is used in Uncharted 4.

here is the basic idea of this technique =)


You’re right!
You know me :smile:

Baking beautiful diffuse smoke is another option.
But in game, no one knows what’s happening about scene. It can be changed.
So I prefer using 2d raymarching tech in game engine and matches with scene’s lighting condition.

That’s what I meant with lighting stored in a channel. Regular six point lighting. Just pick the correct channel based on the nearest probe.

1 Like

Oh I see. Yeah 6d shadow smoke is cool technique too. I have tested that before

It is realistic, but needs 2 textures.
I’ve heard that starwars battlefront and battlefield used that technique…right?


Yep, among others. It does cost two textures, but so does normals which produce inferior results.


Awesome looking work @Vich
In a production environment I’m guessing others have implemented the ray marching technique in a more optimal way?

Just from what I know most games couldn’t/cant afford to ray march smoke like that throughout using the base technique without improving/optimizing it somewhat - or perhaps having it implemented in code rather than at engine level?

  • Just wondering as I’d love to use this for production use in future but I don’t really understand what one would need to do to optimize/make such a technique legible in engine :slight_smile: [As others around me have said it would be too expensive to ray march ]
1 Like


I said this is ‘raymarching’ but it is not raymarching actually. I just sampling alpha texture according to the light vector direction. So It is not that heavy. You can use this technique in production level.
Here is UE4 example. I made this example last year. So it is changed little now. But basic concept is exactly same. Check this out.


Ahhh okay that makes sense!

Thanks a lot man I will check it out really appreciated :slight_smile: