How to export volumes from omniverse to vdb or usd

when i attempt to export a volume- the volumes never get saved in the file. only the geometry is exported. is there any help for this? thanks!

Hello @stuuff! I found some information on VDB but did not find anything specific on how to export volumes. I am reaching out to the dev team for more assistance.

In the meantime, here is some documentation that may help!

Hi thanks! unfortunately when i press export after selecting all the objects of flow- i get no volume data
Please let me know if there’s any update


Hello @stuuff!

Currently, there isn’t an easy way to do this, but I was able to get instructions from the dev team.

  1. On flowSimulate/nanoVdbExport, set the readbackDirectory where you want to dump files. In some recent Create builds, there is an unfortunate regression here in the UI, it is best if you just copy paste a local disk path. Something like C:\FlowCache. Copy paste from explorer. It won’t show in the UI properly, but it should still work. Currently the readback directory must be local disk.

  2. Set enabled = true, readbackEnabled = true, smokeEnabled = true, temperatureEnabled = true, readbackClearOnStart = false, readbackClearOnStop = false.

  3. Open movie capture. Set to PT mode. Enable motion blur steps (5 subframes is plenty) 1SPP is enough. 60 FPS capture is good in most cases since this aligns to simulation rate. Capture the sequence. Motion blur here is just to allow multiple ticks per frame, which helps the VDBs flush within a single frame.

  4. In the readbackDirectory, you should see many VDB files. Optionally upload these files to ov-content. Disable VDB export to avoid running unintentionally.

  5. To be non-destructive, duplicate FlowSimulate, FlowOffscreen, FlowRender prims from the original simulation and change to a different Flow layer.

  6. Set forceClear on the original FlowSimulate to disable the original sim. This is enough to disable all other emitters on the Flow layer as well.

  7. On the new FlowSimulate, set forceDisableCoreSimulation = true. Simulation isn’t needing during playback. Set forceSimulate = true, this will allow the cached result to show when scrubbing the timeline.

  8. On advection, set forceFadeEnabled = true. This allows fade to be active even when the simulation itself is not.

  9. On advection->smoke/velocity/divergence/temperature/fuel/burn prims, set damping = 1.0. This will fully clear the grid each frame, to prevent stale voxels as the VDB changes shape.

  10. Create a NanoVDB emitter. Place this NanoVDB emitter under an xform. Set xformOp:translate to offset one half of the cell size. (So for cellSize of 2.0, translate = (1.0, 1.0, 1.0). This is needed due to a different in sampling math, I am treating this as a bug and will fix soon, but this is needed in older Create versions. If this translate is not done, block artifacts can appear and it will not look identical to the original sim.
    The need for translate is fixed with FlowUsd 0.3.10. No transform is needed.
    Set smoke and temperature couple rates to a high value, 2000.0 should be enough.

  11. With the NanoVDB emitter selected, scroll down in the property window to the Time Samples section (Create 2022.3.0 (Kit 104) or newer required. Hit Edit for nanovdbSmokes:assetPath.

  12. In the Time Sample Editor window, hit the folder icon and browse to one of the flowSmoke VDB files. In second text box, replace the last number in the VDB file with %d to serve as a wildcard.

  13. Set First Frame and Last Frame to align with the range captured. Hit Generate Sequence, the text editor should fill with a list referencing the VDBs exported earlier.

  14. Repeat for the temperature VDB.

A feature request ticket was generated from this post. OM-73863: How to export volumes from omniverse to vdb or usd