TSC Meeting Notes 2023-04-06
Attendance:
Discussion:
Nick: Working on making EXR optionally available in the USD tool chain
Native exr importer for USD instead of OIIO
Using the C API
“Mystery challenge” to find how to load images.
Performance is excellent!
Benchmarking against tinyexr, OpenEXRCore is significantly better
Tinyexr errors on 80% of images in openexr-images
Openexr.c #include’s all files from OpenEXRCore, plus some high-level API.
Compiles in 14ms, without CMake
Larry: Unity builds in CMake: it has a feature that combines all that stuff. But only for a new CMake, 3.17
Nick: I bypass all the people that might object to what I want to do. I want to make it compatible with miniz, zlib alternatives.
Larry: There’s also libdeflate, an alternative that is faster.
Rod: what’s gdeflate is based on
Larry: The reason I’ve been asking slack about the multipart problem, I thought I was doing something wrong. I’m pretty sure it’s a bug in Nuke.
The way the C core is structured, you can create parts of arbitrary size.
You can even change the channels encoded per chunk.
Subsequent chunks can have different channels. The file format doesn’t say that each chunk header has to match the previous chunk header
Larry: the C++ API has always bothered me, the branch where you find what kind of file it is (tiled, scanline, deep) then do separate things
Nick: I’m being surprised at how hard it is to use the core library, but not by fragility, behavior, etc.
Larry: that’s because it’s low level
Cary: Could easily wrap it in python.
Larry: Yes, users of python probably want a single call to read pixels into numpy array
Nick: Hydra wants to load everything all at once.
Nick: It’s another crazy idea inside Pixar: if exr files are allowable as leaf nodes in a USD graph, then we can pull the camera data from the image files, so full plate info in the scene graph.
Joseph:
SMPTE group doing camera/lens metadata appears to be converging.
I propose to look at what’s come out of there, compare to what I did before, and prepare a new PR.
We cleaned up to reorder and group attributes.
I propose an initial PR that changes no methods but reorder the attributes in the groups. The subsequent PR’s won’t look so different.
Then, are we clearly explaining exactly what we mean
SMPTE declined (the people behind the recent revisions of ACES container) to add or change anything that wasn’t related to color.
There’s a ton of useful stuff that no one sees because they’re not in the implementation and behind a SMPTE paywall.
George Joblove got tagged with a bunch of Sci-Tech responsibilities