Как гамма-коррекцию всех визуальных элементов в Swift - PullRequest
0 голосов
/ 17 сентября 2018

Я хочу представить визуальные стимулы на экране с линейными значениями для яркости.Значение 0,5 должно иметь половину яркости, чем значение 1,0.

Сначала я измерил значение гаммы экрана с помощью колориметра.

Затем я вычислил стимулы в виде металла,Я вычисляю значение цвета (r, g, b, alpha) для каждой точки.В последней строке ядра я использую измеренное значение гаммы, чтобы «исправить» значение яркости при написании текстуры:

output.write(pow(color, 1 / gamma), gid);

Если я хочу нарисовать несколько простых вещей, таких как метки или тексты,за пределами представления металла, я могу изменить цвет, используя одну и ту же идею:

color = pow(color, 1 / gamma)

Оба случая работают нормально, но я не могу смешать текст поверх представления металла, если значение альфа отличается от одногопотому что я больше не нахожусь в линейном пространстве.

Есть ли способ сделать преобразование цвета всех элементов на экране после того, как все смешение видов было сделано?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...