OpenVDB

   34954   24   6
User Avatar
Member
691 posts
Joined: June 2006
Offline
Hi,

The toolkit is included in Houdini 12.1.33 production build? or I have to compile the source from the website: http://www.openvdb.org/download/index.html [openvdb.org]

Thanks.
Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
User Avatar
Member
789 posts
Joined: April 2020
Offline
I am pretty sure you will have to compile the sop nodes if you want to play with these new goodies. I looked in 12.1.33 and in the proto_install and did not see them by default.

Building openvdb and openvdb_houdini turned out to be pretty straightforward on linux, because all the libraries vdb depends on are included with houdini. So you dont need to track down the correct versions, you can just point it all to the houdini dir. Those are just small changes in the makefile.

I also tried to build on osx, and have not completely figured that one out.

Cheers,
Koen
User Avatar
Member
691 posts
Joined: June 2006
Offline
Thank you Koen!!!
Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
User Avatar
Member
290 posts
Joined:
Online
I haven't tried it yet: can Mantra natively render openVDB volume primitives?
User Avatar
Member
789 posts
Joined: April 2020
Offline
Currently it does not. You could easily write a mantra volume procedural for that, but that one does not seem to be provided in the current openvdb_houdini package.

I am curious to see what the integration with houdini will bring eventually, because with a mantra procedural, you would need to write out the vdb to a .vdb file before rendering (much like a delayed load). I wonder if sidefx will add support for vdb's inside the ifd file.

Cheers,
Koen
User Avatar
Member
290 posts
Joined:
Online
Easily might be a relative term, as I've never made a procedural using the HDK. Worth looking into, though, although by the time it takes me to get it written, compiled and usable, Side Effects will likely have already integrated it…
User Avatar
Member
7725 posts
Joined: July 2005
Online
In the openvdb_houdini package, one should already be able to create VDB primitives and save them into .geo files. As IFD files simply embed .bgeo files, VDB primitives should already get naturally passed along to Mantra via .ifd files.

In H12.1's Mantra, I think VDB primitives get ignored. However, the plan is to have them rendered natively in the full OpenVDB native integration.
User Avatar
Member
789 posts
Joined: April 2020
Offline
That sounds great, cant wait to see how this will all work inside houdini.

cheers,
koen
User Avatar
Member
7725 posts
Joined: July 2005
Online
I finally got a chance to try out the tar balls from http://openvdb.org [openvdb.org] and here's the steps I needed to compile against H12.1. It seems that their Makefiles have changed somewhat from when I since used them.

$ echo $HFS # ensure this exists, source houdini_setup as appropriate if not
$ cd /tmp
$ tar xvfz ~/Downloads/openvdb_0_90_1_library.tgz
$ tar xvfz ~/Downloads/openvdb_0_90_1_houdini.tgz
$ cd openvdb
$ # edit Makefile, replace all references to “/rel/third_party/houdini/12.0.628_64” with “$(HFS)”
$ # edit Makefile, remove all “-luuid” references
$ # edit Makefile, find the line which begins with “install:”, remove references to “vdb_view”
$ make install # installs to /tmp/OpenVDB
$ cd ../openvdb_houdini
$ # edit Makefile, set HOUDINI_DIR to $(HFS)
$ # edit Makefile, set HOUDINI_INSTALL_DIR to $(HIH)/dso
$ # edit Makefile, remove all “-luuid” references
$ make all # installs to $(HOUDINI_INSTALL_DIR)
$ make install # installs to /tmp/OpenVDB


To run with OpenVDB:

$ export LD_LIBRARY_PATH=/tmp/OpenVDB/lib:$LD_LIBRARY_PATH
$ houdinifx


Try putting down an OpenVDB Reader SOP and loading a vdb file downloaded from openvdb.org.
User Avatar
Member
789 posts
Joined: April 2020
Offline
Great, thanks Edward.

I noticed in the source code some of the houdini code is written by sidefx. If I have questions specific to the houdini implementation, would this be a good platform, or shall I wait until openvdb has some way of discussing?

Cheers,
Koen
User Avatar
Member
7725 posts
Joined: July 2005
Online
I don't mind having Houdini-related OpenVDB discussions here. Mind you, I (or any other developers) don't necessarily check the forums.
User Avatar
Member
691 posts
Joined: June 2006
Offline
The DW_OpenVDBLevelSetNoise node make Houdini crash, but the rest of the toolkit works like a sharm, is incredible how the DW_OpenVDBMeshVoxelizer do the job at a very hellish speed!!!!; I hope that this library comes full integrated with Houdini in a future version, in DOPs for the SDF volumes, and in sops to manipulate the vdb data like the native houdini volume primitive.

