lead developer is ken museth - ken.museth@dreamworks.com
open VDB is a open source c++ library
it boasts a novel hierarchical data structure
developers mention since it is a tree structure anyway
- not external trees need to made for iteraction over voxels
Open VDB includes a suite of tools for manipulating voxels in the custom format
current release is 3.1.0
it is adopted by many other COTS software
the file format has option compression
vdb files have a 'delayed load' operation
voxel:
a voxel smallest addressable unit/space in the vdb volume file format
tiles: (unique to VDB)
represent large constant regions
Active State:
each voxel has a binary state (1bit boolean)
the significance of the bit is application independent
the underlying datastructure
"unbounded" - almost infinite index space.
its fast - it runs in constant time O(1)
its 'fast' with random access and sequential access
compact - small memory footprint
has fast IO
has dynamic topolgy
feature a set of conversion tools to convert from or to polygons
voxel: smallest addressable unit of volumetric space
Each voxel has a binary state (1bit boolean)
its fast - it runs in constant time O(1)
its 'fast' with random access and sequential access
Inspired by a B+ tree
its a "very" shallow tree
its a fixed depth tree of four
the root node is the only node that is dynamic
it was inspired by a "B+ tree"
its a "very" shallow tree
the path from root to leaf is always 4
it has a built in iteration tree (BVH - bouding Volume Hierarchy)
its a fixed depth tree of four
the root node is the only node that is dynamic
the "fan-out" factor is high in the beginning and then finite
(we want to cover a large index base)
Screen shot1
voxel iterator visits the values of the voxels
voxel iterator is internally composed of node iterators
in VDB voxels reside at the leaf node level
tiles - higher up in the hierarchy - represent a section of constant value
memory hierarchy
RAM is very slow (compared to CPU cahche) - but its dynamic
how to program for this structure - using cache oblivious algroithms
example shows the vdb as a level-set a distance field
bit-masks play a central role in vdb
a bitmask is the simplest way to set a state
no where in the data structure are we storing coordinates as we do for vertices of a polygon
voxels are implictly encoded in the bitstring
cheap bitwise operations are used ie shifting
you can think of the bits as storing the topology - not coordinates
No comments:
Post a Comment