Skip to content

Commit dea3fd6

Browse files
authored
Merge pull request #1544 from danrbailey/notes_29_11
Meeting notes 29th Nov
2 parents c124055 + 7104f15 commit dea3fd6

File tree

2 files changed

+109
-7
lines changed

2 files changed

+109
-7
lines changed
Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Quorum is present.
2727
2) Secretary
2828

2929
Secretary is Jeff Lait.
30-
30+
3131
3) OpenVDB release
3232

3333
Success, thanks to Andre! Mostly worked smootly, but we have to
@@ -36,7 +36,7 @@ pre-run the weeklies.
3636

3737
A PR is present for the website update for Greg's help docs.
3838

39-
CHANGES.txt needs the 10.0.1 change and spell checking.
39+
CHANGES.txt needs the 10.0.1 change and spell checking.
4040

4141
Greg will post a intro tutorial on the Wolfram community when website
4242
is updated.
@@ -72,20 +72,20 @@ Larry Gritz has started a spreadsheet for how long things are
7272
supported by various DCCs and what studios are still using. We tend
7373
to be on the leading edge in deprecating quickly.
7474

75-
Most are following VFX Platform and Houdini.
75+
Most are following VFX Platform and Houdini.
7676

7777
6) File IO
7878

7979
Can we remove all the IO code from tree/Hierarchy into a separate
8080
.h/.cc? Then do all the IO through that mechanism. This will make a
8181
new file io easier. Hopefully user still uses Archive, it just is
82-
implemented elsewhere.
82+
implemented elsewhere.
8383

8484
This may require always initialization openvdb, even for writing. A
8585
lot of root node methods require an absolute coordinate, so makes
86-
working with offsets very hard in the file io.
86+
working with offsets very hard in the file io.
8787

88-
Can friend be added without changing ABI?
88+
Can friend be added without changing ABI?
8989

9090
Plan is to remove support for the pre-open-source file formats.
9191

@@ -95,7 +95,7 @@ opt-in, so people can use once their pipeline has migrated.
9595
7) VDB Max
9696

9797
This is pending, has been tested internally and is ready to push up
98-
soon. Designed around fog volumes.
98+
soon. Designed around fog volumes.
9999

100100
8) CI
101101

tsc/meetings/2022-11-29.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
Minutes from 156th OpenVDB TSC meeting, November 29th, 2022
2+
3+
Attendees: *Jeff* L., *Andre* P, *Dan* B., *Ken* M., *Nick* A.
4+
5+
Additional Attendees: Tomas Skrivan (SideFX), Greg Hurst (United Therapeutics),
6+
Sebastian Gaida, Robin Rowe
7+
8+
Regrets: *Rich* J.
9+
10+
Agenda:
11+
12+
1) Confirm quorum
13+
2) Secretary
14+
3) Unitialized Point Flags in VolumeToMesh (PR1523)
15+
4) NanoVDB Static Asserts (PR1522)
16+
5) Hollow Mesh (PR1525)
17+
6) Next meeting
18+
19+
------------
20+
21+
1) Confirm quorum
22+
23+
Quorum is present.
24+
25+
2) Secretary
26+
27+
Secretary is Dan Bailey.
28+
29+
3) Unitialized Point Flags in VolumeToMesh (PR1523)
30+
31+
Jeff has tracked down a bug where point flags can be uninitialized in the
32+
VolumeToMesh tool as a result of changing one of the arrays into std::array
33+
recently.
34+
35+
Nick has reviewed and offers to do a 10.0.1 bugfix release for this issue.
36+
37+
4) NanoVDB Static Asserts (PR1522)
38+
39+
Jeff wants to switch on the NanoVDB static asserts as there are compiler
40+
warnings when using Clang15 due to the nullptr checks.
41+
42+
5) Hollow Mesh (PR1525)
43+
44+
Tomas Skrivan from SideFX presents a proposed new hollow mesh addition to VDB.
45+
This is to try and resolve issues arising from converting a level set volume to
46+
a mesh using the VolumeToMesh tool. Specifically, any internal structure can be
47+
erased by the signed flood fill. One application where this has been shown to
48+
be a problem is bubbles inside a water surface.
49+
50+
This is particularly noticeable in the Houdini VDB integration as there are a
51+
lot of places where an implicit rebuild is performed resulting in internal
52+
structure being silently eliminated due to the volume->mesh->volume
53+
conversion.
54+
55+
This feature introduces a new oracle to the VolumeToMesh tool so as to be able
56+
to provide different ways to deduce the correct sign. An example provided in
57+
the implementation is simply checking the sign of the original input volume.
58+
59+
One of the big questions is what the default behavior should be and whether this
60+
needs to be an opt-in improvement or not. Jeff thinks this should be considered
61+
a bug and the behavior changed to address this issue. Ken mentions that
62+
sometimes users rely on the current behavior to intentionally clean up internal
63+
structure. Question of default is more one for SideFX to make the final call
64+
on.
65+
66+
The new SideFX implementation uses winding numbers functionality which is
67+
currently unreleased until the next major Houdini release. An earlier version
68+
of the code has been released as open-source and shared through a Siggraph
69+
presentation. Means that there is functionality available in Houdini that is
70+
not available in the native VDB library. A generic winding numbers
71+
implementation would be a welcome addition to VDB, but shouldn't hold up
72+
getting this feature in.
73+
74+
In terms of performance, this feature lies somewhere in the range of a few
75+
percent up to 20-30% decrease in performance when enabled depending on the
76+
exact situation. Tomas shows a number of cases where this new algorithm does a
77+
better job than the current algorithm. Question from Greg about whether it
78+
resolves an earlier question he had about incorrect results when trying to
79+
resolve a thin tube of a few voxels wide that intersects a box. Tomas
80+
demonstrates that it is a significant improvement on the existing algorithm for
81+
this case. Extending the existing algorthm to consider a larger stencil pattern
82+
of 26 neighbors instead of 6 neighbours would also be expected to improve
83+
results at greater computational cost.
84+
85+
Remaining aspect to resolve is how to expose this in the API. The use of an
86+
oracle in the existing proposal means that explicit template instantiation
87+
cannot be used. Given the complexity and instantiation cost of the current
88+
algorithm, this is a concern. Worth checking if using a std::function argument
89+
instead of a template argument would significantly affect the performance,
90+
particularly for the case where the oracle is being checked only once every
91+
tile. A std::function argument would allow the use of explicit template
92+
instantiation once more, another option is to refactor the method so that
93+
portions of the algorithm could still be explicitly instantiated.
94+
95+
CI checks are failing due to issues with explicit template instantiation. This
96+
implementation is also missing unit tests currently. All in favor of working
97+
towards resolving these issues so that this very worthwhile improvement can be
98+
included in OpenVDB.
99+
100+
6) Next meeting
101+
102+
Next meeting is on December 6th, 2022. 2pm-3pm EDT (GMT-4).

0 commit comments

Comments
 (0)