Review: Refactored baker code to allow for more advanced lut output


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

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

This addresses oliver's bug where an HDR lin -> Dreamcolor ociobakelut
command was clipping the highlights.
After this fix, you can get a proper output .csp both with and without
the --shaper specified. (if the shaper is not
specified, it will fall back on the allocation for the input space,
and for oliver's linear example (lg2, -7.5, 4) will match
the 'log' shaper space almost exactly.

There is one known regression in this code - I have temporarily
disabled the .hdl lut baking as I have not ported that code.
But I wanted to get this checkin in before then, as it's such a large
change (in terms of number of lines of code).

Other changes:
* Added .3dl baking
* Added Processor.hasChannelCrosstalk()
* Exposed both FormatName + FormatExtension
* FileFormats can register multiple names. (ex: lustre 3dl / flame 3dl)
* Baker defaults are format specific
* ociobakeluts has cleaned up syntax, fewer args needed in most cases

The bakelut logic has been moved from the Baker.cpp, into each output format.
This can eventually be re-refactored, but in the meantime until we have more
examples I think we can get higher quality (format specific) color output
by doing the logic in each outputter.

Remaining tasks:
* update houdini lut baker to work again. (currently disabled)
* let the .csp output dynamically pick between a 1d and 3d output (now
that hasChannelCrosstalk is exposed, this will be trivial)

-- Jeremy

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