Цветовые пространства в Unity
Unity Editor позволяет работать в традиционном гамма цветовом пространстве, а также в линейном цветовом пространстве. В то время как гамма цветовое пространство является исторически стандартным форматом, линейное цветовое пространство отображения дает более точные результаты.
Линейное и гамма цветовое пространство
Человеческий глаз не имеет линейной реакции на интенсивность света. Мы видим некоторые уровни яркости света легче, чем другие — градиент, который идет в линейной манере от черного к белому не будет выглядеть как линейный градиент для наших глаз.
По историческим причинам, мониторы и дисплеи имеют одну и ту же характеристику. Посылка линейного сигнала в монитор приводит к тому, что выглядит как градиент справа на иллюстрации выше, и просто выглядит неправильно для наших глаз. Чтобы компенсировать это, корректированный сигнал отправляется, чтобы убедиться, что монитор показывает изображение, которое выглядит естественно. Эта коррекция известна как гамма-коррекция.
Причина существования гамма- и линейных цветовых пространств заключается в том, что расчеты освещения должны выполняться в линейном пространстве, чтобы быть математически верными, но результат должен быть представлен в гамма-пространстве, чтобы выглядеть верно для наших глаз.
При расчете освещения на более старом оборудовании, ограниченном 8 битами на канал для формата кадрового буфера, использование гамма-кривой обеспечивает большую точность в диапазоне, воспринимаемом человеком. Больше бит используется в диапазоне, где человеческий глаз наиболее чувствителен.
Несмотря на то, что мониторы сегодня являются цифровыми, они все еще принимают сигнал, кодированный гамма-лучами, в качестве входного сигнала. Файлы изображений и видео файлы явно кодируются в гамма-пространстве (что означает, что они несут гамма-кодированные значения, а не линейные интенсивности).
Принятый стандарт для гамма-пространства называется sRGB (см. Wikipedia). Этот стандарт определяет отображение в линейное пространство, которое позволяет нашим глазам извлечь максимум из 8 бит на канал точности.
Линейное отображение относится к процессу отображения Scene со всеми линейными входами — то есть, без коррекции гаммы для просмотра человеческим глазом или для выхода на дисплей.