Pages

Friday, 5 August 2011

Cigarette smoke

For this tutorial I assume you got a fair bit of brain and experience with 3D Studio MAX.
Reset your scene and start by making a cone with radius1: 10, radius2: 150, Height: 800, Height segments: 80, Sides: 40 and mark the "Generate Mapping Coords" This will make the basic sharp of the smoke. It should look something like the cone on Fig01. If your smoke got another shape, just modify the setting so it fits.
The Cone got caps in the top and bottom, we don't want those, so add an edit mesh and cut them off.
And to be honest the shape doesn't look much like smoke, it have to be noisy, and more noisy in the top then the bottom, for this we well need the "Mesh Select" and soft selection. add the modifiere and select the first row of vertices from the top. Mark the "Use Soft Selection" and set the faloff to 750. remember the height of the cone was 800. so the vertices in the bottom is not affected.
Now with the "Mesh Select" in "Sub-Object" mode add a noise modifiere. set all the strenght values to 250 and the scale to 130. Because we use soft selection the noise is most affected in the top, just like we wanted. See Fig02. We also want the smoke to be animated, so mark the "Animate Noise" and set the frequency to 0.05 since 0.25 is way too fast. Now its so slow 100 frames isn't enough, so scale it to 200 frames. The animation still doesn't look right, it just waves from side to side, and smoke usually comes from the bottom and goes up, lets fix that. In the noise modifiere go to "Sub Object" mode and go to frame 200 and press animate and move the gizmo about 800 units up, and go out of "Sub Object" mode. See Fig03.
But one cone isn't enough. Make 4 copies so you'll have 5 cones all in all. but they all look the same, just change the noise seed for the 4 new cones, so they all have a unique number. If you want to, you could also change some of the strenght values and the scale of the noise.
Fig01Fig02Fig03
Now make a Camera and a lightsource with shadow mapped shadows perpendicular on the camera, and turn the viewport to shaded mode, and you should have something like this Fig04, maybe in another color.
Now we just need a material that looks like smoke. It have to be transparent in the top and more solid in the bottom. The edges of the smoke also have to be more solid then the center of the smoke.
Make a new material, and set the "Specular Level" and "Glossiness" to 0 since we don't want any highlights.
Under "Extended Parameters" set the "Type" to "additive" This means its adds the color to the background. So if you have a dark transparent material, it wouldn't show up because there isn't much to add. We can use this to make the center of the smoke dark, and thereby transparent.
So we want the center of the smoke dark, and the edges white. The Falloff material can do this, so add one in the "Diffuse" slot. This will make the faces with the normals pointing at the camera black, and the faces with normals perpendicular to the camera white. Adjust the curve so it looks like Fig05.
We also want the material to be more illuminated on the edge, so copy the Falloff map to the "Self-illumination" slot. And adjust the curve so it looks like Fig06.
Like I set it have to be more tranparent in the top then the bottom, so add a gradient map in the "Opacity" slot. set color1 to 0,0,0 color2 to 20,20,20 and color3 to 255,255,255. And under "coordinates" set tiling to U:0.9 and V:0.9 if you doesn't do this the very-top of the smoke will be white, since the gradient tiles a bit.
Now hit render.. And you should have something like the picture in the bottom of this tutorial.
If you don't like the result, you could always adjust the diffuse, self-ilumination and opacity map. to make it more or less transparent, or change the color, or...

Fig04
Fig05
Fig06
Tips:
Add a gradient in the diffuse falloff, and make the gradient go from yellow to white, so the smoke will be slighty yellow in the top, Simulating the nicotine in the smoke.
Its also possible to make a touch using this technique, just make the diffuse colors red/orange maybe in a noise map, and add some fractal noise to the the gradient opacity map.
Add a flex modifier before "Noise" and "Mesh Select" and animate the smoke, this will cause the top of the smoke to lag behind the bottom.
Final words:
If you use this tecnique for anything usefull, please send me some pics.
If you find any errors in this tutorial, please mail me.
You can download the MAX file here

Download [10Kb]

No comments:

Post a Comment