Now that open vdb is showing up in various places throughout blender, would it be difficult to support open vdb from houdini for example?

I’m starting to get the impression from conversations I’ve had with people from the Houdini community that they’re really interested in trying to render their sims out in blender, because cycles is so fast compared to mantra.

I thought I’d give it a go, so just tried by overwriting blenders openvdb smoke cache with a houdini openvdb cache, but it just seems to crash blender when I try and play it back.

Weirdly I can open the blender openvdb cache in Houdini without any problems. So I thought I’d resave the same file back out of Houdini to make sure it had all of the same primitive/point attributes, and also the same voxel naming conventions, but that didn’t work either.

Any workarounds that anyones aware of? It would be great to get some of those guys invested in Blender before Karma goes GPU, as most Houdini users are also coders, so could work out beneficial to Blender development.

For proper support of external OpenVDB files, a volume object would probably need to be implemented as the current handling of voxel data in Blender is rather primitive. I had one in the works years ago, but I did not have time to finish it.

The OpenVDB smoke caches in Blender store a lot of metadata tailored to the current smoke solver. You could try to replace a smoke cache with one for another software but for that to work, you would need to have to right metadatas and simulation fields. When saving back a Blender cache from Houdini, perhaps Houdini does not preserve the metadatas (or their names, etc.) of the original cache, so that’s why it fails?

1 Like

All meta data seems to match before and after import/export from houdini when cross referencing in Houdini’s geometry spreadsheet.

You can test for free if you like using the houdini apprentice version, just in case i’m missing something obvious.

if you haven’t used houdini before, let me know and I’ll make you a video showing how to import/export the vdb’s, and also how to view the attributes/metadata.

Well, unfortunately I don’t have time to test these sorts of things. As I am the one who originally coded the OpenVDB cache backend in Blender, I thought I would share bits of information as to how it works. When I coded it, I made sure that files were as generic as possible (this is why you can open them in other software), but for reading in Blender, the metadatas have to be exactly how the fluid solver expects them. If Houdini is not changing the metadatas, then there is an issue somewhere else.

As a side note, I also had a proof of concept for a volume object with support to import VDB files from other software, but I never had time to finish it, and now it is outdated. Here is an old video with an animated Houdini file, and a native smoke cache being reimported:

I don’t think it would be too much work to update it to the current (blender 2.8) source code, though. Overriding a smoke cache with files from other software was already tried by others, but I don’t know of any successful attempts, and a volume object would be better suited for the task.


That would be amazing, the volume object definitely sounds like the way to go. I’m not a developer, but it would be great if you could perhaps mention it to one of your old colleagues over at the Blender foundation…maybe they’ll be able to upgrade and merge your source code?

This is great Kevin
I’d love to use it in Blender 2.8
Are you able to time offset the cache with this OpenVDB reader?

No, adding a time offset to the cache is not possible in this implementation. The proper way to approach would be to have modifiers on volumes with a cache reader as for Alembic files.

The Tangent guys who made NextGen did it as a modifier for 2.78 and seems to work perfectly for our needs.

Any possibility this code could be explored and implemented as an add-on or feature set? We’re currently migrating everything across to Blender as much as possible within the studio and rendering volumes already generated in FumeFX or Houdini is posing to be a big wall for us. I’d have a look myself but my coding experience is pretty much zero, so apologies if this is a dumb request…!



1 Like