Привет, Хабр!
В свободное от работы время я делаю мультфильм. С выходом Blender 5.0 появилась долгожданная встроенная поддержка ACES. В интернете сразу появились восторженные посты и сложные технические обзоры. Ну и естественно я сразу побежал смотреть, а как мои рендеры будут выглядеть в новом свете (или цвете). Но как оказалось - ACES это не волшебная таблетка, хоть и это киллер фича Blender 5.0.
Как так? Давайте разбираться, а я постараюсь сделать рассказ о цвете (полный белых пятен) как можно красочнее
Основная часть
Базовые понятия: цветовое пространство и тонмаппинг
Прежде чем перейти к сравнению, давайте немного копнем теории. Без этого дальнейшие объяснения будут звучать как шаманские заклинания.
Цветовое пространство (Working Space) — определяет диапазон цветов (гамут), с которым вы работаете. Представьте: у вас есть стандартная палитра sRGB и огромная палитра ACEScg. Разница не в том, что в одной 5 красок, а в другой — 50, а в том, что у огромной палитры есть такие насыщенные и чистые «краски», которых просто нельзя получить смешивая стандартную. Там есть все цвета, которые вы можете вообразить: и цвет бедра испуганной нимфы, и ярчайший взрыв сверхновой от которого можно ослепнуть, и новый цвет, не похожий ни на один из существующих или сочетание цветов из спецвыпуска Футурамы (да, в ACES есть цвета, которые хоть и не существуют в реальности, но могут быть математически описаны в системе). Рендер в Blender всегда происходит в выбранном рабочем пространстве. До 5.0 это пространство было только одно - Rec.709. Его primaries (выбранные оттенки красного, зеленого и синего) совпадают с sRGB. Не то чтобы это мало - это то что может отобразить стандартный монитор. Однако есть цветовые пространства гораздо шире.

Сравнение Rec.709 c ACEScg и Rec.2020 Тонмаппер (View Transform) Ваш монитор (даже если он с поддержкой P3 или аналога), не может отобразить всё бесконечное богатство света и цвета реального мира (или рассчитанного рендером). Задача тонмаппера — «впихнуть невпихуемое»: взять все рассчитанные значения освещённости и цвета (которые могут быть невероятно яркими) и аккуратно сжать их в тот диапазон, который способен показать ваш экран, максимально сохранив детали в тенях и светах.
sRGB - это стандартное нелинейное цветовое пространство. Обычные мониторы и большинство изображений (jpg, png) закодированы именно в нем.
Эволюция тонмапперов в Blender: от Filmic к Khronos
История управления цветом в Blender — это путь от простого к сложному.
Первым полноценным тонмаппером в Blender стал Filmic от Троя Соботки. Он решал одну, но критически важную задачу: избавиться от уродливых «пересвеченных» облаков, в которые превращались все пересвеченные области. Filmic научил Blender рендерить сложное освещение, сохраняя детали в светах.


Источник: Статья Blender Guru о Filmic Но у него нашлась ахиллесова пята — «проблема 6 цветов». При ярком освещении цвета начинали «залипать» в 6 основных оттенках, теряя свои полутона и градации. Это выглядело неестественно и ограничивало художников.
На смену пришёл AgX, где автор переосмыслил проблемы и недочеты filmic. AgX обеспечивал более плавные и предсказуемые цветовые переходы.


Источник Christopher 3D Однако за это пришлось заплатить свою цену: общая картинка с AgX часто выглядела более блёклой и обесцвеченной. Многие художники воспринимали его как сырой вариант, который обязательно требует дальнейшей цветокоррекции. Особенно страдали дизайнеры.
Khronos PBR Neutral пришёл из спецификаций Khronos Group (создателей Vulkan и glTF). Его главная цель — максимально точно отобразить тот цвет, который вы задали в материале, при нейтральном освещении. Это компромиссный вариант, который пытается и хорошо справляться с динамическим диапазоном, и при этом не врать про цвета.

Источник Blender Foundation
И вот на этой сцене появляется Blender 5.0 с поддержкой ACES и новых цветовых пространств, кардинально меняя правила игры для всех участников.
Что нового в интерфейсе?
В первую очередь вы увидите выбор working space, позволяющий выбрать цветовое пространство:

При выборе цвета вы можете выбрать в каком диапазоне вы его задаете, Perceptual (sRGB) или Linear (в зависимости от выбранного working space)

Крутилок для изображений нет, они преобразуются в нужный диапазон автоматически, хотя выбор при смене view transform нужно делать по-старому.
Сцена-испытание: почему лиса и петух?
Моя сцена — не абстрактные кубы, а рабочий проект. Ключевой вызов — корректно передать насыщенный рыжий цвет лисы и простые оттенки петуха. Это рабочий полигон, чтобы испытать новинки Blender 5.0 в различных комбинациях:
Тестируемые тонмапперы: Filmic, AgX, ACES, Khronos PBR Neutral.
Тестируемые рабочие пространства: «Дефолтный» Rec.709, новый Rec.2020 и ACEScg.
Цель — найти тот, который я буду использовать для рендера.

