-
-
Notifications
You must be signed in to change notification settings - Fork 266
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Implement support for alternative set of parametric transfer functions using the new CLF definitions. #637
Comments
I have five somewhat overlapping desires:
|
Hello, 1, 2, 3So at the moment, we have that kind of functionality in the
|
I was thinking the exact same thing.
What do you think about inferring the callable from the style? Providing the callable seems redundant, no? Otherwise, we may as well use a partial directly. (I also have other thoughts on styles in general -- basically, I'd prefer not to expose CLF styles at all, and rely on idioms like "encoding" / "decoding", or "forward / "reverse". For exponents, maybe we can provide a "negative_style" My
Related, in my notebook, I've been putting together a
It does. I'm still on the fence about how much convenience is too much convenience. I figured we could use I've been trying to refactor some of the complexity in my Log node, and I keep ending up writing the same jumbo function for validating and sanitizing log params:
She's a bad mama jama for sure, and arguably does too much:
(I also snipped out an option for converting keys from lowerCamelCase to lower_snake_case)
See above, re: style stuff. One thing I'm eager to discuss is implementing inverse transforms, and discussing how to conceptualize and reconcile relative "transform direction" ("forwards" versus "reverse") and relative "node orientation" ("input-facing", "output-facing") styles with absolute encoding / decoding functions.
Maybe we could output a dictionary at build time, and if available, colour could load the precomputed values from json. It seems kind of convoluted, but I think it would be a useful artifact that gets you, in theory, the exact same parameter data as used in colour. We could then do all sorts of crazy things at that point -- maybe even procedurally generating frozen Log instances at import time or something. |
1, 2, 3
Yes, good point, I'm wondering if we should not do that, it would make the implementation cleaner with less magic. If magic is required later we could still introspect the parameters from the partial: >>> import inspect
>>> from functools import partial
>>> def foo(bar): pass
...
>>> f = partial(foo, bar=2)
>>> inspect.signature(f)
<Signature (*, bar=2)> Should not 4Sorry, I did not understand this one properly but then it is late and I missed my post-lunch coffee :) 5
OCIO build time you mean for example? It would certainly be great to be able to obtain the parameterisation easily from wherever it is defined without having to manually extract it. |
You're right, that makes much more sense. Seems much easier to map from RGBColorSpace encoding and decoding transforms to other representations this way, too. Right on.
Now that you mention it... :) Looks like that call to
Word. I don't actually know what branching means, but I'll look it up and unbranchify. Intuitively, I think I have an idea of what you mean. It definitely feels awkward to me... I think you're on to something with this branching business. Good call re: parameter ordering and defaults -- I'll make sure I'm consistent with
Oh god I don't know what I put this here. This is a conversation for an entirely separate thread. In as few words as possible, I'm talking about the relationship between style "forwards" and "reverse" variants (i.e., monCurveFwd) vs cctf encoding and decoding variants vs a node's "orientation" in a DAG (output-facing vs input-facing). As I said... a whooooole different thing.
I didn't mean OCIO, but that's an interesting idea. Reminds me of a bug report I need to file. Kind of a wacky idea. By "build", I think I meant generated as an artifact in a ( Maybe we could generate an XML catalog of CLF transforms for different parameterizations? That could be very powerful and handy. A job for |
Hi,
We discussed a bit about using the new CLF definitions to build some alternative variants for various camera log transfer functions. The main interest of such functionality is to be able to generate CLF LUTs by appending directly the transfer function of a colourspace with its metadata attached (or the necessary metadata) which in turn would inform one of the
colour.models.logarithmic_function_camera
definition for example.As there are a few ways to go about that, thus I'm creating a new issue to discuss this.
This relates to #636.
The text was updated successfully, but these errors were encountered: