-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
FR: RYB vectorscope #9847
Comments
There are few FR on the vectorscope currently, directly or indirectly inspired by that video from Joanna Kustra. |
!!! I appreciate the write-up. I'll be a bit swamped in the near term with various things (darktable and non-darktable) but if no one else claims this as a project, I'd be happy to make a try on it, probably later this year... |
I've started to look into it. Trying to understand how that works currently. |
I've discovered that. 👍 It works, at least I can see two different wheels for CIELuv and Jzazbz. |
It looks promising!
It's something to think about. The scope has a subtle background right now based on the On the other hand, the key thing seems not so much that the background color looks the same for each theme, as that the distinction between hues is legible. |
With your color palette (@dtorop) and JzAZBz we get a nice spread of color among the gamut. Thanks for suggesting to use it :). With gmic RYB = rg2ryb(RGB) and dt_RGB_to_HSV(RYB) we get this: Applying a RGB transform to linear RGB just before we get this: But apparently still with too much max saturation ... Hue seems to be coherent however. Is the HSV saturation reliable ? EDIT: if we divide the color chart in 4 vertical parts, the black and white ones give S = 0 and the colorful part gives S=1. The evenly spread S values come all from the light colors part. |
Looks good! Are you sure it isn't simply done? The middle test image shows the full RGB colorspace, but it should like wrong in RYB, becuase RYB is "wrong" from the RGB POV. And you get to see something nice, how a quantized RGB space is getting skewed to talk about RYB. It seems like the plan should be simply to take whatever RGB data you comes in with the histogram profile (may be linear, may be not), then convert to RYB, then use the HSV-ish code to bring it to polar coordinates, and that is it! Nice that the hue ring is round, this suggests that it is an "ideal" colorspace. I don't think XYZ -> HSV makes sense, as HSV is another way of talking about an underlying RGB colorspace. I could be missing details here, or the big picture... |
This is a really cool feature. If you want to take it one step further, it would be amazing to turn on/off guide lines of the different colour harmonies, such as Monochromatic, Analogous, Analogous Complementary, Complementary, Split Complementary, Triadic, Double Complementary, Dyad, etc... I envisage these to be a thin grey lines going from central point to the outer ring, with user ability to rotate guide lines around the hue circle. Not sure how difficult that would be to implement, but it would be a cool feature. |
To my eye, the Gosset looks much smoother/aestetic. It's at the cost of clipping the deep blue colors. Perhaps moving the blue point in Gosset slightly could help? The posterized transition at about 5 o'clock on the G'Mic from green -> cyan -> blue seems odd.
Very true, the nature of a chroma-only readout. A dream would be to show more of a 3D volume, with shadow/mid-tone/highlights along another axis... |
That appears also on Gosset. With 96 hues it's still visible. Disappears with 192 hues. I don't understand this artifact. However with the graph masking and blending that should be hardly visible.
Good idea. I'll make a try.
With the @aurelienpierre PR #9640 (preferences accessible locally to the module), we could add some parameters quickly accessible. To simplify the color reading, Gosset suggests to distort the ryb colors (the graph) to converge towards primaries and first secondaries. I'm trying to code his kind of cubic interpolation... |
Gosset + Interpolation type A - t * (B - A) (similar to trilinear above). Interpolation type A + t^2 * (3 − 2 * t) * (B − A), we get wider primaries + secondaries But it also highlights the defects of the rgb2ryb model. I agree that the Gosset background looks better. But to show the graph we need the rgb2ryb() function. And it does not look great, at least with the settings I'm using (and a bug is not excluded as well ...). |
Interesting! The "Gosset + Interpolation type A - t * (B - A)" looks good enough. Does it make those strange net-like overlaps as in your screenshot at the bottom, though? |
The background is built based the original Gosset RYB cube.
The graph is built a reversed cube, which has been proposed on the link above. With gmic, the RGB span is well represented (chroma coherent along radius (different lightness)): With Gosset linear, see how the chroma varies with lightness: With a real image, referring to one of Johanna's video here: RYB gmic (not exactly the harmony presented by Johanna but close to). |
I find concerning the fact that cyan is much more squeezed than other colors. |
True. That's the cost of expending orange keeping red and blue at the same place. Green and cyan are squeezed. Here is the pure RGB wheel: The Gosset background does look better but the reverse function is problematic (probably because it changes not only the hue but also chroma and lightness). |
Idea: take the hues of Gosset vertexes, and find the corresponding reversible function(hue). It would less compress the cyan, but keep chroma and lightness... spline ? |
Is your feature request related to a problem? Please describe.
The vectorscope is a powerful tool to analyze the colors present in an image.
It uses CIELUV and JzAzBz color spaces. These color spaces have been conceived to be perceptually uniform (delta E evenness).
For this reason there is no assumption nor relationship with color harmony.
Some color harmony rules has been described based on the RYB (or artist) color wheel (CIELUV and JzAzBz produce a color wheel close to the RGB one in term of polar coordinates).
RYB primary colors and the complementary ones
![image](https://user-images.githubusercontent.com/23012047/130291596-e5a84acf-5f77-4065-9679-33a0912270b1.png)
It should be noted that if RYB is said a substractive model, the YMC is the substractive equivalent to the additive RGB. So here we are not going to debate about additive / substractive property, but only about harmony ... which should be the same whatever the mean to obtain the final colors.
Based on the RYB color wheel we have some simple geometric rules which give (normally) pleasant color associations:
...
It's a bit strange (for me) to see that the same geometric rules are commonly applied on the RGB color wheel. Krita, for example, has an artist color picker, implementing these rules on RGB. That doesn't produce opposite results but the differences remained noticeable.
For my standpoint (I'm not artist ...) I prefer the RYB based harmony.
Describe the solution you'd like
If we believe that the rules which have been applied by the greatest artists during several centuries are still valid and can be applied on our images it could be worth to add a third vectorscope, RYB, beside the CIELUV and JzAzBz ones.
That should help to analyze and tweak an image based on these rules.
This has also been suggested in #9798 and #9209.
Alternatives
Some alternatives have been discussed on pixls.us in using-color-balance-rgb-for-creative-color-grading or create-custom-color-palette-to-show-in-the-vectorscope.
If the overall workflow is similar, I believe that a RYB vectorscope would simplify it.
I think that the RYB topic have poped up in the discussions based on this impressive video Secrets of color-grading in photography from Joanna Kustra.
Additional context
RYB is not a color space but there is some literature which can help to find a (kind of) RYB equivalent to the sRGB color space, where the harmony geometric rules are mode valid:
Paint Inspired Color Mixing and Compositing for Visualization (Gosset)
https://math.stackexchange.com/questions/305395/ryb-and-rgb-color-space-conversion/2776901#2776901, reversible (Jean-Olivier Irisson)
Computational RYB Color Model and its Applications
It is worth to cite the paletton site as a generator of complementary colors.
The text was updated successfully, but these errors were encountered: