I'm running computations on NanoVDB grids on the device then convert them back to OpenVDB in order to build the grid in Houdini.
This round trip Open -> Nano -> Open is really slow, especially the NanoVDB to OpenVDB part.
The HDK allows to build VDB using GU_PrimVDB by exposing
GU_PrimVDB* buildFromGrid(GU_Detail& gdp, openvdb::GridBase::Ptr grid, const GEO_PrimVDB* src = NULL, const char* name = NULL) { return GU_PrimVDB::buildFromGridAdapter(gdp, &grid, src, name); }
static GU_PrimVDB* buildFromGridAdapter( GU_Detail& gdp, void* grid, const GEO_PrimVDB*, const char* name);
I was wondering if there was faster way to build a grid by specifying a array of value / positions. So I could extract the necessary information of a NanoVDB grid using a kernel on the device without having to download the whole data on the host.
I already managed to build nanovdb Grids on the device, which increased the speed of the VDB From Particle node by 10x, but writting them back is really challenging.
Any help would be appreciated !
Thanks