Как видите, варианты расплодились как грибы после дождя. Какой же выбрать из 30? Давайте для начала соберем сцену - тест, и попробуем разобраться какой тонмаппер и для чего теперь нужен. Сверху сцены полоска: градиент для сравнения. Дальше статья напоминает обзор фотокамер: сравните картинки, какая лучше?
Начнем с тех, кто хуже всего справляется с задачей. Это Filmic и ACES 1.3. Для сравнения добавил и Default - без тонмаппера. На тестовой сцене отлично видно проблему 6 цветов - как видите, цвета имеют тенденцию к объединению в шесть основных оттенков (особенно filmic). Следует отметить, что это широкое цветовое пространство, в rec.709 результат был бы еще хуже. ACES 1.3 уже переходный вариант между fimic и группой лидеров.

Теперь сравнение поинтереснее, кто же из оставшихся показывает лучший результат? Khronos PBR Neutral просто не умеет работать в широком цветовом диапазоне. Посмотрите например на переходы между тенью и светом на сферах, в Rec.709 они гораздо естественнее.

А вот, например, цвет красной сферы:

Откуда берется такой красный? Поэтому я взял Khronos PBR Neutral с Rec.709 для сравнения.
АCES 2.0 заметно темнит изображение, вы потеряете детали в тенях. При переходе на него нужно менять освещение. В моем примере я в сцене сделал свет в 2 раза ярче, что примерно соответствует по яркости остальным тонмапперам.

Самые точные цвета дает Khronos PBR Neutral в паре с Rec.709. Но при этом на сферах ужасные пересветы.
AgX самый сдержанный из всех вариантов и не уродует цвета. Но при этом они как-бы пастельные, не дотягивают. Ну а с rec.709 все еще серее и безжизненнее.
ACES 2.0 - Оттенок цвета выглядит гораздо сочнее, но при этом они гуляют довольно сильно. Новичков в ACES может привлечь насыщенность цветов «из коробки», в то время как опытные художники увидят в этом сложность, так как цвета требуют более точного и предсказуемого управления.

Или мне кажется, что ACES переоценен? Попробуем мою сцену.
Не теория, а практика: ключевые наблюдения
Я догадываюсь, что дальше многим из вас разница будет если и заметна, то по крайней мере несущественна. Поэтому я сопроводил примеры своими комментариями. Мне как автору моделей крайне важно в результате получить результат именно такой, как я хочу.
AgX не хватает «исходных данных» в тесном Rec.709, и он слишком агрессивно сжимает цвета, выжимая из них всю жизнь.
ACEScg/Rec.2020 предоставляют AgX более богатую палитру для работы. Теперь у тонмаппера есть избыток цвета, который он может красиво и аккуратно сжать в диапазон sRGB, сохранив сочность и контраст.
Как похорошел AgX при ACES! Цвета насыщенные, чистые, а рыжий лисы наконец-то стал рыжим. Широкое цветовое пространство дало ему возможность разгуляться.

Filmic, который многие (я) уже списали со счетов, в паре с ACEScg показал себя очень достойно

Как я уже и говорил, Khronos PBR Neutral, созданный для точной цветопередачи в Rec.709, не знает что делать с широким диапазоном цветов. Используйте Khronos PBR Neutral в паре с Rec.709.

ACES, как мне кажется, переоценен. Не поймите правильно, ACEScg, цветовое пространство, нужная и долгожданная фича, но как тонмапер особенно ACES 1.3 - выглядят аутсайдерами вместе в filmic. Картинки получаются темные, а тон цветов заметно гуляет. Посмотрите на петушка, как его перья приобретают трупный оттенок ни с того ни с сего. Да, конечно, можно исправить на посте, но как по мне лучше иметь хороший результат уже на этапе постройки сцены и настройки освещения.
Следует так-же отметить, чем кроет ACES. Вы отрендерили свое изображение в EXR, используя к примеру Khronos, и куда вы с ним пойдете для цветокоррекции? ACES, в свою очередь есть везде, от монтажек и цветкора до игровых движков.

Lessons learned
Всё решает синергия. Не ищите «лучший тонмаппер». Ищите связку «тонмаппер + цветовое пространство». AgX и ACES созданы для ACEScg/Rec.2020 и раскрываются только там.
Широкий охват — это «запас прочности». Он даёт тонмапперу больше информации для манёвра, позволяя сохранить сочность и детализацию даже после сжатия. Инструмент — под задачу. Для проектов, где точность цвета — приоритет №1, Khronos в Rec.709 может быть идеальным выбором. Для комплексных сцен со сложным освещением — AgX+ACEScg/Rec.2020.
Rec.2020 и ACEScg очень похожи. На стандартном мониторе разница практически незаметна. Выбор между ними — дело личных предпочтений или интеграции в конкретный пайплайн.
Заключение
Blender 5.0 — это не просто обновление, это смена парадигмы в управлении цветом. Моя история с рыжей лисой — лишь частный пример, но он отлично демонстрирует главное: теперь у нас есть не просто набор фильтров, а целая система, где можно осознанно управлять цветом на фундаментальном уровне.
Не бойтесь экспериментировать. Начните новый проект сразу в ACEScg и попробуйте AgX или новый ACES. Вы удивитесь, насколько ваши старые сцены могут заиграть новыми красками — в прямом смысле этого слова. Blender продолжает расти, и эти изменения выводят его на новый уровень, доступный каждому художнику.
