LUT против шейдера: что на самом деле умеет каждый
Оба — способы преобразовать изображение, и о них часто говорят как об альтернативах, хотя они решают разные половины задачи. LUT занимается цветом. Шейдер занимается всем, что не цвет, — и на практике убедительная плёночная картинка требует обоих.
Что такое LUT
Таблица соответствия — это именно она: таблица, которая говорит, в какой выходной цвет превращается каждый входной. Трёхмерная LUT дискретизирует цветовой куб с интервалами — 33 точки на ось обычное дело — и интерполирует между ними. Это делает её крайне быстрой, идеально согласованной и переносимой между приложениями; поэтому она и стала стандартным способом переносить грейдинг между инструментами и поэтому её поддерживает любой монтажный пакет. Если нужное преобразование — чистое сопоставление цвета цвету, LUT и есть правильный инструмент.
Чего LUT не может по определению
Поскольку таблица отображает цвет в цвет, она ничего не знает о положении. Она не может знать, что пиксель находится рядом с ярким источником, а значит, не может дать ореол. Она не может добавить зерно, потому что зерно должно различаться от пикселя к пикселю, тогда как LUT на одинаковый вход всегда даёт одинаковый выход. Она не может изменяться пространственно вместе с яркостью: ни виньетки, ни блума, ни диффузии. Всё это пространственные эффекты, а пространственные эффекты — ровно то, чего таблица соответствия выразить не в состоянии.
Что добавляет шейдер
Шейдер — маленькая программа, выполняемая для каждого пикселя на GPU: она знает, где пиксель находится, может опросить соседей и использовать случайность. Именно это делает возможными в реальном времени зерно, ореол, блум, диффузию, виньетирование и смягчение краёв. Он может и сам применять цветовое преобразование — либо математикой, либо выборкой из текстуры LUT, что и есть обычная схема: LUT задаёт цветовую идентичность, а окружающий код шейдера — структуру и оптику.
Что для чего
Если вы корректируете готовое видео в монтажной программе, LUT плюс отдельные эффекты зерна и свечения — стандартный рабочий процесс, и он работает. Если образ нужен вживую в предпросмотре камеры, это должен быть шейдер, потому что всё преобразование обязано уложиться во время одного кадра на устройстве. А если вы делаете образ для распространения, помните: LUT едет куда угодно, а шейдер привязан к платформе — именно поэтому образами делятся как LUT, а переживают их как шейдеры.
Частые вопросы
Можно просто взять LUT и добавить зерно отдельно?
Да, и в видеоредакторе это нормальный подход. Приложения делают всё одним шейдером ради скорости и точности предпросмотра: разделение шагов означает несколько проходов по изображению, что приемлемо офлайн и дорого на тридцати кадрах в секунду.
Теряют ли LUT качество?
Могут, двумя способами. Грубая таблица со слишком малым числом точек даёт бандинг на мягких градиентах, а применение LUT к уже обрезанному материалу ничего не вернёт. На хорошо экспонированном материале разумного разрешения потеря незаметна.
Почему одни и те же LUT выглядят по-разному в разных приложениях?
Из-за того, что происходит вокруг: в каком цветовом пространстве работает приложение, применяется ли LUT до или после тонального отображения и добавляет ли приложение свой контраст сверху. LUT предсказуема ровно настолько, насколько предсказуема цепочка, в которой она стоит.
Могу ли я экспортировать образы CAMCAM в свой собственный LUT?
Нет — образы CAMCAM это шейдер со встроенным зерном, гало-засветкой и попиксельной случайностью, что выходит далеко за рамки чистого цветового отображения. LUT смог бы захватить только цветовую часть, но никогда — структурную.
Посмотрите на своей камере. CAMCAM выполняет плёночную симуляцию как живой шейдер на камере вашего телефона. Ничего не загружается — картинка считается на устройстве, кадр за кадром.
Открыть CAMCAM Скачать в Google Play