mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 07:03:16 +00:00
update oklch implementation
This commit is contained in:
parent
a1cce5d6e6
commit
b93627eb6f
1 changed files with 12 additions and 12 deletions
|
@ -126,31 +126,31 @@ pub fn get_lch(color: [f64; 4]) -> (f64, f64, f64) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn rgb_to_oklch(color: &mut [f64; 4]) {
|
pub fn rgb_to_oklch(color: &mut [f64; 4]) {
|
||||||
let mut l = 0.4122214708 * color[0] + 0.5363325363 * color[1] + 0.0514459929 * color[2];
|
let mut l = 0.4122214694707629 * color[0] + 0.5363325372617349 * color[1] + 0.0514459932675022 * color[2];
|
||||||
let mut m = 0.2119034982 * color[0] + 0.6806995451 * color[1] + 0.1073969566 * color[2];
|
let mut m = 0.2119034958178251 * color[0] + 0.6806995506452344 * color[1] + 0.1073969535369405 * color[2];
|
||||||
let mut s = 0.0883024619 * color[0] + 0.2817188376 * color[1] + 0.6299787005 * color[2];
|
let mut s = 0.0883024591900564 * color[0] + 0.2817188391361215 * color[1] + 0.6299787016738222 * color[2];
|
||||||
|
|
||||||
l = l.cbrt();
|
l = l.cbrt();
|
||||||
m = m.cbrt();
|
m = m.cbrt();
|
||||||
s = s.cbrt();
|
s = s.cbrt();
|
||||||
|
|
||||||
color[0] = 0.2104542553 * l + 0.7936177850 * m - 0.0040720468 * s;
|
color[0] = 0.210454268309314 * l + 0.7936177747023054 * m - 0.0040720430116193 * s;
|
||||||
color[1] = 1.9779984951 * l - 2.4285922050 * m + 0.4505937099 * s;
|
color[1] = 1.9779985324311684 * l - 2.42859224204858 * m + 0.450593709617411 * s;
|
||||||
color[2] = 0.0259040371 * l + 0.7827717662 * m - 0.8086757660 * s;
|
color[2] = 0.0259040424655478 * l + 0.7827717124575296 * m - 0.8086757549230774 * s;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn oklch_to_rgb(color: &mut [f64; 4]) {
|
fn oklch_to_rgb(color: &mut [f64; 4]) {
|
||||||
let mut l = color[0] + 0.3963377774 * color[1] + 0.2158037573 * color[2];
|
let mut l = color[0] + 0.3963377773761749 * color[1] + 0.2158037573099136 * color[2];
|
||||||
let mut m = color[0] - 0.1055613458 * color[1] - 0.0638541728 * color[2];
|
let mut m = color[0] - 0.1055613458156586 * color[1] - 0.0638541728258133 * color[2];
|
||||||
let mut s = color[0] - 0.0894841775 * color[1] - 1.2914855480 * color[2];
|
let mut s = color[0] - 0.0894841775298119 * color[1] - 1.2914855480194092 * color[2];
|
||||||
|
|
||||||
l = l.powi(3);
|
l = l.powi(3);
|
||||||
m = m.powi(3);
|
m = m.powi(3);
|
||||||
s = s.powi(3);
|
s = s.powi(3);
|
||||||
|
|
||||||
color[0] = 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s;
|
color[0] = 4.07674163607596 * l - 3.3077115392580635 * m + 0.2309699031821046 * s;
|
||||||
color[1] = -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s;
|
color[1] = -1.2684379732850317 * l + 2.6097573492876887 * m - 0.3413193760026572 * s;
|
||||||
color[2] = -0.0041960863 * l - 0.7034186147 * m + 1.7076147010 * s;
|
color[2] = -0.0041960761386754 * l - 0.7034186179359363 * m + 1.7076146940746116 * s;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn shift_hue_by(color: &mut [f64; 4], diff: f64) {
|
fn shift_hue_by(color: &mut [f64; 4], diff: f64) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue