Uploaded image for project: 'OpenVDB'
  1. OpenVDB
  2. OVDB-57

Densify/Prune to specific Node Level

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • Core
    • None

      The idea here is to expand the functionality of voxelizeActiveTiles() and prune() to take an integer node level argument, allowing for tuning of the topology generation from these methods. For example, for voxelizeActiveTiles:

      void voxelizeActiveTiles(bool threaded = true, const Index level = 0);
      

      Where the default maintains the original behaviour, but values of 1,2,3 etc only densify the grid up to those node levels. A value of 1 would result in active internal tiles being densified to the leaf level, but not being voxelized into leaf nodes. Similarly with prune, a value of RootNode::LEVEL would represent the default behaviour.

      This is useful for controlling the allocation/re-allocation of VDB data dependant on scene scale - we choose to keep a VDB at a given level of sparsity throughout a variety of computations to improve performance. For example, we have a use case where we want to represent regions of space at the leaf level, but we know that the leaf nodes themselves will always be constant (the tree should always be a set of active tiles level 0). They can be pruned even further, but we only want to "voxelize" them down to a particular level when we run various operations over them.

            Unassigned Unassigned
            nna nna
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: