Полезное

Мы Вконтакте

Discord канал

Color Grading

Добавлено Окт 20 2015

В Unreal Engine, термин Цветокоррекция (Color Grading) включает в себя Тональную компрессию (Tone Mapping; трансформация HDR в LDR) и Коррекцию цвета (Color Correction; трансформация из гаммы LDR в гамму монитора).

Тональная компрессия (Tone Mapping)

Цель тональной компрессии в том, чтобы перевести цвета широкого диапазона HDR (Высокий Динамический Диапазон) в более узкий LDR (Низкий Динамический Диапазон). Это позволяет монитору правильно отображать цвета. Процесс происходит после обычного рендеринга в процессе постобработки.
Глобальная тональная компрессия – это функция, имеющая три входа (RGB) и три выхода (RGB). Локальная, помимо этого, учитывает свойства окружающих пикселей, что, естественно, ведет к большему количеству вычислений (и падениям производительности). В идеале, тональная компрессия обязана сохранять цвет пикселя даже в том случае, если он крайне яркий.
Следующий график показывает, как каждый канал в диапазоне от 0 до 5 преобразовывается в диапазон от 0 до 1:

newtone

В данном случае используется функция:

Код:
Гамма-цвет = ЛинейныйЦвет / (Линейный цвет + 0.187) * 1.035
(GammaColor = LinearColor / (LinearColor + 0.187) * 1.035)

Заметьте, что светлые цвета постепенно становятся светлее, но гораздо медленнее, нежели темные. Черный остается черным и это наиболее линейная часть кривой, которая несколько круче, чем должна быть. Это приводит к увеличению контраста, что вполне нормально и ожидаемо при использовании тональной компрессии. Для получения хорошего результата, исходное изображения должно иметь больше динамики в яркости (HDR).

Представленная функция уже имеет две константы. Дополнительные переменные могли бы увеличить гибкость настроек, но выведение хорошей, с точки зрения качества/гибкости/производительности, функции довольно сложно. По этой причине мы решили придерживаться простой формулы и изменять уже получившееся LDR-изображение.
Переведя цвета из HDR в ограниченный диапазон, мы получили выразительные темные цвета. Что касается светлых, то их мы можем изменять по желанию. Этот метод прост для понимания, гибок в настройке и обладает едва ли не постоянной производительностью.

Свойство Описание
Scene Color Tint Цвет, являющийся фильтром, применяемым к HDR-сцене.

Color Tint Full
Color Tint Quater
Tonemapper Toe Factor Корректирование оттенков темных цветов. Значения в промежутке [0.0, 1.0]

Color Tint Full
Color Tint Quater

Коррекция цвета

Коррекция цвета реализована как таблица поиска (lookup tables; LUTs). Причем, вместо использования трех 1D-таблиц, у нас применяется всего лишь одна, но 3D-таблица, благодаря этому становятся возможным более сложные и комплексные трансформации цвета (такие как обесцвечивание).
Следующее изображение показывает, как таблица нейтрального цвета размером 16x16x16 развернута в текстуру размером 256×16 (схоже с браузером текстур):
RGBTable16x1

Вы можете использовать изображение RGBTable16x1.png с этой страницы, но для этого загрузите исходный файл, показанный выше. Для этого нажмите на него ПКМ -> Сохранить как.

Измененная текстура может выглядеть так:
LUT_Sepia
Для того, чтобы использовать таблицу поиска (LUT), вам необходимо применить LUT-текстуру к волюму постобработки.

Свойство Описание
Color Grading Intensity Свойство, регулирующее силу цветокоррекции.
Color Grading LUT LUT-текстура, используемая как таблица при цветокорреции.

lut_nonelut_greenlut_redRGBTable16x1LUT_GreenishLUT_Reddish

Создание LUT-текстур

Инструкция:

  1. Сделайте скриншот сцены, вставьте его в документ Photoshop для дальнейшей настройки.
  2. Загрузите в Photoshop нейтральную LUT-текстуру размером 256×16.
  3. Взять её можно с этой страницы. Будьте внимательны: загружайте исходный файл, а не тот, который представлен на странице.
  4. Вставьте LUT-текстуру в документ Photoshop со скриншотом («Выбрать все» в LUT-документе, «Скопировать», переключиться на документ со скриншотом, «Вставить»)
  5. Применить манипуляции с цветом (Color Manipulatuins). Лучше всего сделать это добавлением отдельного слоя, иначе процесс осложнится)
  6. Скопируйте «слияние» (Edit/Copy Merged)
  7. Вставьте и сохраните получившуюся текстуру размером 256×16 в каком-нибудь несжатом формате, принимаемым движком.
  8. Выполните импорт текстуры в редактор и назначьте ей группу текстур для таблиц поиска (ColorLookUpTable Texture Group).

Возможны различные изменения цвета. Вот несколько примеров:

  • Яркость
  • Насыщенность
  • Простой контраст (линейный с ограничениями)
  • Высококачественный контраст (кривые с крутой линейной частью посередине)
  • Выборочные изменения темных, средних и светлых областей изображения.
  • Выборочные изменения определенных цветов (лучше всего подходит то цветовое пространство, в котором яркость выделена в отдельных канал, к примеру, LAB)
  • Корректировки могут быть даже выполнены в различных цветовых пространствах (так, в LAB яркость и цвет независимы друг от друга, что крайне полезно)
Добавил: jQuest Категория: Пост-обработка


Комментарии

На данный момент комментарии отключены.

UEngine.ru © 2017
Все права защищены. При копировании материалов с сайта, ссылка на первоисточник обязательна.
Яндекс.Метрика
Главная страница