Articles -> Creating realistic fire in Blender 2.5

Creating realistic fire in Blender 2.5

Creation date: 2010-5-1
Last update: 2010-7-24


This tutorial shows how to use Blender 2.5 smoke simulator to create realistic fire effects. You are supposed to have basic knowledge of the smoke simulator so I'm only focusing on points that are related to fire effect.

So what you need is a recent Blender 2.5 build. You can get one from my Blender Builds page or an official build from Blender's site.


In this tutorial we create the following scene: Suzanne monkey head on fire:

Check a finished *.blend file and other examples at the end of this tutorial.

Tutorial contents

1. Emitter settings
2. Domain settings
3. Creating a fire-like material
4. Post-processing
5. Samples and tips

1. Emitter settings

Align suzanne and domain

In this tutorial I'm using Blender's Suzanne monkey head as my fire flow.

Add a new mesh object and create a new particle system for it to be used as a smoke flow. You also can add the domain cube now or later when we move to domain settings.

To emit fire, you can always use a typical "No physics" particle system but in this burning Suzanne example I have used another method: moving short life particles.

It allows fire to have some random initial velocity causing some cool turbulence and random movement.

Particle emitter

For the particle system I used the following setup: 100.000 particles with lifetime of 6. (Lots of particles are needed when using this low life time.) Then "Velocity" settings: I decreased the normal oriented velocity and added some random velocity. Don't use too high values because default "initial velocity" on smoke simulation is quite sensitive.

You can also emit particles from mesh "Volume" to reduce blockiness near emitter if you like.

Particle emission settings Particle velocity settings

Now just remove all gravity effect on "Force Fields" tab and particle system is ready. And of course it's good idea to set particle "Render" to "None" and "Display" to whatever you like.

Particle force settings Particle rendering settings

Smoke Flow

Now create the smoke "Flow" using this particle system. As for the settings: I increased "Temp. Diff" to 2.0 to get faster rising fire. You can lift it even higher if you want it to rise even faster, lower it if you want "slow motion". This also depends on how large fire are you making.

Smoke flow settings

Also note that "Density" should be set to 1.0 because our material settings rely on volume density and any lower density would mess up those settings.

2. Domain settings

Now I'm going to set up the domain. If you have a still emitter you can simply scale the domain to match emitter and add slight borders and some space on the top. When dealing with fire, it's easier to minimize the domain size needed because fire disappears so quickly.

Remember to scale your domain cube in "Object Mode"! (Scaling in "Edit Mode" will likely cause issues with fire texture coordinates.)

Domain settings

Domain base settings

Now domain settings. The most important thing in domain panel is to enable "Dissolve". This will cause smoke to slowly vanish in the given time creating a very fire-like effect. I used "Time" of 21. You can adjust this quite freely depending on how small the emitter object is and how high fire you need. Also if you want to have more smoke coming out of fire you can double this value.

Then enable "Initial Velocity" because our particle system is made to have some velocity. If you are using a Blender build that has my new smoke patch, you can also tweak velocity multiplier and change domain border collision handling.

Resolution is up to you. Final resolution I used was 64 base, but 32 goes well for test simulations.

High resolution

Domain high resolution

Second trick to get fire-like simulation is to use "High resolution" smoke with FFT-noise.

So enable "High resolution" and change "Noise Method" to "FFT". Please note that FFT isn't available on some builds. I don't know why.

I used 2 resolution divisions for final render, but you should run some test simulations before even enabling high resolution. This way you don't have to use so much time in resimulating if some values are messed up. :)

Noise type comparison

Here is a comparison between Wavelet and FFT noise.

As you can see the difference isn't that big after all. FFT is a bit sharper and therefore "better" for fire. But in many cases they are almost identical.

Also note when simulating fire that domain resolution changes fire behavior and looks. So using as high resolution as possible isn't the best way to go. High resolutions produce "smaller" flames and eventually it'll look unrealistic. So you have to keep reducing or increasing resolution if you need larger or smaller flames. That's why I "only" used final resolution of 64.

3. Creating a fire-like material

Hardest part is to render the fire properly. The trick is to use smoke density as emission value. This works, thanks to fast dissolve. Smoke is fading so fast that it doesn't lose it's shape and in general the density is very close to the "heat" of fire in similar situation.

Material settings

In domain object material settings, I've used pretty low density scale and scattering. So set "Density Scale" 4.0 and "Scattering" 0.6. We also need to add emission. Set it to something between 2.0 and 10.0 depending on how bright fire you want.

Fire material settings Fire material settings

You also have to significantly lower "Step Size" because bright emission spots cause noise very easily. I used "Step Size" of 0.015.

Texture settings

