Управление цветом (color management)¶
Управление цветом имеет важное значение для создания визуальных изображений и ассетов, которые являются физически точными и выглядят великолепно на нескольких дисплеях. Оно используется как для обеспечения правильной интерпретации цветов всеми частями конвейера, так и для внесения художественных изменений, таких как экспозиция и цветокоррекция.
Управление цветом в Blender’е основано на библиотеке OpenColorIO. При использовании одной и той же конфигурации OpenColorIO в нескольких приложениях – будут доступны одни и те же цветовые пространства и преобразования для получения согласованных результатов.
Рабочий процесс¶
Линейное пространство цветов сцены¶
Для получения корректных результатов необходимы разные цветовые пространства для рендеринга, отображения и хранения изображений. Рендеринг и композитинг лучше всего выполняются в линейном цветовом пространстве сцены, которое больше соответствует природе и делает вычисления физически более точными.
Если цвета линейны, это означает, что если в реальности мы удваиваем число фотонов, то значения цвета также удваиваются. Другими словами, если у нас есть две фотографии/рендера, каждый с одним из двух включённых источников света, и мы складываем эти изображения – результат будет таким же, как у рендера/фотографии с обоими включёнными источниками света. Из этого следует, что такое радиометрически линейное пространство лучше всего подходит для фотореалистичного рендеринга и композитинга.
Однако эти значения не соответствуют напрямую человеческому восприятию или принципу работы устройств отображения, а файлы изображений часто хранятся в разных цветовых пространствах. Поэтому нам нужно позаботиться о том, чтобы правильно выполнить преобразование в это линейное цветовое пространство сцены и из него.
Преобразования отображения¶
Преобразование линейных цветов сцены на дисплей требует как технических, так и художественных решений.
Правильное отображение рендеров требует преобразования в цветовое пространство устройства отображения. Компьютерный монитор работает иначе, чем цифровой кинопроектор или HDTV, и поэтому требует другого преобразования.
Также необходимо сделать художественный выбор. Частично это связано с тем, что устройства отображения не могут отображать полный спектр цветов и имеют лишь ограниченную яркость, поэтому мы можем сжать цвета, чтобы они вписались в гамму устройства. Кроме того, может быть полезно придать рендерам особый вид, например, имитация их записи на настоящую плёнку камеры. Это осуществляет преобразование вида «Filmic», которое установлено по умолчанию.
Цветовые пространства изображения¶
При загрузке и сохранении форматов мультимедиа важно помнить об управлении цветом. Такие форматы файлов, как PNG или JPEG, обычно хранят цвета в цветовом пространстве, готовом для отображения, а не в линейном пространстве. Когда они используются в качестве текстур в рендерах, их сначала необходимо преобразовать в линейные, а при сохранении рендеров для их отображения в интернете – также необходимо их преобразование в пространство отображения.
Для промежуточных файлов в производстве – рекомендуется использовать файлы OpenEXR. Они всегда хранятся в линейных цветовых пространствах сцены, без потери данных. Это делает их подходящими для хранения рендеров, с которыми впоследствии можно произвести компо́зининг, цветокоррекцию и преобразование в различные форматы вывода.
Изображения также могут содержать данные, которые на самом деле не являются цветом. Например, карты нормалей или смещения содержат только векторы и смещения. Такие изображения следует помечать как «Non-Color» данные, чтобы на них не происходило преобразования цветового пространства.
Настройки рендера (render settings)¶
Ссылка
- Редактор:
Свойства (properties)
- Панель:
Это параметры управления цветом, которые используются в Blender’е. Эти настройки управления цветом специфичны для сцены, поэтому они могут быть настроены для каждой имеющейся у вас сцены. Color management также можно переопределить при сохранении изображений; этот режим можно задать в свойствах управления цветом «вывода».
- Устройство вывода (display device)
Цветовое пространство дисплея, на котором просматривается Blender.
Большинство дисплеев по умолчанию имеют sRGB, а некоторые новые дисплеи имеют возможность использовать Rec. 2020. Эти дисплеи имеют более широкую цветовую гамму и могут отображать контент с высоким динамическим диапазоном. Если у вас дисплей Apple, вы, вероятно, захотите использовать цветовое пространство Display P3.
Важно проверить настройки ОС и дисплея, чтобы убедиться, что они соответствуют используемому дисплею для просмотра наиболее точного изображения.
- sRGB:
Используется большинством дисплеев.
- Display P3:
Используется большинством устройств Apple.
- Rec. 1886:
Используется во многих старых телевизорах.
- Rec. 2020:
Используется для новых HDR-дисплеев с широким цветовым охватом.
- Преобразование вида (view transform)
Это разные способы просмотра изображения на одном и том же устройстве отображения.
- Стандартный (standard):
Не выполняет дополнительных преобразований, кроме преобразования для устройства отображения. Часто используется для нефотореалистичных результатов или редактирования видео, когда определённый вид уже запечён во входном видео.
- Khronos PBR Neutral:
Преобразование тонального отображения, разработанное специально для точности цвета PBR, чтобы получить цвета sRGB в выходном рендере, которые максимально точно соответствуют вводному базовому цвету sRGB в материалах при освещении в оттенках серого. Этот способ нацелен на случаи использования предметной фотографии, где сцена хорошо экспонирована, а значения цвета HDR в основном ограничены небольшими зеркальными бликами.
- AgX:
Преобразование тонального отображения, которое улучшает Filmic, давая более фотореалистичные результаты. AgX предлагает 16,5 ступеней динамического диапазона и снижает насыщенность сильно экспонированных цветов, чтобы имитировать естественную реакцию плёнки на свет.
- Filmic:
Преобразование тонального отображения, разработанное для обработки цветов с высоким динамическим диапазоном. Filmic устарел и заменён на AgX, который улучшает обработку насыщенных цветов.
- Filmic Log:
Конвертирует в цветовое пространство Filmic Log. Это может быть использовано для экспорта в приложения для цветокоррекции или для проверки изображения путём выравнивания очень тёмных и светлых областей.
- False Color:
Показывает тепловую карту интенсивности изображения для визуализации динамического диапазона, помогает правильно экспонировать изображение.
Ниже приведена таблица, демонстрирующая, как нормализованные линейные цветовые данные представлены с помощью False Color.
Значение яркости
Цвет (color)
Низкие значения
Чёрный(-е) (black)
0.0001% до 0.05%
Синий (blue)
0.05% до 0.5%
Сине-голубой
0.5% до 5%
Голубой
5% до 16%
Зелёно-голубой
16% до 22%
Gray
22% до 35%
Жёлто-зелёный
35% до 55%
Жёлтый
55% до 80%
Оранжевый
80% до 97%
Красный (red)
Высокие значения
Белый(-е) (white)
- Исходное (raw):
Предназначено для проверки изображения, но не для окончательного экспорта. Raw даёт изображение без преобразования цветового пространства.
- Вид (look)
Выбрать художественный эффект из набора измеренных данных отклика плёнки, который приблизительно имитирует вид определённых типов плёнки. Применяется до преобразования цветового пространства.
- Экспозиция (exposure)
Используется для управления яркостью изображения (в стопах), применяемой перед преобразованием цветового пространства. Рассчитывается следующим образом: \(значение\_вывода = значение\_рендера × 2^{(экспозиция)}\)
- Гамма (gamma)
Дополнительная гамма-коррекция применяется после преобразования цветового пространства. Обратите внимание, что преобразования отображения «по умолчанию» уже выполняют соответствующее преобразование, поэтому это в основном действует как дополнительный эффект для художественных настроек.
- Секвенсор (sequencer)
Цветовое пространство, в котором работает секвенсор. По умолчанию секвенсор работает в пространстве sRGB, но его также можно настроить на работу в линейном пространстве, как и ноды композитинга, или же в другом цветовом пространстве. Различные цветовые пространства дают разные результаты для цветокоррекции, кроссфейдов и других операций.
Список цветовых пространств зависит от активной конфигурации OCIO. Поддерживаемые «по умолчанию» цветовые пространства подробно описаны здесь: «Стандартная конфигурация OpenColorIO»
Отображение (display)¶
- Расширенный динамический диапазон (high dynamic range)
Включить отображение с расширенным динамическим диапазоном в визуализированном вьюпорте, сняв ограничение яркости дисплея. Для этого требуется монитор с поддержкой HDR и преобразование вида, разработанное для HDR (Filmic не генерирует цвета HDR).
В настоящее время эта функция поддерживается только на macOS.
Использовать кривые (use curves)¶
Настроить RGB-кривые для управления цветами изображения перед преобразованием цветового пространства. Узнайте больше об использовании «виджета кривых».
Баланс белого (white balance)¶
Регулирует цвета таким образом, чтобы заданная белая точка (выраженная в цветовой температуре и оттенке) отображалась на дисплее как белый цвет.
В качестве альтернативы ручному указанию значений есть также виджет выбора цвета. Когда цвет выбран, температура и оттенок устанавливаются таким образом, что этот цвет в конечном итоге оказывается сбалансированным с белым. Это работает только в том случае, если цвет достаточно близок к источнику теплового излучения.
- Температура (temperature)
Температура теплового излучения основного источника света. По умолчанию используется точка белого D65.
- Оттенок (tint)
Величина сдвига кривой теплового излучения в сторону зелёного/пурпурного.
Совет
Баланс белого также можно выполнить в рамках процесса композитинга с помощью ноды «Цветовой баланс» (color balance node)
Файлы изображений¶
При работе с файлами изображений, обычно правильным является цветовое пространство, установленное по умолчанию. Если это не тот случай – цветовое пространство файла изображения может быть настроено в настройках изображения. Распространённая ситуация, когда требуется ручная настройка, – это работа с картами нормалей или картами смещения, возможно их запекание, например. Такие карты на самом деле не содержат цвета, а только данные, закодированные как цвета. Такие изображения следует помечать, как имеющие Non-Color данные.
Блоки данных изображения всегда будут хранить в памяти буферы с плавающей запятой в линейном цветовом пространстве сцены, в то время как буфер байтов в памяти и файлы на диске хранятся в указанном параметре цветового пространства.
По умолчанию отображаются и сохраняются только рендеры с применённым «преобразованием вида». Эти изображения представляют собой блоки данных изображений «Render Result» и «Viewer», а также файлы, сохранённые непосредственно на диске с помощью оператора Render Animation. Однако при загрузке рендера, сохранённого в промежуточном файле OpenEXR, Blender не может автоматически определить, что это рендер (это может быть, например, текстура изображения или карта смещения). Нам нужно указать, что это именно рендер и что мы хотим применить преобразования, с помощью этих двух настроек:
- Отображать как рендер (view as render)
Отображать блок данных изображения (не только рендеров) с применёнными RGB-кривыми, преобразованием вида, экспозиции, гаммы. Полезно для просмотра отрендеренных кадров в линейных файлах OpenEXR так же, как и при их прямом рендеринге.
- Сохранить как рендер (save as render)
Опция в операторе сохранения изображения для применения преобразования вида, экспозиции, гаммы, RGB-кривых. Это полезно для сохранения линейных OpenEXR, например, в файлы PNG или JPEG в пространстве дисплея.
Конфигурация OpenColorIO¶
Blender поставляется со стандартной конфигурацией OpenColorIO, которая содержит ряд полезных устройств отображения и преобразования вида. Справочное линейное цветовое пространство используется как линейное цветовое пространство с хроматическими градациями Rec. 709 и белой точкой D65.
Однако OpenColorIO также разработан для обеспечения единообразного стиля при работе пользователя в различных приложениях, и для этого можно использовать один общий файл конфигурации. Blender будет использовать стандартную переменную среды OCIO для чтения конфигурации OpenColorIO, отличной от конфигурации Blender’а «по умолчанию». Более подробную информацию о том, как настроить такой рабочий процесс, можно найти на веб-сайте OpenColorIO.
В настоящее время Blender использует следующие правила цветового пространства:
scene_linear
Цветовое пространство, используемое для рендеринга, композитинга и хранения всех изображений с плавающей точностью в памяти.
data
Цветовое пространство для нецветных данных.
aces_interchange
Цветовое пространство ACES2065-1. Используется для получения хроматических градаций цветового пространства scene_linear для таких эффектов, как «blackbody emission».
color_picking
Определяет распределение цветов в виджетах выбора цвета. Ожидается, что оно будет приблизительно линейным по восприятию, иметь ту же гамму, что и цветовое пространство scene_linear, сопоставлять значения 0..1 со значениями 0..1 в линейном цветовом пространстве сцены для предсказуемого редактирования альбедо материалов.
default_sequencer
Цветовое пространство «по умолчанию» для секвенсора, scene_linear – если не указано иное.
default_byte
Цветовое пространство «по умолчанию» для изображений и файлов с байтовой точностью, texture_paint – если не указано иное.
default_float
Цветовое пространство «по умолчанию» для изображений и файлов с плавающей точностью, scene_linear – если не указано иное.
Стандартная конфигурация Blender’а включает поддержку сохранения и загрузки изображений в цветовых пространствах ACES (код и документация). Однако цветовой охват ACES больше, чем у Rec. 709, поэтому для достижения наилучших результатов следует использовать специальный файл конфигурации ACES. OpenColorIO предоставляет файл конфигурации ACES, хотя для его использования в производстве может потребоваться несколько дополнительных настроек.
Стандарты конфигураций OpenColorIO¶
- Цветовые пространства (color spaces)
Файл конфигурации OCIO Blender’а по умолчанию поддерживает чтение/запись файлов в следующих цветовых пространствах:
- sRGB:
Стандартное пространство отображения RGB с использованием хроматических градаций Rec. 709 и белой точки D65.
- Rec.2020:
BT.2020 со степенной функцией 2.4 EOTF дисплей.
- Rec.1886:
BT.1886 со степенной функцией 2.4 EOTF дисплей, часто используется для телевизоров.
- Non-Color:
Общие данные, не являющиеся цветом, не будут применять никаких преобразований цвета (например, карты нормалей).
- Linear Rec.709:
Линейные хроматические градации BT.709 с осветителем белой точки D65.
- Linear Rec.2020:
Линейный BT.2020 с осветителем белой точки D65.
- Linear FilmLight E-Gamut:
Линейный E-Gamut с осветителем белой точки D65.
- Linear DCI-P3 D65:
Линейный DCI-P3 с осветителем белой точки D65.
- Linear CIE-XYZ E:
Стандарт CIE XYZ 1931 года с предполагаемой точкой белого источника света E.
- Linear CIE-XYZ D65:
1931 CIE XYZ с адаптированной точкой белого источника света D65.
- Filmic sRGB:
Аналогично sRGB, но использует преобразование кинематографического вида.
- Filmic Log:
Промежуточное логарифмическое цветовое пространство преобразования Filmic.
- Display P3:
Дисплей Apple P3 с функцией составной (piece-wise) кодировки sRGB, распространённой на устройствах Mac.
- ACEScg:
Цветовое пространство ACES, предназначенное для использования при рендеринге и композитинге. Оно использует основные цвета AP1, белую точку D60 и линейную функцию передачи. Хотя это цветовое пространство похоже на ACES2065-1, оно имеет меньшую цветовую гамму. Меньшая гамма позволяет ему лучше представлять цвета, которые вписываются в диаграмму цветностей CIE 1931. Цвета, которые лежат за пределами цветностей CIE 1931, как правило, не важны для рендеринга и композитинга, поскольку человеческое «восприятие» не может передать эти цвета.
- ACES2065-1:
Цветовое пространство ACES с использованием основных цветов AP0, белой точки D60 и линейной функции передачи. Это цветовое пространство предназначено для хранения и передачи данных с наибольшим объёмом возможной цветовой информации.