3
$\begingroup$

I'm working an a short 2min animation, fully smoked based, in order to emulate a kind of ink effect on all my characters, landscape, etc (all the object in the scene are smoke emitters). Obviously, the cache files takes a lot of disk space (I mean : a lot!!), and a lot of baking time.

Basically, I'd like to generate the smoke data once for each type of object, and re-use it every time I have the same kind of object in a (different) file.

For an example, if one of my scenes contains a mountain, emitting smoke, with specific smoke settings, for a specific number of frames etc., and another one contains another mountain, with a a completely different shape. Can I use the generated smoke cache from the first object with the second (assuming that I desire the same smoke settings on both)?

I know that ticking the "external path" option, and giving to it a path allow to reuse the generated smoke data.

But my question is: what will be shared exactly? Can I use the data between two files, containing different objects of different shapes, but with the same desired domain and flow settings, in order to save some disk space and baking time?

Actually I don't understand precisely what kind of exact information is stored in the ".bphys" cache files.

$\endgroup$
2
  • $\begingroup$ Stored are domain voxels for each frame. Thats basically a 3D image per frame with domain resolution. $\endgroup$ Aug 17, 2015 at 14:45
  • $\begingroup$ Thanks, that's what I was afraid too, but I was wondering, as soon as the domain would be the same size each time, maybe it could have been a solution. The specific informations that are stored in the cache files is still not clear for me. $\endgroup$
    – Aleph
    Aug 17, 2015 at 15:23

1 Answer 1

3
$\begingroup$

2.8x (Mantaflow solver)

Yes you can. Specify cache directory, set Type > All and Bake.

enter image description here

Open a new file and enable Smoke Physics for any object.

  • First set type All and Bake again, even there is nothing to simulate.
  • Second - now you can specify cache directory to previously baked cache

enter image description here

To keep smoke texture same care about correct XYZ proportions. Blender doesn't care about objects geometry, just about object's Bounding Box as you can see.

2.79 (original answer)

Can I share the data between two files (different objects /shapes)?

Yes, you can.

  • Bake smoke simulation of "A.blend", into format you like/need (bphys/vdb)
  • open a new "B.blend" file
  • add a new Cube (or any other Mesh object), with the same Aspect Ratio as baked domain (= XYZ Dimension should be equally divided/multiplied), and enable Smoke sim in Physics Properties for it)
  • in Properties > Smoke Cache panel check External and set path to the baked sim folder
  • in the list of smoke simulations name existing cache same as your baked sim files from A file. Like here I named cache your_name

enter image description here

If you wouldn't name the A cache, blender creates a generic name, like "536D6F6B6520446F6D61696E", so copy that. But it's always better to name cache before baking to something that make a sense for you, so you can better recognise what cache you are attempting into a new blend.

IMPORTANT note: You can SCALE domain as you like, but in all directions to keep aspect ratio of original domain!!! Difference in proportion will cause disfunction of smoke visibility, so check that.

What will be shared?

As was mentioned - each baked file represents 3D texture per frame of voxel data. Assigning data to an object you can imagine as classic 2D image assigned to plane object - image fits to plane dimension - just in 3D. These data doesn't contain any geometry of mesh (like mountaine vertecies).

From your description is not clear what do you want to achieve exactly, to me. It seems to me you probably didn't catch the point of system. For sim you need one object to be emitter of smoke and second smoke domain that is something like environment (box) where all smoke happens. Emitter object only iniciate reaction inside domain and this "reaction" is represented as 3d texture data. These data are only smoke, and after bake independent on the emitter.

Here is what kind of data are baked in VDB format. For more checkBlender Reference Manual

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.