Управление цветом (color management)

Управление цветом имеет важное значение для создания визуальных изображений и ассетов, которые являются физически точными и выглядят великолепно на нескольких дисплеях. Оно используется как для обеспечения правильной интерпретации цветов всеми частями конвейера, так и для внесения художественных изменений, таких как экспозиция и цветокоррекция.

../_images/render_color-management_different-exposures.jpg

Разные виды и экспозиции одного и того же рендера.

Управление цветом в Blender основано на библиотеке OpenColorIO. При использовании одной и той же конфигурации OpenColorIO в нескольких приложениях – будут доступны одни и те же цветовые пространства и преобразования для получения согласованных результатов.

Рабочий процесс

Линейное пространство цветов сцены

Для получения корректных результатов необходимы разные цветовые пространства для рендеринга, отображения и хранения изображений. Рендеринг и композитинг лучше всего выполняются в «линейном» цветовом пространстве сцены, которое больше соответствует природе и делает вычисления физически более точными.

../_images/render_color-management_linear-workflow.svg

Пример линейного рабочего процесса.

Если цвета линейны, это означает, что если в реальности мы удваиваем число фотонов, то значения цвета также удваиваются. Другими словами, если у нас есть две фотографии/рендера, каждый с одним из двух включённых источников света, и мы складываем эти изображения – результат будет таким же, как у рендера/фотографии с обоими включёнными источниками света. Из этого следует, что такое радиометрически линейное пространство лучше всего подходит для фотореалистичного рендеринга и композитинга.

Однако эти значения не соответствуют напрямую человеческому восприятию или принципу работы устройств отображения, а файлы изображений часто хранятся в разных цветовых пространствах. Поэтому нам нужно позаботиться о том, чтобы правильно выполнить преобразование в это линейное цветовое пространство сцены и из него.

Преобразования отображения

Преобразование линейных цветов сцены на дисплей требует как технических, так и художественных решений.

Правильное отображение рендеров требует преобразования в цветовое пространство устройства отображения. Компьютерный монитор работает иначе, чем цифровой кинопроектор или HDTV, и поэтому требует другого преобразования.

Также необходимо сделать художественный выбор. Частично это связано с тем, что устройства отображения не могут отображать полный спектр цветов и имеют лишь ограниченную яркость, поэтому мы можем сжать цвета, чтобы они вписались в гамму устройства. Кроме того, может быть полезно придать рендерам особый вид, например, имитация их записи на настоящую плёнку камеры. Это осуществляет преобразование вида «Filmic», которое установлено «по умолчанию».

../_images/render_color-management_linear-display-space.svg

Преобразование из линейного пространства в пространство устройства отображения.

Цветовые пространства изображения

При загрузке и сохранении форматов мультимедиа важно помнить об управлении цветом. Такие форматы файлов, как PNG или JPEG, обычно хранят цвета в цветовом пространстве, готовом для отображения, а не в линейном пространстве. Когда они используются в качестве текстур в рендерах, их сначала необходимо преобразовать в линейные, а при сохранении рендеров для их отображения в интернете – также необходимо их преобразование в пространство отображения.

Для промежуточных файлов в производстве – рекомендуется использовать файлы OpenEXR. Они всегда хранятся в линейных цветовых пространствах сцены, без потери данных. Это делает их подходящими для хранения рендеров, которые впоследствии могут быть скомпонованы, подвергнуты цветокоррекции и преобразованы в различные форматы вывода.

Изображения также могут содержать данные, которые на самом деле не являются цветом. Например, карты нормалей или смещения содержат только векторы и смещения. Такие изображения следует помечать как «Non-Color» данные, чтобы на них не происходило преобразования цветового пространства.

Настройки рендера (render settings)

Ссылка

Редактор

Свойства

Панель

Рендер ‣ Управление цветом Render Properties ‣ Color Management

../_images/render_color-management_panel.png

Свойства управления цветом.

Это параметры управления цветом, которые используются в Blender. Эти настройки управления цветом специфичны для сцены, поэтому они могут быть настроены для каждой имеющейся у вас сцены. Color management также можно переопределить при сохранении изображений; этот режим можно задать в свойствах управления цветом «вывода».

Устройство вывода (display device)

The device that the image is being viewed on.

Most computer monitors are configured for the sRGB color space, and so when working on a computer usually this option should just be left to the default. It would typically be changed when viewing the image on another display device connected to the computer, or when writing out image files intended to be displayed on another device.

