Skip to content

Commit 48dd8bf

Browse files
authored
Merge pull request #1791 from ghurstunither/Various_tsc_meeting_notes_2023_2024
Various TSC meeting notes
2 parents f199c39 + aa208d1 commit 48dd8bf

File tree

7 files changed

+625
-0
lines changed

7 files changed

+625
-0
lines changed

tsc/meetings/2023-01-24.md

Lines changed: 125 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
Minutes from OpenVDB TSC meeting, January 24, 2023
2+
3+
Attendees: *Jeff* L., *Andre* P, *Dan* B., *Ken* M., *Nick* A., *Greg* H.
4+
5+
Additional Attendees: JT Nelson (Blender)
6+
7+
Regrets: *Rich* J.
8+
9+
Agenda:
10+
11+
1) Confirm quorum
12+
2) Secretary
13+
3) Broken Houdini download link
14+
4) Open PR's
15+
5) Fracture CSG tools
16+
6) Active states
17+
7) Sharpening filter
18+
19+
20+
------------
21+
22+
1) Confirm quorum
23+
24+
Quorum is present.
25+
26+
2) Secretary
27+
28+
Secretary is Greg Hurst.
29+
30+
3) Broken Houdini download link
31+
32+
Houdini download link is broken at openvdb.org downloads page. Happened during git lfs switch. Need to upload regularly using git.
33+
34+
File not updated often, so it's ok to not use git lfs and just use regular git commit.
35+
36+
Maybe the URL needs to change in the html source when using git lfs?
37+
38+
4) Open PR's
39+
40+
Python bindings (1515)
41+
* Ken will try to look at the PR tomorrow
42+
* Recreate the PR to remedy the CLA issues and credit the original author
43+
* Or squash everything and go as if everything is just one commit
44+
45+
Switch to using the static asserts (1522)
46+
* Why do we have a special wrapper for the static assert?
47+
* NANOVDB_ASSERT instead of the static_assert
48+
* Soon nanovdb will require C++17 (waiting on pnanovdb)
49+
* Ideally we'd have #ifdef platform instead of #if 1, so keep skeleton code present through #if 0
50+
* Ken will approve and merge
51+
52+
Prefer fixed-width integer types instead of size_t (1528)
53+
* Awaiting another approval -- Dan will approve
54+
55+
Add missing separate_arguments cmake call (1534)
56+
* Needs another look -- not entirely clear why this was added
57+
* Splits list of arguments in case they're separated by non-standard delimiters
58+
* Perhaps re-ask OP what failed / why make this PR
59+
60+
Support for IlmBase versions < 3.1 is deprecated and will be removed (1529)
61+
* vdbtool stuff
62+
* This PR looks to remove support for old version
63+
64+
Remove the explicit default assignment operator (1530)
65+
* Remove explicit default assignment operator in nanovdb
66+
* Once something is given a default, you need to set default for other things too
67+
* More defaults need to be removed in the same file before approval
68+
69+
Consolidated ValueAccessor implementations (1547)
70+
* Perhaps someone can build and see if everything still works, test against Houdini, etc.
71+
* Implementation related questions added to the PR by Dan
72+
* The override specifiers might be redundant
73+
* Need to add missing isCached in code base in similar piece of code.
74+
75+
Fix Segfault in Projection Mode of VDB Advect Points SOP (1559)
76+
* Just awaiting approval from Jeff
77+
78+
Fix all the int-in-bool-context warnings with GCC9 (1563)
79+
* Switch to use constexpr
80+
* Still need macros to guard type conversions? (Node type conversion warning, just relevant to float portion now)
81+
* LOD removed for bool grids
82+
83+
5) Fracture CSG tools
84+
85+
https://github.com/AcademySoftwareFoundation/openvdb/issues/1566
86+
87+
Seemless free cuts -- how can you do this with OpenVDB? Can do it in Houdini though since it has robust mesh support.
88+
89+
Really need this to make your split-frame free of artifacts and for water-tight union.
90+
91+
Our current choice is to not support robust mesh computation. Currently OpenVDB just has polygon soup. Mainly used for translation purposes. Robust support could lead us down a rabbit hole.
92+
93+
By templating our meshes, it's probably not clear that if you wrote your own accelerated structure, what methods you need.
94+
95+
Houdini seems to use everything in OpenVDB here, and so we could return polygon soup and edge data list (MeshToVoxelEdgeData) and the user can do it. The SOP can be a reference.
96+
97+
Point OP to this SOP / OpenVDB methods.
98+
99+
6) Active / Inactive States
100+
101+
What should the default behavior be and how to expose different functionalities.
102+
103+
Default behavior proposed: Max of values and if either is active make result active.
104+
105+
Currently the activeness of states is not being brought over.
106+
107+
Not more efficient to make 2 passes when combining multiple grids. Loses cache coherency.
108+
2 passes node-wise will be more efficient than 2 passes tree-wise.
109+
110+
Do we want the ability to handle active states differently?
111+
Maybe we have a use to ignore when any grid has an inactive value.
112+
113+
max( (0.0, inactive), (-1.0, active) ) --> (0.0, active) or (0.0, inactive)?
114+
115+
What does it mean for a fog volume node to be active? Tags (GRID_LEVEL_SET, etc in enum GridClass) give implicit meaning to active states / values
116+
Majority of tools don't seem to normalize fogs to lie between 0 and 1. Difficult to maintain this discipline.
117+
118+
Make sure to make whatever choices extendable. Tricky part is coming up with different patterns.
119+
Selection merge and reduction merge, etc.
120+
121+
7) Sharpening filter
122+
123+
Switch away from boost dependencies & add unit tests.
124+
125+
Seems like updated PR could be around the corner.

