Minutes from 71st OpenVDB TSC meeting, Nov 17th, 2020, (EDT)

Attendees: *Nick* A., *Jeff* L., *Ken* M., *Dan* B.

Additional Attendees: Johannes Meng (Intel), JT Nelson (Blender),
Andre Pradhana (DW), Bruce Cherniak (Intel)

Regrets: *Peter* C.

Agenda:

1) Confirm quorum
2) Secretary
3) GitHub Issues
4) OpenVDB AX
5) PR #754 - Morphology
6) SOP Extrapolate
7) Corner vs Center Sampled
8) Google Test
9) Does the Meeting Survive Host Leaving?
10) Next Meeting

1) Quorum was confirmed.

2) Secretary was Jeff Lait

3) GitHub Issues

Initialize is on Dan's agenda.  No one has looked into CMake issue yet.

4) OpenVDB AX

After merge deprecated code will be removed.  Along with any additional feedback for 7.2.  Unless Ken blocks, it can be committed tomorrow.  Nick will make Jira tickets for the items that we wish to get to later.

5) PR #754 - Morphology

PR is for speeding up dilation, cleaning up the file and adding new methods for nearest neighbour algoirthms, and add the tile policies.

dilateVoxels now calls through to the new morphology class. They produce the same result, so un-updated code will work as expected.  Free functions activate/deactivate have been moved to Activation.h to separate them out.

New erodeActiveValues supports neighbour rules as well as tile policies.  dileate/erodeActiveLeafValues only runs over leaf nodes and is invoked by the higher level once the tiles are set.

PRESERVE_TILES followed by density is the same result as EXPAND_TILES, but PRESERVE_TILES has optimizations.

topologyUnion traditionally will always fully voxelize active tiles where there is overlap.  The new preserveTiles will avoid this and leave active tiles active.

Grain size is not clear for this algorithm, which is why only a threaded flag is exposed.

There is now a choice to steal the node or collapse the tile into a constant tile that greatly speeds up the dilation of large trees.

To support the other choices for erosion, we dilate by one, subtract to get the wave front, then dilate this wave front the desired iterations.  Subtracting this from the original gives us the erosion.  Erode by face will use the old implemenation, other choices will use this new implementation that is slower, but not too much slower.

Methods that call this from Houdini have not been changed.  We suggest we can change this now as it is a bug fix.

Excellent comments in the code.

How important is it to keep the broken paths around?  We keep complicating the API to support broken behaviour.  Should we have more documentation to solve this?  It is important to know about PRESERVE vs IGNORE tiles as you need to be aware of tiles when working with grids.   But doesn't dilate always activate, and the addition of new tiles is just chance?

Do we introduce a new method, dilate, that has the proper behaviour, and deprecate the old one?   Maybe an API compatibility flag to adjust the defaults?  We don't have a clear answer how to solve this, in this particular case it isn't relevant as the only one we'd want to change would be topologyUnion, that should be removed in any case.

6) SOP Extrapolate

PR has been updated, needs Jeff to look at it.

7) Corner vs Center Sampled

The PDF has been posted internally and is approved.

8) Google Test

We had already discussed this a year ago as well. Dan now has a version done swapping our own test out.  We should put this in after AX.

9) Does the Meeting Survive Host Leaving?

Nope.

10) Next Meeting

Next meeting is December 1st, 2020. 1pm-2pm EST (GMT-5).