sRGB

Используется большинством дисплеев.

XYZ

Commonly used by digital projectors.

Нет (none)

Disables color management.

Преобразование вида (view transform)

Это разные способы просмотра изображения на одном и том же устройстве отображения.

Стандартный (standard)

Не выполняет дополнительных преобразований, кроме преобразования для устройства отображения. Часто используется для нефотореалистичных результатов или редактирования видео, когда определённый вид уже запечён во входном видео.

Filmic

For photorealistic results and better handling of high dynamic range colors. The contrast can be adjusted by changing the Look option for the Filmic view transform.

Filmic Log

Конвертирует в цветовое пространство Filmic Log. Это может быть использовано для экспорта в приложения для цветокоррекции или для проверки изображения путём выравнивания очень тёмных и светлых областей.

Исходное (raw)

Предназначено для проверки изображения, но не для окончательного экспорта. Raw даёт изображение без преобразования цветового пространства.

False Color

Shows a heat map of image intensities, to visualize the dynamic range.

Вид (look)

Выбрать художественный эффект из набора измеренных данных отклика плёнки, который приблизительно имитирует вид определённых типов плёнки. Применяется до преобразования цветового пространства.

Экспозиция (exposure)

Используется для управления яркостью изображения (в стопах), применяемой перед преобразованием цветового пространства. Рассчитывается следующим образом: \(значение\_вывода = значение\_рендера × 2^{(экспозиция)}\)

Гамма (gamma)

Дополнительная гамма-коррекция применяется после преобразования цветового пространства. Обратите внимание, что преобразования отображения «по умолчанию» уже выполняют соответствующее преобразование, поэтому это в основном действует как дополнительный эффект для художественных настроек.

Секвенсор (sequencer)

Цветовое пространство, в котором работает секвенсор. По умолчанию секвенсор работает в пространстве sRGB, но его также можно настроить на работу в линейном пространстве, как и ноды композитинга, или же в другом цветовом пространстве. Различные цветовые пространства дают разные результаты для цветокоррекции, кроссфейдов и других операций.

Список цветовых пространств зависит от активной конфигурации OCIO. Поддерживаемые «по умолчанию» цветовые пространства подробно описаны здесь: «стандартная конфигурация OpenColorIO».

Использовать кривые (use curves)

Настроить RGB-кривые для управления цветами изображения перед преобразованием цветового пространства. Узнайте больше об использовании «виджета кривых».

Файлы изображений

При работе с файлами изображений, обычно правильным является цветовое пространство, установленное по умолчанию. Если это не тот случай – цветовое пространство файла изображения может быть настроено в настройках изображения. Распространённая ситуация, когда требуются изменения ручной настройки, – это работа с картами нормалей или картами смещения, возможно их запекание, например. Такие карты на самом деле не содержат цвета, а только данные, закодированные как цвета. Такие изображения следует помечать, как имеющие 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

Defines the distribution of colors in color pickers. It is expected to be approximately perceptually linear, have the same gamut as the scene_linear color space, map 0..1 values to 0..1 values in the scene linear color space for predictable editing of material albedos.

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.

Линейно (linear)

Blender’s native linear space meaning there is no gamma mapping, using Linear Rec. 709 chromaticities and a D65 white point.

Linear ACES

Also known as ACES2065-1, which is an ACES color space using the AP0 color primaries, a D60 white point and a linear transfer function. This color space is meant to store and transfer data with the most amount of possible color information.

Linear ACEScg

Цветовое пространство ACES, предназначенное для использования при рендеринге и композитинге. Оно использует основные цвета AP1, белую точку D60 и линейную функцию передачи. Хотя это цветовое пространство похоже на ACES2065-1, оно имеет меньшую цветовую гамму. Меньшая гамма позволяет ему лучше представлять цвета, которые вписываются в диаграмму цветностей CIE 1931. Цвета, которые лежат за пределами цветностей CIE 1931, как правило, не важны для рендеринга и композитинга, поскольку человеческое «восприятие» не может передать эти цвета.

XYZ

Standard linear XYZ space.

Non-Color

Color space used for images which contains non-color data (e.g. normal maps).

Исходное (raw)

Does not automatically convert to linear; same as Non-Color.

Filmic Log

Промежуточное логарифмическое цветовое пространство преобразования Filmic.

Filmic sRGB

Аналогично sRGB, но использует преобразование кинематографического вида.