tsc/meetings/2023-05-02.md

Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
Minutes from OpenVDB TSC meeting, May 02, 2023
2+
3+
Attendees: *Jeff* L., *Andre* P, *Ken* M., *Greg* H., *Dan* B.
4+
5+
Additional Attendees:
6+
7+
Regrets: *Rich* J., *Nick* A.
8+
9+
Agenda:
10+
11+
1) Confirm quorum
12+
2) Secretary
13+
3) SIGGRAPH 2023
14+
4) Website broken link
15+
5) Root node offset
16+
6) I/O revamp
17+
18+
------------
19+
20+
21+
1) Confirm quorum
22+
23+
Quorum is present.
24+
25+
26+
2) Secretary
27+
28+
Secretary is Greg Hurst.
29+
30+
31+
3) SIGGRAPH 2023
32+
33+
Course accepted with good feedback from reviewers.
34+
Must sign over copyrights for anything in the presentation. Need to do this now.
35+
Course material must be submitted by June 5. Option to revise slides by August 11.
36+
37+
For ASWF: tentatively do Bird of a Feather and advertise SIGGRAPH course.
38+
39+
40+
4) Website broken link
41+
42+
PR for broken Houdini link to be merged.
43+
https://github.com/AcademySoftwareFoundation/openvdb-website/pull/71
44+
45+
Fixed link:
46+
https://www.openvdb.org/download/files/houdini_examples.hip-1.0.1.zip
47+
48+
49+
5) Root node offset
50+
51+
Root node dense, all other nodes are dense. Root essentially hash table.
52+
53+
Since root is sparse, root access is slower. Tend to avoid touching the root node. e.g. value accessors.
54+
55+
Root is centered at origin (0, 0, 0), and so a small sphere centered at the origin makes 8 children.
56+
57+
The offset mitigates this issue.
58+
59+
Root node now has mOrigin member, just like all other nodes (added in v10)
60+
61+
Currently mOrigin is hard coded to origin still and even has checks to throw errors if not.
62+
63+
First pass tried to hard code half offset (-2048, -2048, -2048) but saw no measurable speedup.
64+
65+
Can we make mOrigin anything? If so looks like we will have massive overhead -- merging trees, etc will need to rebuild tree structure.
66+
67+
If you guarantee that the root node is aligned with grandchild of other root
68+
e.g. If mOrigin is a multiple of 128, then only misaligned is child nodes of the root.
69+
And so during these operations, only root node needs to be rebuilt.
70+
It _can_ generalize to arbitrary fan factors but need different number from 128.
71+
2 level tree is a special case, but n (>= 3) follows above logic.
72+
73+
What is the impact on the existing code? CSG, Combinations, etc.
74+
Merging 2 grids with incommensurate origins is tricky if const operators... duplicate data etc.
75+
76+
How to maintain backward compatibility for I/O if we just hardcode (-2048, -2048, -2048)?
77+
And (it seems) that's the only backward compatibility to suss out.
78+
Export will need to recenter to (0, 0, 0)?
79+
I/O needs to be refactored anyway...
80+
Hardcoded global offset means we don't need to explicitly export it
81+
82+
Ken will investigate and do deep dive
83+
84+
85+
6) I/O revamp
86+
87+
Would be good to investigate into I/O revamp.
88+
Come up with a list of modern requirements.
89+
Refer to this list in future development efforts.

