Управління Кольором – Color Management

Управління кольором є важливим для створення рендерів та активів, що є фізично точними та чудово виглядають на кількох пристроях показу. Воно використовується для гарантування, що всі частини конвеєр інтерпретують кольори коректно, і для здійснення мистецьких змін, як експозиція та кольорокорекція.

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

Різні огляди та експозиції одного і того ж рендера.

Управління кольором у Blender’і базується на бібліотеці OpenColorIO. Використовуючи однакову конфігурацію OpenColorIO у кількох застосунках, однакові простори та трансформ кольорів будуть доступні для узгоджених результатів.

Робпотік – Workflow

Лінеарний Простір Кольорів Сцени – Scene Linear Color Space

Для коректних результатів необхідні різні простори кольорів – color spaces для рендерингу, показу та збереження зображень. Рендеринг та компонування найкраще здійснюється у лінеарному, прямолінійному колірному просторі сцени – scene linear, який найбільш близько відповідає природі та робить обчислення більш фізично точними.

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

Приклад лінеарного ходу роботи.

Якщо кольори є лінеарними, то це означає, якщо ми у реальності ми подвоюємо кількість фотонів, то значення кольорів також подвояться. Іншими словами, якщо ми маємо два фото/рендери, кожен з яких освітлюється своїм освітлювачем, та додамо ці зображення разом, то результат бути таким же самим, ніби рендер/фото освітлено обидвома освітлювачами. Звідси випливає, що такий радіометрично лінеарний простір є найкращим для фотореалістичних рендерингу та компонування.

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

Трансформи Показу – Display Transforms

Трансформування лінеарних кольорів сцени у показ передбачає як технічний, так і художній вибір.

Коректний показ рендерів вимагає конверсії у простір кольорів пристрою показу. Монітор комп’ютера працює інакше, ніж цифровий кіно проектор або телебачення високої чіткості HDTV, а тому потребує іншої конверсії.

Також має бути зроблений художній вибір. Частково це пов’язане з тим, що пристрої показу не можуть показувати повний спектр кольорів та мають лише обмежену яскравість, тому ми можемо стискати кольори, щоб вони вписувалися у гаму пристрою. Крім того, це може також бути корисним для надання рендерам певного вигляду, наприклад, ніби вони були надрукованій на реальній кіноплівці. Стандартна трансформа Filmic робить це.

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

Конверсія з лінеарного у простір пристрою показу.

Простори Кольорів Зображення – Image Color Spaces

При завантаженні та збереженні форматів медіа є важливим мати на увазі управління кольором. Формати файлів, такі як PNG або JPEG будуть типово зберігати кольори у просторі кольорів, готовому для показу, а не у лінеарному просторі. Коли вони використовуються як текстури у рендерах, то вони повинні бути конвертовані спершу у лінеарний простір, а коли зберігаються рендери для показу на веб, то вони також потребують бути конвертовані у простір показу.

Для проміжних файлів у виробництві рекомендується використовувати файли OpenEXR. Вони завжди зберігаються у лінеарних просторах кольорів сцени без втрати будь-яких даних. Це робить їх придатними для збереження рендерів, що можуть пізніше бути скомпоновані, кольорокоректовані та конвертовані у різні формати виводу.

Зображення можуть також містити дані, що насправді не є кольором. Наприклад, розкладки нормалей або зміщення лише містять вектори та зсуви. Такі зображення повинні позначатися як «Не-Колірні Дані» – Non-Color Data, щоб жодна конверсія простору кольорів не відбувалася з ними.

Устави – Settings

Орієнтир – Reference

Панель – Panel:«Редактор Властивостей > Рендер > Управління Кольором» – Properties editor ‣ Render ‣ Color Management
../_images/render_post-process_color-management_panel.png

Устави рендера для управління кольором.

Показ – Display

Пристрій Показу – Display Device

Пристрій, на якому переглядається зображення.

Більшість комп’ютерних моніторів сконфігуровані для простору кольорів sRGB, і тому при роботі на комп’ютері зазвичай ця стандартна опція повинна залишатися без змін. Типово вона може бути змінена при перегляді зображення на іншому пристрої показу, під’єднаному до комп’ютера, або при записі у файли зображень, призначені для показу на іншому пристрої.

Rec709 зазвичай використовується для HDTV, тоді як XYZ та DCI-P3 є поширеними для цифрових проекторів.

Управління кольором може бути вимкнене, установленням цієї опції на «Нема» – None.

Рендер – Render

Огляд – View

Це різні способи перегляду зображення на одному і тому ж пристрої показу.

Стандарт – Standard
Не здійснює жодного додаткового конвертування, окрім перетворення для цього пристрою показу. Часто використовується для не-фотореалістичних результатів або редагування відео, де специфічний вигляд вже запечено в увідному відео.
Filmic
Для фотореалістичних результатів та кращого оброблення кольорів високо динамічного діапазону. Контраст може бути наладнано шляхом змінювання опції Look для трансформи огляду Filmic.
Плівкове Логарифмічно – Filmic Log
Конвертує у простір кольорів Filmic log. Це може бути корисним для експорту у застосунки кольорокорекції або для перевірки зображення шляхом вирівнювання дуже темних та світлих областей.
Сире – Raw
Призначене для перевірки зображення, а не для фінального експорту. Сире дає зображення без будь-якого конвертування простору кольорів.
Хибний Колір – False Color
Показує розкладку теплоти інтенсивностей зображення для візуалізування динамічного діапазону.
Експозиція – Exposure
Використовується для керування яскравістю зображення (у стопах), застосовуваного перед перетворенням простору кольорів. Вона розраховується так: \(output\_value = render\_value × 2^{(exposure)}\)
Гамма – Gamma
Додаткова корекція гамми (величини яскравості нейтрального сірого кольору), застосовувана перед конвертуванням простору кольорів. Зауважте, що стандартні трансформи показу вже здійснюють відповідну конверсію, так що це головно діє як додатковий ефект для мистецьких підправлень.
Вигляд – Look
Вибирається художній ефект з набору виміряних даних відповідних плівці, які грубо імітують вигляд зображення з певних типів плівки. Застосовується перед конверсією простору кольорів.
Вжити Криві – Use Curves
Дає змогу застосувати криві RGB для наладнання кольорів зображення перед конверсією простору кольорів. Читайте детальніше про це тут – Віджет Кривої – Curve Widget.

