export var r;
export var g;
export var b;
export function rgbPickerPrimaryColor(red, green, blue) {
r = red;
g = green;
b = blue;
}
export function render(index) {
rgb(r, g, b)
}
When I pick a deep shade of orange (closer to the red side), the picker shows the correct color, but this does not match with what the LEDs actually produce (which is almost completely yellow). Their color is closer to the Editor bar or light ring in the editor. This makes me think there is some skewing going on with the red or green channel that we’re not seeing. Does anyone know what that skew/multiplier is so I can adjust the LEDs back to a more true color?
Well, we should separate two issues - colors differing from screen to LEDS, and second, colors differing from the live feedback bar to the 2D mapped preview.
For LEDs vs screens, this is just what everybody deals with right now, especially in oranges and purples. It’s the combination of several factors, starting with the mix of powers and wavelengths in each chipset, addding in manufacturing variances, and the resulting total available color gamut is just very different from screens to LEDs. Add in the linear gamma curves on pixels and you have a situation that nobody’s attempted to color calibrate for yet.
You’ll likely get a slightly better match if you follow the example pattern code and square any intensity values (r, g, b, and v). Since they take values 0-1, this will still produce 0-1 but with a concave-up curve closer to the curve in screens.
In regards to the preview bar not matching the color from the 2D preview window, it’s likely because the 2D preview has too many pixels overlapping, which is making them too bright. You can go to your web browser’s developer console and paste the following to size them down:
@jeff Thank you for the help! Squaring the values did seem to help (although it’s weird that we need to do that to get the screen preview colors to match), and reducing the “ring” pixel size helped.