New <Exponent> Process Node

This looks great Scott! I think the way you’ve structured it is very clear.

I think it does cover all the required options, although I think the mirror option on moncurve is not necessary (although I don’t object to it if others want it). The main motivation for needing the three negative-handling methods for the basic power was because people could name popular examples that used that approach and they needed to be able to emulate it. For moncurve, I’m not aware of other parametric implementations of that, so there isn’t as much of a compelling need for more options.

A few minor proof-reading points:

  1. I think the moncurveRev formula is missing a “- k” at the end.
  2. The first Note on page 3 is redundant from the first paragraph.
  3. I would clarify that the offset param is not allowed for the basic types.
  4. Alpha (A) should be an allowed channel parameter.
  5. The examples are missing the style attribute.
  6. The question of what range of values should be allowed is a tricky one. For the basic styles I would recommend 0.01 to 100. For the moncurve style I would recommend 1.0 to 10.0 for exponent and 0.0 to 0.9 for the offset. Those are the bounds currently in OCIO. (I could elaborate more on the reasoning, let me know if it’s useful.)
  7. Very minor, but perhaps change “basic” to “main” in the second sentence just to avoid confusion with the basic power styles. And at the end of that paragraph perhaps change “Rec. 709” to “Rec. 709 (OETF)”.

Good progress!

1 Like