hi all! We're proud to announce that OpenVDB 2.0.0 is now available and is fully integrated into Houdini 13 that released earlier today. Visit our (re-designed) website for highlights, source code, documentation and an example Houdini file.
For details, check out the complete change-list [openvdb.org] for this version.
We put a really great example HIP file on the downloads page [openvdb.org]; I hope it should answer a lot of questions, but feel free let me know if you need clarification on anything.
Of course, if you ever have feature ideas, run into any issues, or have questions, you can catch us over at the OpenVDB forum. [openvdb.org]
thanks and happy halloween!
-jeff
Production release of OpenVDB 2.0.0
5204 7 2- jbudsberg
- Member
- 92 posts
- Joined: Aug. 2010
- Offline
- sabudimir
- Member
- 10 posts
- Joined: Nov. 2012
- Offline
- jbudsberg
- Member
- 92 posts
- Joined: Aug. 2010
- Offline
of course! spend some time with it, there is a ton in there. FYI, I tweaked a couple things and we re-uploaded this morning; let us know if you find any issues.
Just to clarify, the file has 2 sets of OpenVDB nodes:
* nodes that ship with Houdini natively
* nodes that come with the open source version of OpenVDB (that you would need to download/install from github).
Almost all of the examples are set up with native nodes; however, where appropriate there are networks with the open source nodes (new nodes/features not yet adopted into Houdini, etc). These open source nodes are denoted in green.
Of course, the file will work just fine with vanilla Houdini (simply ignore the error messages on startup), and the missing nodes will appear as merge nodes.
I hope that helps!
-jeff
Just to clarify, the file has 2 sets of OpenVDB nodes:
* nodes that ship with Houdini natively
* nodes that come with the open source version of OpenVDB (that you would need to download/install from github).
Almost all of the examples are set up with native nodes; however, where appropriate there are networks with the open source nodes (new nodes/features not yet adopted into Houdini, etc). These open source nodes are denoted in green.
Of course, the file will work just fine with vanilla Houdini (simply ignore the error messages on startup), and the missing nodes will appear as merge nodes.
I hope that helps!
-jeff
- dulo
- Member
- 383 posts
- Joined: June 2010
- Offline
- goldleaf
- Staff
- 4159 posts
- Joined: Sept. 2007
- Offline
- jbudsberg
- Member
- 92 posts
- Joined: Aug. 2010
- Offline
not sure if there is an ETA on SESI's end.
in the meantime, houdini's native python api allows you to grab a lot of info about the vdb grids from intrinsic attributes (check my example hip). for manipulating grids, the vop can do all sorts of magic. if that's not enough, you'll need to compile the open source stuff per access to the more sophisticated libraries/api.
in the meantime, houdini's native python api allows you to grab a lot of info about the vdb grids from intrinsic attributes (check my example hip). for manipulating grids, the vop can do all sorts of magic. if that's not enough, you'll need to compile the open source stuff per access to the more sophisticated libraries/api.
- dulo
- Member
- 383 posts
- Joined: June 2010
- Offline
- jbudsberg
- Member
- 92 posts
- Joined: Aug. 2010
- Offline
I'm referring to the one on the OpenVDB downloads [openvdb.org] page. In any case, you can do stuff like this:
node = hou.node('/obj/example_levelset/mesh2ls6')
geo = node.geometry()
search =
for p in geo.prims():
if p.type() == hou.primType.VDB:
vdb = p
# vdb grid name
name = geo.findPrimAttrib(“name”)
print ‘\n%s \n%s \n%s’ % ('-'*20, vdb.attribValue(name), ‘-’*20)
# vdb grid attributes
for attr in vdb.intrinsicNames():
for key in search:
if key in attr:
val = vdb.intrinsicValue(attr)
print ‘ ’, attr, “:”, str(val)
for example, executing that on a level set yields the following:
——————–
ls
——————–
measuredvolume : 4861.27221732
background : 0.600000023842
voxelsize : (0.20000000298023224, 0.20000000298023224, 0.20000000298023224)
activevoxeldimensions : (211, 209, 165)
activevoxelcount : 607659
volumevisualmode : iso
volumevisualdensity : 1.0
volumevisualiso : 0.0
vdb_class : level set
vdb_creator :
vdb_is_local_space : 0
vdb_is_saved_as_half_float : 0
vdb_value_type : float
vdb_vector_type : invariant
node = hou.node('/obj/example_levelset/mesh2ls6')
geo = node.geometry()
search =
for p in geo.prims():
if p.type() == hou.primType.VDB:
vdb = p
# vdb grid name
name = geo.findPrimAttrib(“name”)
print ‘\n%s \n%s \n%s’ % ('-'*20, vdb.attribValue(name), ‘-’*20)
# vdb grid attributes
for attr in vdb.intrinsicNames():
for key in search:
if key in attr:
val = vdb.intrinsicValue(attr)
print ‘ ’, attr, “:”, str(val)
for example, executing that on a level set yields the following:
——————–
ls
——————–
measuredvolume : 4861.27221732
background : 0.600000023842
voxelsize : (0.20000000298023224, 0.20000000298023224, 0.20000000298023224)
activevoxeldimensions : (211, 209, 165)
activevoxelcount : 607659
volumevisualmode : iso
volumevisualdensity : 1.0
volumevisualiso : 0.0
vdb_class : level set
vdb_creator :
vdb_is_local_space : 0
vdb_is_saved_as_half_float : 0
vdb_value_type : float
vdb_vector_type : invariant
-
- Quick Links