Pull to refresh

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 считается за одну операцию

Так это же не JS а GLSL.

GLSL это язык программирования, WebGL это API JavaScript, который компилирует и запускает его на GPU, а сам JavaScript это хост, который настраивает и управляет всем процессом

Холиварная у вас статья, и ответы на вопросы такие-же.

А если у меня нет дискретной видеокарты?

Чем это лучше или быстрее чем simd на CPU?

Sign up to leave a comment.

Articles