GSoC 2012 - Smoke Simulator Improvements

" …

Implement items from smoke ToDo list:

  • In case of subframes, interpolate simulation data from cached frames to allow basic motion blur. (#25631)

"

great news

great! Im really really looking forward for this!! Thanks! :slight_smile:

The latter is already possible. “Force Field integration” in this case means to make the smoke sim act like a force field on other objects like particles, cloth etc…

Hey MiikaH, one item from your ToDo list has already been added to trunk by Genscher:

  • also emit smoke from child particles if any. (#28307)

You can remove this, it’s already working fine, see this .blend:

http://www.pasteall.org/blend/14101

:slight_smile:

Nice project Miika. What kind of interaction do you plan to implement with other types of physics? E.g. will throwing a rigid body through the smoke cause perturbations?

Good luck.

Azrael3000: Interaction between smoke and rigid body objects is already worked on by Genscher.

Look how it’s visualized in Houdini:

http://www.cmivfx.com/tutorials/view/276/Houdini+Smoke+And+Dust

Basically you got a plane that you can move through the domain. The plane can show infos like heat or direction of smoke movement/velocity.

Another option I thought of is have a color ramp for the heat where the user could control max/min cutoff by simply dragging markers on the ramp, this would allow a volume preview of heat instead of a 2d plane, both methods could be useful.
Considering my method can already be done in the render with a few simple material settings I wouldn’t think it would be too hard to implement into the 3d view.

Hi, following this project with enthusiasm.

Could you maybe have a look at the time-scale slider? currently all other simulations let you animate that value in the graph editor without any restrictions, even set it to values outside the limits of the slider. In the smoke simulator this doesn’t work, it’s always clamped in [0.2, 1.5]. i used this features with the other simulators to freeze time, it would be nice if this were possible in the smoke sim too.

Thanks :slight_smile:

This morning at work we were watching the new features of fumeFX. There is a nice function that allows you to deform the domain after the simulation, affecting the smoke too.

I don’t know how complicated it is, but looked really nice so I just wanted to put this idea here. :slight_smile:

here is what I am talking about: http://www.afterworks.com/FumeFX/RenderWarps.asp?ID=6b

Adding a lattice to a baked smoke sim: it seems so simple, but it’s never occurred to me. It’s a great idea – a terrific way to tweak the baked sim without having to re-bake! Plus it could allow you to get smoke to move in precise ways, if you ever needed that option…

I can imagine simply adding a lattice modifier after the smoke modifier in the modifier stack.
I don’t know how complicated it would be to code, either, but it would be a great addition to smoke!

yeah I was thinking about a lattice but at the moment is not working. However I think the principle at the base of the feature is similar, but it need to be coded in the sim…

Yes at the moment a lattice (applied to the domain) will deform the domain (which only has 8 vertices, so it’s a pretty rigid deformation) but it doesn’t deform the smoke itself; rather it will clip the smoke if the domain is deformed enough to move outside where you see smoke.

In blender internal, Rendered Smoke is a texture for a “Volume” Material.
It should be mapping coordinates of this texture that have to be deformed.
UVcoordinates related to mesh’s geometry are not available for Volume materials.

Maybe it could be easier to make smoke following a curve guide. It would need a re-bake.
Such new tools should be created to influence calculated Voxels to avoïd re-bake.

Ah. So it sounds like this would be pretty complicated to code. For my part, having it look like a lattice deformation (or a curve guide, I suppose) would be awesome. But it’s too bad you’d have to recalculate the voxels every time.

Droooooooooolllllllllllll… glad to see someone working on the smoke sim! Rock on!

Fried Chiken branch is really impressive.
Vertex Group restriction does not seem to work on a mesh with a subdivision surface modifier.

Edit :
Thanks for the quick fix. It works fine, here.

Revision: 47510 http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47510 Author: miikah Date: 2012-06-06 11:47:07 +0000 (Wed, 06 Jun 2012) Log Message: ----------- Fix: Smoke flow vertex group didn’t work with subdivision modifier.

I have been waiting for this for a long time! This is awesome!

Miika, been playing around with Demohero’s build on graphicall and i must say it is fantastic, thanks for the great work! One thing i can’t figure out however, is why is the material is already perfectly set up as fire+smoke in the viewport it still needs to be adjusted the “old” way through mats and textures. Since you already went through all the effort to figure out the sweetspot to make it look really good, is there a 1-click setting to apply it to the final render?

What is your purpose ?
Actually, you can already collide smoke with an obstacle shape.
Result of smoke simulator is nothing else than a 3D texture. When you have bake it, you can use this texture on any mesh with a volume

You can distort texture by modifying its mapping values.

http://www.pasteall.org/pic/show.php?id=32900