tsc/meetings/2023-09-05.md

Lines changed: 129 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
1+
Minutes from OpenVDB TSC meeting, September 5, 2023
2+
3+
Attendees: *Jeff* L., *Rich* J., *Ken* M., *Greg* H., *Dan* B., *Andre* P.
4+
5+
Additional Attendees:
6+
7+
Regrets: *Nick* A.
8+
9+
Agenda:
10+
11+
1) Confirm quorum
12+
2) Secretary
13+
3) VTT
14+
4) VDB Maya
15+
5) V10.1
16+
6) PRs
17+
18+
------------
19+
20+
21+
1) Confirm quorum
22+
23+
Quorum is present.
24+
25+
26+
2) Secretary
27+
28+
Secretary is Greg Hurst.
29+
30+
31+
3) VTT
32+
33+
Autodesk has a product call Bifrost (sim framework)
34+
35+
Internal multires grid
36+
37+
NanoVTT github repo expires in September... but it's a fork of OpenVDB?
38+
39+
Bifrost group seems gunghoe about open sourcing it
40+
41+
Why open source it?
42+
Integration of nanovtt into OpenVDB will be intricate.
43+
Attend meetings, contribute to the CI is a good start, but will be much more complicating. What's the balance?
44+
45+
Sampling across tiles is tricky and they have the method they want to use -- could be advantageous to open source as a standard
46+
47+
Why should this be part of OpenVDB and not its own product? Best not to have competing formats
48+
But how can the two coexist in a meaningful way? Can't just have two independent things
49+
50+
OpenVDB has threadpools, math functions, metadata, transforms, etc. And a standard API. VTT could integrate into these.
51+
52+
VDB's are sparse (active / inactive, etc)
53+
VTT's is in some sense dense, but adaptive
54+
Complementary data structures
55+
56+
This is an opportunity to rip out delayed loading for vdb
57+
We can have a family of grids that perform and specialize in different use cases
58+
When we write tools, what grids should & could these tools support?
59+
60+
Could this be confusing to general users?
61+
Is VTT too similar sounding to VDB
62+
63+
We will need support from them integrating properly
64+
We need commitment to delivering everything, not just nanovtt
65+
66+
Another need is conversion between vdb and vtt, something that's missing at the moment
67+
68+
Can we iterate of vtt grids in similar fashions (API-wise at least) to DynamicNodeManager?
69+
70+
If they first just give us NanoVTT, then they write a converter, is that even a meaningful thing?
71+
OpenVDB grid does not contain adaptive information, but possible ways one might want to convert
72+
73+
How does VTT compare to a stack of VDBs?
74+
75+
Did VTT mention point support at all? Points to volume mentioned in their ppt
76+
77+
Mathematica link to vtt? Probably, yes
78+
79+
**********
80+
81+
we agree we don't want just NanoVTT
82+
C++ structure for non-NanoVTT should have:
83+
VTT needs a sampler
84+
way to save and load from disk
85+
NodeManager-esque interfaces
86+
Converters
87+
Random access
88+
89+
**********
90+
91+
Worth asking them about feasibility of above and what they have in the bifrost SDK
92+
93+
Let's organize all of this in a Google doc to establish minimally required features.
94+
95+
What version would this go into?
96+
This will change ABI? and so V12 integration?
97+
98+
Probably would inherit GridBase without a Tree pointer.
99+
100+
101+
4) VDB Maya
102+
103+
What happens to VDB Maya now?
104+
105+
Probably broken at this point...
106+
107+
Should we just move it to its own repo and retire it from OpenVDB repo?
108+
109+
It's a useful reference and useful starting point.
110+
111+
Who own's the separate repo, etc...
112+
113+
What about deleting from git repo but keep folder with a text file saying to go to a branch to find it?
114+
115+
116+
5) V10.1
117+
118+
Ellipsoid stuff still being worked on
119+
120+
Just push out what we have now
121+
122+
123+
6) PR
124+
125+
PR 1651 suffering from TBB build errors:
126+
https://github.com/oneapi-src/oneTBB/issues/301
127+
Bumping up to TBB 2021.2 will probably fix this
128+
PR 1655 needs a look
129+
PR 1666 on fast sweeping needs to be refactored

0 commit comments

Comments
 (0)