Секвенсер – Sequencer

Простір Кольорів – Color Space
Простір кольорів, в якому оперує Секвенсер. Стандартно, Секвенсер оперує у просторі sRGB, але він може також бути установлений для роботи у Лінеарному просторі, як і вузли Компонування, або в іншому просторі кольорів. Різні простори кольорів будуть давати різні результати для корекції кольору, перетікань та інших операцій.

Файли Зображень – Image Files

При роботі з файлами зображень зазвичай правильним є стандартний простір кольорів. Якщо це не так, то простір кольорів файлу зображення може бути сконфігуровано в уставах зображення. Поширеною ситуацією, коли необхідні зміни вручну, – це робота із чи запікання розкладок нормалей або розкладок зміщень, наприклад. Такі розкладки фактично не зберігають кольори, тільки дані, кодовані як кольори. Ці зображення повинні позначатися як Non-Color Data.

Блоки даних зображення завжди зберігають дійсночислові буфери у пам’яті у лінеарному просторі кольорів сцени, тоді як байтовий буфер у пам’яті та файли на диску зберігаються у просторі кольорів, визначеному такою уставою:

Простір Кольорів – Color Space
Простір кольорів зображення файлу на диску. Це залежить від формату файлу, наприклад, зображення PNG або JPEG часто зберігаються у sRGB, тоді як OpenEXR зберігаються у лінеарному колірному просторі. Деякі зображення, такі як розкладки нормалей, вигинів та трафарету суворо не містять «кольорів», і для таких значень ніколи не повинно бути застосоване жодна конверсія простору кольорів. Для таких зображень простір кольорів повинен бути установлений як None.

Стандартно, тільки рендери показуються та зберігаються із застосованими трансформаціями огляду. Ними є Результат Рендера – Render Result та блоки даних зображення Оглядача – Viewer, а ці файли зберігаються прямо на диск оператором рендерингу анімації Render Animation. Проте, при завантаженні рендера, збереженого у проміжний файл OpenEXR, Blender не визначає автоматично, що це є рендер (це може бути, наприклад, текстура зображення або розкладка зміщення). Ми повинні вказувати, що це є рендер і те, що ми хочемо, щоб застосовувалися трансформації, за допомогою таких двох устав:

Огляд як Рендер – View as Render
Показує блок даних зображення (не тільки рендерів) із застосованими трансформами огляду, експозицією, гаммою, кривими RGB. Корисно для перегляду рендерених кадрів у лінеарних файлах OpenEXR так само, як при рендерингу їх безпосередньо.
Зберегти Як Рендер – Save As Render
Опція в операторі збереження зображення для застосування трансформи огляду, експозиції, гамми, кривих RGB. Це корисно для збереження лінеарних OpenEXR у, наприклад, файли PNG чи JPEG у просторі показу.

Конфігурація OpenColorIO – OpenColorIO Configuration

Blender поставляється зі стандартною конфігурацією OpenColorIO, що містить ряд корисних пристроїв показу та трансформ огляду. Використовуваним орієнтувальним лінеарним простором кольорів – color space є лінеарний колірний простір з хроматичностями Rec. 709 та точкою білого D65.

Проте, OpenColorIO було також розроблено, щоб забезпечити послідовну взаємодію користувача з кількома застосунками – multiple applications, і для цього, може бути використано спільний файл конфігурації. Blender буде використовувати стандартну змінну середовища OCIO для зчитування конфігурації OpenColorIO, а не стандартну для Blender’а. Більше інформації про те, як укласти таких робпотік, можна знайти тут – OpenColorIO website.

Blender поточно використовує наступні правила простору кольорів:

scene_linear
Простір кольорів, використовуваний для рендерингу, компонування та збереження усіх зображень з дійсночисловою точністю у пам’яті.
data
Просторі кольорів для не-колірних даних.
XYZ
Стандартний лінеарний простір кольорів XYZ. Використовується для ефектів, таких як емісія чорного тіла для конвертування з фізичних одиниць простір кольорів scene_linear.
color_picking
Визначає розподіл кольорів у підбірниках кольорів. Очікується, що воно буде приблизно сприйнятливо лінеарним, матиме таку ж саму гамму, як і простір кольорів scene_linear, розкладатиме значення 0..1 у значення 0..1 у лінеарному просторі кольорів сцени для передбачуваного редагування альбедо матеріалів.
default_sequencer
Стандартний простір кольорів для Секвенсера, scene_linear – якщо не вказано.
default_byte
Стандартний простір кольорів для зображень та файлів з байтовою точністю, texture_paint – якщо не вказано.
default_float
Стандартний простір кольорів для зображень та файлів з дійсночисловою точністю, scene_linear – якщо не вказано.

Стандартна конфігурація Blender включає підтримку для збереження та завантаження зображень у просторах кольорів Академічної Системи Кодування Кольору – ACES (code and documentation). Проте, гамма ACES є більшою, ніж гамма Rec. 709, але для найкращих результатів, повинен використовуватися спеціальний файл конфігурації ACES. OpenColorIO надає файл конфігурації – ACES configuration, хоча може знадобитися кілька додаткових підправлень для використання у виробництві.