Closed zacharyweiss closed 6 months ago
Asides:
We will soon have to fully redo the rgb backlight stuff since @Z3BRO made a new rgb thing for clear cases and fully disregarded the improvements we had to rgb backlight and rainbow settings in momentum, so anything related to this color stuff will have to wait for that rework. Interesting stuff however, I'm not experienced in this myself but might be something to look into z3bro?
Also something to keep in mind is that from what I've heard, the rgb backlight are absolutely unreliable in terms of color accuracy and shown colors vary abysmally between different installed mods, so might not even be worth the hassle... just thought it would be worth mentioning, but then again I don't know and don't even have an rgb backlight
All good points! I'll close this given the above; can always reopen if it seems worthwhile in light of (no pun intended) reworked RGB HW (& SW support).
Honestly, this is excellent stuff, and it would be super cool to implement. The only issue is that the SK6805 1515 Neopixels used for the RGB Backlight and the Internal RGB are extremely color inaccurate. Even if the LEDs were more color accurate, I feel like these changes would go pretty unnoticed, as this mod is really only about "ooooo pretty colors."
It's such a fun nerd-sniping hole to fall down; there's so much fascinating work in the space. The primary experiential benefit would less so be the colors themselves, and moreso on the consistency of apparent brightness as the hues change, but I definitely agree that it's likely in the noise / not worth the effort with the current degree of LED-accuracy.
If looking for an excuse to mess around with color math though, it could be worthwhile to impl for the VGM / RGB-over-RPC feature, as that gets played over an actual LCD/similar display, and more importantly: relies on the Flipper to calculate the color gradients across the screen (whereas in reality obviously the gradients are left to the literal physics of light diffusion & mixing, and the above changes would've just been for consistent brightness across the LEDs / across time)
Describe the enhancement you're suggesting.
A suggestion, if acceptable computational- / memory-intensity-wise. Orbit / interpolate over a perceptually uniform colorspace a la OKLAB instead of over the RGB/HSV values, as the latter (the current approach) leads to perceptual peaks/valleys in lightness. On-the-fly conversion requires some floating-pt math (might be intensive for what's intended as a background process?); alternatively, lookup tables could be precomputed for speed, if there's sufficient memory.
Code for conversion to/from linear sRGB listed in the above-linked post; would need minor modification / composition with sRGB<>RGB565/888 for conversion to/from RGB565/888:
Thoughts? Feel free to close if too intensive / not a significant enough experiential benefit.
Anything else?
No response