Цвет, гамма и белый канал
Почему картинка на ленте выглядит не так, как на мониторе, и что с этим делать.
Картинка, красивая на мониторе, на светодиодах регулярно выглядит бледной, грязной или мерцающей внизу шкалы. Причины известны.
Гамма
Файлы и мониторы работают в sRGB — значения нелинейны относительно физической яркости. Светодиод же светит примерно пропорционально скважности ШИМ, то есть линейно.
Отправив значение из картинки напрямую, вы получаете пересвеченную середину: то, что на мониторе было полутоном, на ленте почти полная яркость.
Лечение — гамма-коррекция перед выводом:
out = (in) ^ 2.2
Или Lookup CHOP с кривой, подобранной под конкретную ленту.
Показатель подбирается глазами: обычно между 1,8 и 2,4.
Нижняя часть шкалы
Восьмибитный светодиод внизу идёт ступеньками, а многие контроллеры к тому же имеют порог зажигания: значения 1–3 либо не светят, либо светят неровно и мерцают.
Что помогает:
- гамма-кривая (перебрасывает больше градаций вниз);
- контроллер с 16-битным выводом, если он это умеет;
- явное обнуление ниже порога:
Limit CHOPс мёртвой зоной — лучше честный ноль, чем дрожащая искра.
Белый канал
У RGBW-пикселей четвёртый канал — белый светодиод. Он ярче и чище, чем сумма RGB, но у него своя цветовая температура.
Способы использовать:
| Стратегия | Как |
|---|---|
| Не использовать | Белый = 0; проще всего, теряете яркость |
| Минимум из RGB | W = min(R,G,B), из RGB вычитается — чистые цвета остаются на RGB |
| Отдельный слой | Белый управляется своей логикой |
Второй вариант — стандартный. Но помните: белый светодиод почти наверняка не совпадает по оттенку с суммой RGB, и на переходах это видно. Подбирайте коэффициент на реальном железе.
Разные партии — разный цвет
Два одинаковых по маркировке отрезка ленты дают заметно разный белый. На объекте это выглядит как «одна секция желтее». Коррекция — отдельный множитель на каждую линию, хранящийся в таблице раскладки.
Насыщенность и восприятие
На светодиодах насыщенные цвета выглядят ярче и «дешевле», чем на экране. Практика:
- слегка снижайте насыщенность по сравнению с тем, что нравится на мониторе;
- избегайте чистого синего на больших площадях: он читается как провал;
- проверяйте картинку в темноте, а не при рабочем свете.
Проверка
Держите в проекте тестовый набор:
- Полный белый — видно расхождение секций.
- Серый 50 % — видно гамму.
- Чистые R, G, B — видно порядок компонент.
- Линейный клин от 0 до 255 — видно порог и ступеньки внизу.
Картинка для светодиодов — не уменьшенная картинка для экрана. Крупные формы, сильный контраст, мало мелких деталей. Всё, что тоньше двух пикселей, на ленте превращается в мерцание.