Comments 6
Конвертируем цвета в JS со скоростью 6 миллиардов операций в секунду
Про какие операции речь?
vec3 oklabToLinearSrgb(float L, float a, float b) {
float l_ = L + M2I_A_L * a + M2I_B_L * b;
float m_ = L + M2I_A_M * a + M2I_B_M * b;
float s_ = L + M2I_A_S * a + M2I_B_S * b;
float l3 = l_ * l_ * l_;
float m3 = m_ * m_ * m_;
float s3 = s_ * s_ * s_;
return vec3(
M1I_L_R * l3 + M1I_M_R * m3 + M1I_S_R * s3,
M1I_L_G * l3 + M1I_M_G * m3 + M1I_S_G * s3,
M1I_L_B * l3 + M1I_M_B * m3 + M1I_S_B * s3);
}
vec3 toLinearSrgb(float l, float c, float h) {
float hr = radians(h);
return oklabToLinearSrgb(l, c * cos(hr), c * sin(hr));
}
vec3 lin = toLinearSrgb(comp[0], comp[1], comp[2]);Одна конвертация OKLCH→sRGB считается за одну операцию
А если у меня нет дискретной видеокарты?
Чем это лучше или быстрее чем simd на CPU?
Sign up to leave a comment.
Конвертируем цвета в JS со скоростью 6 миллиардов операций в секунду