Шиндер OpenGL ES для преобразования цветного изображения в черно-белый инфракрасный?

Мне удалось создать фрагментарный шейдер для преобразования цветного изображения в оттенки серого, используя:

float luminance = pixelColor.r * 0.299 + pixelColor.g * 0.587 + pixelColor.b * 0.114;
 gl_FragColor = vec4(luminance, luminance, luminance, 1.0);

Теперь я хотел бы подражать эффекту микшера канала Photoshop:

Как преобразовать процентные значения % (-70%, + 200%, -30%) в числа r g b с плавающей запятой (например, 0.299, 0.587, 0.114)?

1 ответ

Вы должны знать из школы, что 10% значения означает умножение этого значения на 0,1, поэтому просто используйте (-0.7, 2.0, -0.3).

licensed under cc by-sa 3.0 with attribution.