TSC Meeting Notes 2023-04-06

Attendance:

Cary Phillips
Christina Tempelaar-Leitz
John Mertic
Joseph Goldstone
Kimball Thurston
Larry Gritz
Nick Porcino
Peter Hillman
Rod Bogart

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