First you must create a texture similar to the one used to render normal smoke. This one will affect density only.

Density texture settings

Now add another texture. It will be used to control emission strength and color. Set it to be voxel data as well.

Add a new texture for emission. Emission texture settings.
Image illustrating the effect of emission texture. It controls both emission strength and color.
Image illustrating the effect of emission texture. It controls both emission strength and color.

In texture settings enable texture "Influence" only on "Emission" and "Emission Color" and change "Blend" type to "Multiply". This way we can scale down material emission and color values on spots where density is low and preserve the high emission on dense areas. Now fire brightness depends on voxel data density.

And now the most important part. Scroll back up and open "Colors" tab, enable "Ramp" to use a color ramp to adjust fire color and brightness.

Here is my color ramp. It renders almost smoke free fire that is dark red on the edges.

Emission texture color ramp.

When a using color ramp on voxel data left side is 0.0 density and right side is 1.0 density. We need high density to be bright and hot fire and it should become colder when density gets smaller.

You can also slide the "left edge" color to the right to add more smoke. If you leave it halfway, smoke with density less than 0.5 will be rendered as regular smoke with no emission whatsoever. In this tutorial I have used quite smoke free setting.

You can adjust color ramp to add more smoke. However you might also have to add more dissolve time to get high enough fire.
You can adjust color ramp to add more smoke. However you might also have to add more dissolve time to get high enough fire.

And there you have it. If you render now, it should look like fire. We just need to add some post-processing and we are done.

4. Post-processing

Open node editor.

If you are new to post processing / compositing in Blender no worries. Just switch to "Node Editor" from any viewport.

Select and enable compositing

Now click "Compositing Nodes" icon and select "Use Nodes" box.

Composition nodes are used to edit rendered image after rendering. Usually this includes color balancing, blurs and glows.


The effect we are adding is just a simple glow to make fire look brighter. I have used two glare nodes to produce a balanced but nice looking glow effect.

Node setup for a simple but nice looking glow.

First I apply a "Glare" node to add "Fog Glow". It's the basic smooth glow. Then the second Glare node adds "Streaks" type glare. It's a star like glow and I think it fits very well for fire.

Post processing node differences.

5. Samples and tips

Tutorial sample files

Download the finished burning Suzanne scene: fire_sample.blend

Here is another sample created with almost identical domain settings, just with another particle system.

Download this sample: fire_sample_slide.blend

NOTE: Number of particles has been reduced to 1000 in these *.blend files to reduce file size. Remember to change it back to 30-100k before baking anything.


Other fire examples

Here is two more videos to demonstrate more ways you can use particle emitter to create different fire settings. No *.blend files are available for these, but you can make your own quite easily by editing those previous samples.


Mancandy - the master of fire: Made with multiple fire emitters. One emitting from Mancandy's hands, one for the fire ball and one for the flames in the end.


Flamethrower: Made with a high velocity particle emitter.


Tips to help you out

  • For fast test renders, remember to use large step size and disable anti-aliasing.
  • Use long lifetime static particles to get "stable" fire, short lifetime moving particles to get turbulence.
  • You can see the simulation progress from Blender console window or on mouse cursor as percent.
  • If you set material preview to "Cube", you'll get a tiny preview of the fire/smoke domain. You might find this useful when tweaking fire color ramp. Too bad you can't zoom in the material preview as it's kinda small right now. :P
    Domain preview visible on material editor
    Domain preview visible on material editor
  • Blender 2.5 is an experimental version, so it might be unstable. That's why you should always use a recent build and save often.

(Comments, questions or discussion about this article.)

DEEP
Jul-25-2010 23:17
StarStarStarStarStar
YOU ARE AWESOME. THANKS FOR THIS TUT
Adam
Jul-26-2010 07:20
StarStarStarStarStar
Whoa! Great tutorial!

That mancandy fire is so realistic
Big Fan
Jul-26-2010 21:37
StarStarStarStarStar
Terrific! thank you!
anmisto
Aug-02-2010 17:03
StarStarStarStarStar
awesome never knew how to do it but now i do
Quisto
Aug-04-2010 21:01
StarStarStarStarStar
Thank you!!!!!
Rob Cozzens
Aug-05-2010 10:03
StarStarStarStarStar
Amazing! This is some of the best CGI fire I've seen. Definitely the best fire from Blender.
pbrn
Aug-05-2010 12:47
Very impressive!
I like your work on the Live Paint tool!
Thank you!
rafek
Aug-06-2010 10:44
very very cute and wonderful
XoniX
Aug-14-2010 06:47
Merci tuto à couper le souffle et très simple merci merci
todo
Aug-16-2010 16:10
didn't work
todo
Aug-16-2010 20:08
it worked!!! thx
DSkyline
Aug-17-2010 20:24
The best fire effect made with blender i've ever seen. Great work!
Sebastian
Aug-21-2010 15:44
StarStarStarStarStar
Thanks a lot for this tutorial, keep it up! good job
Stef
Aug-28-2010 11:36
StarStarStarStarStar
Thanks so much !!!
Missxu
Sep-15-2010 17:29
StarStarStarStarDark Star
Hello! That was wonderful, but, when ever I render it I don't see the Smoke/Fire.
Any Help?

