MiikaHweb Blog -> Archive

Blender smoke subframes

May-17-2013    18 Comments

No subframes testOne of the remaining "easy-to-fix" issues with Blender smoke simulator has been that you can't have fast moving objects emitting smoke. At least not that easily or smoke flow would leave behind a bunch of disconnected dots instead of continuous flow of smoke.

Now I have committed subframes for smoke flows. That means you can define how many additional time samples will be taken between each simulation frame. Below is an example of a fast moving particle with multiple subframes and no subframes:

One thing to notice is that this is a flow setting, not domain one, for couple of reasons. First of all, subframes are applied only in the emission phase. Simulation itself won't calculate additional time samples, so there will be no change in behavior of the fluid and you can use very high subframe counts with only minor performance drop. Also this allows you to enable subframes only for smoke flows that move fast enough to benefit from it.

Another new thing is ability to define size of flow particles. Previously it was common issue that when you increased domain resolution for final bake, particles became way too small. Now you can just increase particle size if needed.

These new size based particles are also compatible with my previous "full sample" high resolution update. So no more blocky particles either. Besides, this allows using smaller than "low res cell" sized particles, so you can have detailed tiny particles without having to increase simulation base resolution up to several hundreds like before. It's enough to just increase high resolution divisions. :)

Here are couple of renders from my subframe test scenes:

These new features are available in Blender trunk builds of revision 56884 and higher.

Posted by MiikaH at 17:43

Category:Blender, Development
Tags: Blender, Smoke, Fire

(Comments, questions or discussion about this post.)

May-18-2013 07:36
Amazing!!! :D
Internet Explorer
May-18-2013 11:11
Thanks for your excellent work! Very useful and much appreciated.
May-24-2013 02:57
Google Chrome
May-24-2013 06:54
I have been waiting for this feature for a long time... way to go Miika Hämäläinen!
May-25-2013 13:41
Yes! That's a great change! Thank you, Miikah! Now it looks that we can simulate almost everything that is related with smoke&fire in Blender!
May-27-2013 00:23
Great improvements! My only feature request would be to make the Smoke Domains ‘time scale’ value go to zero (instead of just 0.2), so we can easily do some smooth freeze frame effects (and super slow motion!).
May-28-2013 01:21
For some reason ‘initial velocity’ for smoke particles doesn’t work with the current build…
May-28-2013 08:11

Thanks for reporting, its now fixed in r57070.
Jun-08-2013 07:24

I'm pretty sure I fixed that already last week. That tutorial was released around same time, so I can assume he was using older build back then.
Jun-09-2013 02:04

Oops, I just realized I had a slightly outdated build of blender.
Jun-09-2013 02:13
Wow! I just realized that the new smoke ‘subframes’ option also applies to particles! Thank you Miika Hämäläinen!!!
Matthew Merkovich
Jun-14-2013 19:15
This was exactly what I needed for the shot I am working on in which a guy shoots a smoke grenade. One thing I'd have liked to see is also subframes on collision objects. Then I could have the projectile properly penetrate the initial smoke cloud coming from the grenade launcher. Its a good start.
Matthew Merkovich
Jun-14-2013 20:42
I meant to write, "It's a good start though." (I really need to proof-read before hitting the "send message" button.)
Jul-09-2013 11:26
Please report this to Blender bug tracker or mail me a blend file in which this bug happens.

Anyway, if the flow isn't moving then there shouldn't be any change in the simulation behavior regardless of subframe count. However, if the flow is moving then simulation obviously changes as well. Otherwise subframes would be useless, right? :p
Jul-10-2013 17:58

Sorry, I need a .blend file. Video tells me nothing about the issue or cause.

If those are particles, have you tried baking them first? Sometimes subframe calculations mess up particles if they are calculated at the same time.
Nov-21-2013 20:12
As far as I can tell that is caused because subframes don't change how often the simulation step happens. Only how often brush is sampled for the next simulation frame.

Your fast moving object of high initial velocity gets emitted in correct place, but is moved on the simulation step by the initial velocity and therefore is out of place.

Only solution I could think of would be to allow setting true subframes for the simulation. But based on my earlier tests, lower simulation step (at least with the simulation algorithm Blender uses) causes simulation to drastically lose detail. So it's definitely not something suitable as a generic option as in "more substeps = better quality"... :(

If you really need this, you can try making that scene over double duration and use domain "time scale" of 0.5. Then playback the result double speed.
Jan-08-2014 15:06
Hi Miika,
when I have flame emitter object parented to bone in animated armature, the subframes seem not to work(burning torch in hand). It also doesnt work when the motion is a shapekey(like fast flapping burning flag). Cant tell if its a feature or bug:) thx.
Apr-22-2021 06:05
StarDark StarDark StarDark StarDark Star
It is a family of client software, server software, and services developed by Microsoft. Microsoft office is a package of applications like Microsoft Word, Microsoft Excel, Microsoft Access, Microsoft Publisher, Microsoft PowerPoint, Microsoft OneNote, Microsoft Outlook. office.com/setup

Write a comment:
Name: *
Verification Code: *verification image (?)
Message: *

By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021