Attempting to create Klemen lozar's smoke material

So I saw this post from Klemen and immediately wanted to recreate it because it is so cool.

Current result:

I got somewhere with the camera facing but it jitters at a certainangle.
Anyone an idea how it’s being caused? [SOLVED] Somewhere in my calculation I used 3.412 Instead of 3.142 :man_facepalming:
This is what I currently do with my vertex positions:

Inside the custom Node:


This thread should help you. :slight_smile:

1 Like

A little bit yeah… for a plan B technique, because right now when I bend my mesh (for the wind motion) with the rotateaboutaxis node i can’t get that bend to follow the orientation when i rotate my mesh in my level.
Because materials somehow only can get the Z-UP and not the X and Y orientation.
In the GIF you can see it is twisting when i try to rotate it. Any idea how to fix that?
This is what i do:

I also got the camera facing jitter fixed. Somewhere in my calculation I used 3.412 Instead of 3.142 :man_facepalming:


Any luck or updates with this? Was just reading over and it’s really cool stuff!

1 Like

I was busy figuring out a technique he mentioned : “Deriving normals from texture”

But it doesn’t look good at all and i can’t seem to copy his shading at the moment.

EDIT: I also skipped the twisting issue for the rotation from my post above. ill have to go backon it later.


He said this in 1 of his posts:
Closer look at the effect, you can see how it holds up from different angles, does not appear to be facing the camera at all, mostly due to shading. Directional lighting is achieved with a dot product of a normalized direction vector and a normal map.

I don’t know what exact outputs he uses for the dot product for fake lighting. Because whatever i try it doesn’t look the same.

Maybe 4D lights like this thread Smoke Lighting and texture re-usability in Skull & Bones ? i’m not sure, i will search.

1 Like

Maybe this will help UDK | FakeMeshLighting

1 Like

Thanks a lot guys, So I started simple and used random normal texture to test things out.
I seem to have a little progress on the fake lighting shading.
This is what I’m doing:

The issue now is that I don’t get the same quality when i use my derived normals texture


So since I figured my fake lighting with a normal texture it was working but not with my derived normal texture.
To explain my issue I show you an example of a derived normals texture not working correctly.

It was diffcult to figure what I was doing wrong because the output normal looked perfectly fine to me.
Eventually I figured what was going wrong I removed the TransformVector node from my material and disabled tangent space normal in my material settings.

This is how it looks now :smiley:

Now my main issue is that I can’t seem to control the intensity of the normal for some reason (I know I can mtultiply the RG channels).
I’m not giving up I really want to create this before I die


Here you see the dot product working well without the mesh facing the camera calculations in my.

The problem is that when I do the camera facing calculations my vertex normals are not being updated leaving me issues like this.

Anyone an idea of what I can do?


I fixed it :smiley:

Now it is fcing the camera and correctly calulating my derrived normals texture.
Ready to jump in to making it translucent and colorizing it :slight_smile:


Have been lurking watching you problem solve this one and it’s been fantastic. Well done. Looking forward to seeing what make with this technique.

1 Like

First of @colbaltblue I appreciate the feedback :slight_smile:
It’s gonna be one of my lasts posts as It is almost finished. I wanted to show what I’ve got at the moment in translucent and shaded mode. I will have to improve the volumetric shading because the cloud feels too flat. Also the edge transition between dark and bright is too straight and harsh, I’ll have to break it up.

This is what I’m doing:


Woooooo that’s getting so nice ! i love this thread

1 Like

Nice, i saw this and had to try myself =). The mesh rotation is simply just spawning a mesh particle and set it to face camera and ony rotate on Z.
Light vector is not update here so it is incorrect and the light edge is still pretty harsh aswell
here it is:


looks good :+1: I still haven’t updated mine but I don’t see how you did the facing with the particle functionality because its a plane with a bend right? I don’t understand how you let it face the camera and still let the wind move in the same direction. Are you doing the bend in the material?
Also, Is the texture panning according the camera horizontal rotation and if so, how did you do it?

BTW I also have a similar wind effect in a game :smiley:

1 Like

Its a Half cylinder, with no bend, just some taper at the top.
The texture is normal UV panning on V axis.
The bending is done in the material, you can also add some extra simple grass wind.
When you define the vertex offset in the material it will always go the same way even when rotated.

Hope that helps =)

Owh yeah just like I eventually thought.
I’m planning to do UV offset on the U channel by creating a value that ranges between 0-1 from the horizontal camera rot. Although I’m not sure how I would do this.

I found it! It was easy, in fact I remember me doing a similar technique for calculating joystick rotations for a top-down game.
This is what I’m doing:

EDIT: This is my current result:
The shading improved mostly from the smoothstep on the texture result after the spheremask node (Param inputs: min: 0.2, max: 1)

Full breakdwown on my Artstation