Missxu
ScaroDj
Sep-17-2010 06:15
Ow! Here's the tutorial. I don't have time right now to study it, but as I spoke too fast... :P
pebble garden
Oct-11-2010 00:36
Thank you for this excellent tutorial. It works like a charm and taught me a lot of new things. Bravo!
BluntShortFilms
Oct-15-2010 22:45
StarStarStarStarDark Star
great tutorial!thanks for a well written tutorial,but one thing you never mention to bake..i was confused but figured it was the last thing to do.thanks again!
BUR
Nov-09-2010 21:27
thank you Miika for tuts, but with blender 2.54 project not work(no fire). can you update, please, tutorial for latest blender version?
Whimsy Collective
Nov-10-2010 09:24
StarStarStarStarStar
Thank you for the tutorial.

Might it be possible to see the Flame Thrower .blend file
ChrisP
Nov-28-2010 23:27
StarStarStarStarStar
Wow this tutorial looks rock solid. I love the new Blender 2.55, just have to find out how to run the scripts(no easy window anymore). This tutorial shows some of the new awesomeness available. To make such quality renders it's quite impossible in the previous versions or it would just take far more nodes and hard work in tweaking. Thanks for sharing =). Feels good to be enlightened. God Bless.
ssawyer
Dec-01-2010 21:09
StarStarStarStarStar
For everyone having trouble getting this to work, you need to go down to the bottom of each of your textures and specify the domain object. That should fix it.
IanSmith
Feb-04-2011 13:41
StarStarDark StarDark StarDark Star
The smoke works but not the fire. There's not enough information about whether or not to use density, heat etc for the fire texture.
DaHumm
Feb-06-2011 12:55
StarStarStarStarStar
Perfect.
Skykooler
Feb-12-2011 06:56
StarStarStarStarStar
Wow, this was just what I was looking for! Thanks!
car313
Feb-19-2011 07:05
Thanks a lot for sharing your knowledge!Terrific Tutorial.
Can I trouble you to consider a detailed nodes tutorial for us Blender dummies?
Knight
Mar-01-2011 04:19
Wow, what a fantastic tutorial. I really appreciate the time and effort you put into this; it saved me that time and effort myself. :)
matrix
Mar-13-2011 22:28
StarStarStarStarStar
Hello,
the tuto looks great , maybe you could add more infos and steps for the begginers.

For me i can't render it , even if i can see the smoke in blender preview.. , when i render it can't see the smort / fire .

Please help.

You can answer me here : matrixofdeath@hotmail.fr
Peter
Mar-27-2011 20:20
Maybe I did something wrong, but I think this isn't working in Blender 2.56a. (Loaded sample files)
Any ideas?
Apart from that: Great work!
Peter
Mar-27-2011 20:53
StarStarStarStarStar
Oh, I forgot to bake. You should mention this ;-)
Kjell Inge Sandvik
Apr-08-2011 16:30
Where is the "domain object material settings"?
(Using version 2.57 RC2).
Finnish waltsu
Apr-16-2011 19:02
StarStarStarStarDark Star
I have the same problem, i cant find "domain object material settings". Im using 2.57.

Finnish waltsu
Apr-16-2011 19:05
StarStarStarStarStar
SOLVED! (Change material Surface -> Volume) =)
Blender_Enno
May-18-2011 23:45
realy great work and i think many of us can use your tut..
i think sebastian and andrew and co use it right now... and i´m next ^^