Right now is possible to convert a VBD grid to a houdini native volume primitive to for example use as collision?

Thanks Edward for the installation tips!!



Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
User Avatar
Member
7725 posts
Joined: July 2005
Online
alejandro
Right now is possible to convert a VDB grid to a houdini native volume primitive to for example use as collision?

It's not currently possible to convert between the native Houdini volumes and VDB but I hear it's on the todo list for the integration work.
User Avatar
Member
691 posts
Joined: June 2006
Offline
Thank you Edward!!!
Feel The Knowledge, Kiss The Goat!!!
http://www.linkedin.com/in/alejandroecheverry [linkedin.com]
http://vimeo.com/lordpazuzu/videos [vimeo.com]
User Avatar
Member
229 posts
Joined: May 2006
Offline
Did anyone successfully compiled the openVDB stuff for Mac ?

Two issues i currently have ,
a) is linking agains -lrt (some kind of realtime-lib not available on mac)
b) complains about

/vol/apps/hfs12.1.33/toolkit/include/sys/SYS_AtomicImpl.h:156:1: error: explicit specialization has extraneous, inconsistent storage class
‘static’
compare_and_swap<int64>(volatile int64 *addr, int64 oldval, int64 newval)
^


Any ideas ?

Cheers!
Seb
User Avatar
Member
789 posts
Joined: April 2020
Offline
Hello Seb,

Unfortunately, I could not get vdb to compile on osx yet either. Just wanted to mention that Ken set up some google groups to support openvdb:

https://groups.google.com/forum/?fromgroups# [groups.google.com]!forum/openvdb-forum

Cheers,
koen
User Avatar
Member
7725 posts
Joined: July 2005
Online
Infernalspawn
Did anyone successfully compiled the openVDB stuff for Mac?

I do but I use a drastically different version of the Makefile.

a) is linking agains -lrt (some kind of realtime-lib not available on mac)

You can just remove the dependency.

b) complains about

/vol/apps/hfs12.1.33/toolkit/include/sys/SYS_AtomicImpl.h:156:1: error: explicit specialization has extraneous, inconsistent storage class
‘static’
compare_and_swap<int64>(volatile int64 *addr, int64 oldval, int64 newval)
^


This suggests that your HDK environment isn't set up. Have you successfully compiled an HDK sample? Make sure you know how to do this first.

If you're on Lion/Mountain Lion and didn't have some form of XCode installed older than 4.2, then you'll also need to download and point your PATH (or CXX) to use the gcc 4.2 compiler. (eg. here's a link that seems to have it: https://github.com/kennethreitz/osx-gcc-installer [github.com] )

For reference, I've attached an example of the differences needed to compile on Linux vs OSX vs Windows (it's designed to be included into a Makefile).

Attachments:
platform.mk.txt (7.5 KB)

User Avatar
Member
29 posts
Joined: Jan. 2011
Offline
I complied the newer version of the OpenVDB(0.96.0) and it comes with OpenVDBConvert SOP which convert Houdini Volume to OpenVDB Volume and It works great.

The only problem i am having is how to render OpenVDB Volume. (No idea how to write Mantra Volume Procedural )


edward
alejandro
Right now is possible to convert a VDB grid to a houdini native volume primitive to for example use as collision?

It's not currently possible to convert between the native Houdini volumes and VDB but I hear it's on the todo list for the integration work.
Harsh Mistri
Effects TD
Method Studio Vancouver
User Avatar
Member
36 posts
Joined: Sept. 2008
Offline
I can't compile OpenVDB.
It seems they changed the Makefile again, since Edward's recipe to compile it is not working.

Ubuntu 12.04
OpenVDB v0.96.0
Houdini 12.1.77
Sourcing houdini_setup

Makefile is for sure pointing to Houdini headers and libs, but is not working.
Can anyone help me?
User Avatar
Member
29 posts
Joined: Jan. 2011
Offline
I think they have changed the Makefile
What kind error you are getting ?
Can you give little bit more information here.


FabianoBerlim
I can't compile OpenVDB.
It seems they changed the Makefile again, since Edward's recipe to compile it is not working.

Ubuntu 12.04
OpenVDB v0.96.0
Houdini 12.1.77
Sourcing houdini_setup

Makefile is for sure pointing to Houdini headers and libs, but is not working.
Can anyone help me?
Harsh Mistri
Effects TD
Method Studio Vancouver
  • Quick Links