Closed ilia3101 closed 5 years ago
What about using Open Color IO established standard (if possible to implement it into existing processing)? Displaying may be still a bit problematic but we always can calibrate our monitors.
I like your idea, but I am not sure if this is possible. We should have a look in the internet! We use QGraphicsView and QGraphicsScene to show the picture.
What about using Open Color IO established standard (if possible to implement it into existing processing)? Displaying may be still a bit problematic but we always can calibrate our monitors.
How would this work, would Open Color IO convert the image according to monitor ICC profile to make it accurate?
As far as I remember the lib can do everything regarding converting any color space to any etc... not sure about details though.
https://github.com/qt/qtbase/commit/27f70d7826d739fe8705cb23b1a26cfb6e0bc16c
the backing store has had the sRGB profile assigned since commit ac899f6
We are good for now with sRGB on macOS, and i can confirm as it changes appearance when I switch profiles.
As far as I remember the lib can do everything regarding converting any color space to any etc... not sure about details though.
Link
It sounds really good and full of features, but I wonder if it will be quick or just slow things down a lot more if we use it for displaying.
but I wonder if it will be quick or just slow things down a lot more if we use it for displaying.
Have no Idea. We're not gonna know until we try it :)
Edit: however this lib have to be with optimized math.
Isn't this nearly what we would like to do? (here log to lin... but others shouldn't be so difficult) http://opencolorio.org/developers/api/OpenColorIO.html So we just need a wrapper, to be able to use C++ in processing modules. I did this for the denoiser - have a look if you're interested.
Edit: hmmm... but there are not many colorspaces availlable for these functions, see at the end of the page: http://opencolorio.org/developers/api/OpenColorTypes.html#ColorSpaceRcPtr
I don't want to implement it yet, want to see how far we can take using simple matrix + transfer functions to convert colour spaces. Going to make processing be in ACES space, maybe we can use OCIO at the end of processing if it has good perceptual tranform ability 😉.
but there are not many colorspaces availlable for these functions, see at the end of the page
It seems they are some basic color space roles. Very interesting.
There are some interesting links:
ACES related: http://opencolorio.org/configurations/aces_1.0.3.html LUTs related: http://opencolorio.org/FAQ.html
As it turned out Qt is sRGB on macOS anyway: https://github.com/ilia3101/MLV-App/issues/134#issuecomment-440080015, this issue may be closed
Using mostly Linux recently, I have come to appreciate the fact that maybe Apple is correct when they say macOS is the "most advanced operating system". Main thing that convinced me: it is possible in macOS to say what colour space a window is drawn in, and then the system will transform it to screen colour space for you. (I have been reading their documentation for fun)
So I was thinking... maybe there is a way to get the NSWindow pointer from Qt? Then through some objective C code set the
colorSpace
property to[NSColorSpace sRGBColorSpace]
Would be an easy way to have MLV App colour managed on macOS, and if not, we're kind of ok, as most macs have a really close to sRGB screen (except the new P3 ones) - of course this does not hold true over time and this would allow MLV App to respect calibration