Review: Fixed Truelight LUT reading bug


Jeremy Selan <jeremy...@...>
 

https://github.com/imageworks/OpenColorIO/pull/165

Oh no!

Today, in the normal course of production work (debugging why our
editorial deliverables didn't match on-set reference), we discovered
that OCIO is not applying Truelight LUTs correctly. The shaper lut
scaling had an off by one error, which lead to Truelight LUTs
appearing too dim by a factor of roughly lut3dsize/(lut3dsize+1). (~6%
for a 17x17x17).

This was doubly unfortunate as even though we had a test suite, the
problem slipped through because our original Truelight LUTs used for
validation were generated incorrectly! This commit updates Truelight
LUT support to match the reference specification, as posted on the
official filmlight website.

Additional updates:
- Truelight LUTs that only specify the 1D or 3D component are now
supported. (per spec)
- Truelight LUT reading now properly ignores data past the '# end'
tag. (per spec)

Remaining Issue: 1D shaper luts (InputLUT) using integer encodings (vs
float) are not supported.
This will be added once suitable examples can be found. (The Truelight
docs do not include an example).

I'm very glad we found this before the official 1.0.0 release, and my
deepest apologies are extended to anyone this may have affected.

In this upcoming week, I will go through all the other LUT formats,
find the original reference documentation, and test all formats again
to validate there are no other hidden surprises.

This will be rolled into both the 0.8 and 1.0 branches.

-- Jeremy

Join {ocio-dev@lists.aswf.io to automatically receive all group messages.