Skip to main content
8 of 9
added 42 characters in body
vklidu
  • 37.2k
  • 1
  • 64
  • 143

Sorry, my post covers generating smoke as a single mesh in Blender 2.79, and not an entire smoke sim anim, due a buggy particle system (or smoke cache). Blender 2.83 doesnt have texture type Voxel Data. 2.83 comes with a new object type - Volume and would be possible with Voxel Mesher modifier. Here is the patch on the way https://developer.blender.org/D4960


My goal was to ...

  • use voxel data to generate particle cloud from texture (01) or vertex weight (02)
  • particles represent by metaballs
  • animation export as Alembic or Wavefront, that converts metaballs (smoke) into Mesh Sequence animation

test 01 - Mesh from Voxel Data Texture

Blender 2.79 contains texture type Voxel Data that use this kind of data as 3D texture. Blender Manual describes this quite straight forward. And it works for 8-bit RAW and Image Sequence file format (like CT scan or MRI).

enter image description here

It means - it is possible (with some headaches*) to generate mesh from particle system represented by metaball objects, like this ... enter image description here

Troubles comes with voxel file format Smoke (that should be able to reuse data of existing Smoke Domain on another object) and Blender Voxel (that should use externally saved simulation bake) ... enter image description here ... I could see Material Preview in Texture Properties, but nothing was rendered.

Usage of these baked smoke simulations (externally) is buggy for years. Smoke doesn't appear in domain at all / or is shifted / or just a few frames of sim is visible. Not always, and that it makes more difficult to hunt issue. (One for all bug report here - as many of them were closed/archived.)

Anyway ... for your needs, when I assigned particle system directly to domain and Domain was set as Texture for particle density I was able to generate a particle cloud and to mesh one frame of smoke, but not entire animation. Probably for the reason mentioned above - bug. I'm not sure how that one frame is selected, probably current frame set on timeline when assigned? Can't confirm due the refresh issue.


For those interested - in case smoke sim is baked ...

  • add Metaball object
  • select Smoke Domain
  • add Particle system - Emission>Start1 End1 / Source>Volume / Distribution>Grid> / Velocity>zero / Texture>New (Cycles only) / Field Weight>Gravity=zero
  • go to Texture (Particles) Properties - Type>Voxel Data / Voxel Data>Smoke / Color>Ramp=ON to adjust density / Influence>Density=ON

enter image description here

  • set render particles as Object>Mbals
  • export (Mball) as Wavefront(.obj) or Alembic (.abc) that converts metaballs into Mesh Sequence animation
  • (in case someone will fix the bug :) )

enter image description here enter image description here


... another pain as hell is particle system refreshing https://developer.blender.org/T52160 . Even you have visible particle cloud, opening file again hides the particles. To make them visible again I discovered only one weird way - switch to Blender Internal engine into RenderView mode in 3Dview, change particle resolution to something, it refresh particle appearance, switch back to Cycles if needed.


test02 - Mesh from Dynamic Paint - Weight

Dynamic Paint in video of Miikah can use a smoke sim as a "brush" to paint, so I wanted Weight paint into a dense grid using voxel data. Vertex Weight becomes Particle size solver. But ... I don't even thing this was implemented or I do something wrong here. (I could only approved dynamic paint vertex-weight can generate animated particle cloud, but not driven by smoke.)


Resume - faked Fluid Particles seems to be a way to go ... :(


Notes to fix setup of your second blend file

(this part I will delete later)

Particle System Properties

  • Influence > enable Density
  • Field Weights > Gravity = 0
  • Render > Size is very small, try 0.4
  • looks better to use Random for Emission>Grid

Texture (Particles) Properties

  • Color > enable Ramp and move White to left to increase smoke density

Mball Properties

  • keep in mind all metaballs in a scene use resolution from first existing meta object in a scene (doesn't matter what other meta objects are set). That means - lowres for Preview and small particle size value make them invisible for its low res grid.

Time range

  • you have set Smoke cache frame range 1-90 even scene is set 1-150
  • also particles system Life Time is only 50 should be 150

Screens below use – Grid Res 200 / Particle Size 0.1 / Mball Preview 0.2

Smoke Default Preview enter image description here Smoke Viewports Display Color Ramp enter image description here Mball Particles enter image description here

Hight Grid Resolution + Smaller Particle Size + Smaller Metaballs resolution = More detailed final mesh

Bake smoke sim first. If particles are not visible check italic paragraph under my first blend file.

vklidu
  • 37.2k
  • 1
  • 64
  • 143