thx for work
Jimmy Gunawan
Jul-09-2011 00:59
Miika, thanks for this tutorial and fantastic Dynamic Paint! I learn a lot from your articles. Great tutorial.
Sooraya Q
Jul-12-2011 14:09
StarStarStarStarStar
Awesome tutorial. Poor Suzanne, monkey needs
a fluid simulation fast!
Wes
Aug-09-2011 05:27
StarStarStarStarStar
Ok now HERES a good tutorial! Sorry about the last one i commented on, it was rather rude, but it is very un informative. But this ones GREAT!! I wish more were like this!! Thanks alot!!
Chris
Aug-22-2011 07:00
Outputting a transparent PNG image for compositing... how do you do it? I'm not a newbie... but for some reason this is defeating me. Whenever I output an RGBA image from Blender using fire from a tutorial like yours, it looks nothing like what I see in the image viewer in Blender (much more faded and grey). I've tried using "Straight Alpha" and "Premultiplied Alpha" but nothing seems to work... help?
Shawn
Sep-03-2011 19:09
Very very new to blender. Just had to say THANKS for taking time to teach us through this tutorial. It looks awesome!
Styleknight
Sep-19-2011 18:16
StarStarStarStarStar
Simply the Best. It's because people like you Blender will rock the world. I now have faith in being a 3D creator.
Animaticoide
Oct-08-2011 21:58
Your tutorials are always the best ! Thanks so much for this article. Keep it up !
cgmystic
Oct-22-2011 17:08
Awesume stuff !
moshe
Nov-08-2011 15:35
awesome! thank you very much... any idea on how to make the domain have no shadow?
Blender baker
Dec-03-2011 00:11
Looks good, but the only thing I can get to render is what looks like a hot metal monkey, I'm using 2.59, please help!
JamesD
Dec-09-2011 22:45
StarStarStarStarStar
Thanks so much Miika!!! I've been looking for a tutorial like this!
YJ, ROK
Jan-17-2012 12:41
StarStarStarStarStar
This is godly. two thumbs up. Waaay up.
Blipblipblur
Feb-25-2012 18:48
fantastic, so many other tutorials are just not as good as this one, 100% perfect.
Travis Gatlin
Mar-03-2012 21:31
Very good tutorial! I followed it exactly and got extremely good results! Wasn't quite as high quality as any of your test renders though. I will be using this same method multiple times in the future. Thanks so much.
JIm Hyslop
Mar-26-2012 02:23
Great tutorial, thanks.\n\nI must have missed a step somewhere, though. When I render, all I see is a black silhouette of Suzanne against a grey background. I don't see any smoke or flames. Any suggestions on what to check?
Tyler
Apr-27-2012 18:31
StarStarStarStarDark Star
Awesome tutorial, never new how to make fire until now:)
Y0a0bon
Jun-07-2012 15:04
StarStarStarStarDark Star
Hey ! Very good job, easy to follow !
But my render doesn't show ome fire.. And in your blend file too: no fire when I make a render :/
Shinigami
Jun-11-2012 19:13
Good work, realistic and easy to learn.. tks
Dwayn
Jan-03-2013 17:05
bug with the files to get
Fredie
Jan-05-2013 04:08
StarStarStarStarStar
hey man, it's simply fantastic. it is possible to do it in the game engine?
gab
Mar-24-2013 10:21
StarStarStarStarStar
Thanks for the whole tutorial. And a big thanks for the .blend ! Sometimes we just need to get the shit done as fast as possible.

Ritcik_mandyam
Feb-08-2014 06:53
StarStarStarStarStar
Someguycommiinground, that's not miika h's fault. That looks like a compositing or lighting or something like that error. So if I were you, I'd re-rate it with the four or five stars that this tutorial deserves.
steph
Apr-14-2014 21:26
StarStarStarStarStar
Thanks a lot Mika, your text tutorial is much more helpful, than the youtube-vids out there. (in case of these fire-sims)

stephen
Dec-05-2014 21:08
StarStarStarStarStar
Miika, thank you for this tutorial. I download the fire_sample.blend and my system seems to be poor performance while rendering one frame. it tooks me about 8 seconds to render a frame. is it normal ? I am new in blender. I thought the graphics card is a major problem, so i bought a Quardo 600 to check the performance since the recommendation in blender site and wiki show someone has good experience on this kind of graphics card. I would like to know how fast when you render a frame and how long does it taken to generate a video ? in my system ,100 frames takes around 15 minutes.

my system is core I5 2.6G
DDR3 8G system memory
Quardo 600
64bit Windows 7

todaytuts
Jan-24-2015 15:24
StarStarStarStarStar
that was awesome !
Kris
Sep-18-2016 20:22
StarStarStarStarStar
Wow this is awesome, thanks for your time to write this tutorial.

I'm an illustrator that totally noob and never try blender before. I want to create hyper realistic fire and smoke, I can't make it looks perfect and natural using digital painting.

Thanks :)
joker123 deposit pulsa
Apr-26-2021 04:28
May I simply say what a relief to uncover an individual who actually knows what they are talking about on the web. You actually know how to bring an issue to light and make it important. More people ought to look at this and understand this side of the story. I was surprised you arent more popular because you certainly possess the gift.

Write a comment:
Name: *
Site:
Language:
Review:
Verification Code: *verification image (?)
Message: *
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021