Closed dbr closed 6 months ago
My preference is in the short term to just add this as a static to MatrixTransform, alongside Fit, Scale, Sat, etc.
static void MatrixTransform::RGB_to_XYZ(float * m44, float * offset4,
const float * chromaticityR, const float * chromaticityG, const float * chromaticityB, const float * chromaticityW);
This isnt quite as convenient as making it it's own transform type, but I'd prefer to avoid that route until transforms become less heavy-weight. (I.e., we support dynamic transform typing / introspection).
This would be nice. It would be great if there were a function for computing chromatic adaptation transforms too, when converting from one whitepoint to another. I know Nuke uses Bradford in its ColorSpace node (optionally). (I know this ticket is 3 years old, but I thought I'd chime in)
4 years now :)
This seems like it would be a bit of a philosophical turn for OCIO would it not? Having to this point taken the stance of being a "vehicle for color transformations" rather than offering implementation of the actual color science.
5 years. Happy belated. (I know, i know, OCIO 2.0...)
http://opencolorio.org/FAQ.html#can-you-convert-xyz-named-color-space-rgb-values
Is this something people have asked for? I have the XYZ->RGB matrix calculation implemented in Python somewhere, and converting it to C++ should be easy enough
If so, my only initial question would be: how would it be used in the config? E.g the current matrix usage looks like:
Should it be coerced into the above transform, or made into a new one? Something like this seems tidiest to me: