diff --git a/tsc/meetings/2024-03-19.md b/tsc/meetings/2024-03-19.md new file mode 100644 index 0000000000..c883bbad2a --- /dev/null +++ b/tsc/meetings/2024-03-19.md @@ -0,0 +1,80 @@ +Minutes from OpenVDB TSC meeting, March 19th, 2024 + +Attendees: *Jeff* L., *Andre* P, *Dan* B., *Greg* H., *Rich* J. + +Additional Attendees: +Dhruv Govil, Ivo Kondapaneni + +Regrets: *Ken* M., *Nick* A. + +Agenda: + +1) Confirm quorum +2) Secretary +3) OpenVDB Half Grids +4) Load as Half Patch +5) Next meeting + +------------ + +1) Confirm quorum + +Quorum is present. + +2) Secretary + +Secretary is Jeff Lait. + +3) OpenVDB Half Grids + +Support for half without a compute type is much slower and has +significant errors. Proposal is to add a Tree::ComputeType that is +identity with ValueType, but float for Half. + +For many tools, like stencils or volumes, should they return Compute +Type? Does this break ABI? It shouldn't as the typedef should decay +to the base type for mangling? We could use an enable if to work +around if it somehow does mess up ABI. + +What should be compute types? + +Stencils have a value type that is there value type, different from +the tree's value type, so they can logically set this to the tree's +ComputeType. + +How to get accessors or setters to use ComputeType? We could have +getComputeValue or getValue for the two types. But widening is free? + +Should I be able to make stencils any compute type? With the tree's +compute type just the default? Eventually do we want float grids with +a compute type of double? Probably yes, but beyond this PR. + +Import and export doesn't conflict with save float as half - they are +independent and this flag is ignored with half. + +What half type do we use? All of our half types are the same +underlying bit pattern so it doesn't matter. + +4) Arnold support for Half + +How to load a float grid as a half grid. Add a scalarConversion type +for what the new grid's type should be. + +We set that to the stream's metadata, and the grid descriptor uses +that. This creates a CreatingReaderFactory to read the source and +write out as the desired type. + +Raw is.read() with reinterpret are replaced by the converting reader +that might do some casting internally. + +seek should be seekElement() and take the count and position to make +it clear what it is doing. + +Delayed loading will work as the stream has the converter attached to +it. + +Will be made as a PR for further discussion. + +5) Next meeting + +Next meeting is on March 26th, 2024. 2pm-3pm EDT (GMT-4)