Привет, Хабр! 

В свободное от работы время я делаю мультфильм. С выходом 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
    Сравнение Rec.709 c ACEScg и Rec.2020
  • Тонмаппер (View Transform) Ваш монитор (даже если он с поддержкой P3 или аналога), не может отобразить всё бесконечное богатство света и цвета реального мира (или рассчитанного рендером). Задача тонмаппера — «впихнуть невпихуемое»: взять все рассчитанные значения освещённости и цвета (которые могут быть невероятно яркими) и аккуратно сжать их в тот диапазон, который способен показать ваш экран, максимально сохранив детали в тенях и светах.

  • sRGB - это стандартное нелинейное цветовое пространство. Обычные мониторы и большинство изображений (jpg, png) закодированы именно в нем.

Эволюция тонмапперов в Blender: от Filmic к Khronos

История управления цветом в Blender — это путь от простого к сложному.

  1. Первым полноценным тонмаппером в Blender стал Filmic от Троя Соботки. Он решал одну, но критически важную задачу: избавиться от уродливых «пересвеченных» облаков, в которые превращались все пересвеченные области. Filmic научил Blender рендерить сложное освещение, сохраняя детали в светах.

    Источник: Статья Blender Guru о Filmic

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

  2. На смену пришёл AgX, где автор переосмыслил проблемы и недочеты filmic. AgX обеспечивал более плавные и предсказуемые цветовые переходы. 

    Источник Christopher 3D
    Источник Christopher 3D

    Однако за это пришлось заплатить свою цену: общая картинка с AgX часто выглядела более блёклой и обесцвеченной. Многие художники воспринимали его как сырой вариант, который обязательно требует дальнейшей цветокоррекции. Особенно страдали дизайнеры.

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

    Источник Blender Foundation
    Источник 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

  1. Всё решает синергия. Не ищите «лучший тонмаппер». Ищите связку «тонмаппер + цветовое пространство». AgX и ACES созданы для ACEScg/Rec.2020 и раскрываются только там.

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

  3. Rec.2020 и ACEScg очень похожи. На стандартном мониторе разница практически незаметна. Выбор между ними — дело личных предпочтений или интеграции в конкретный пайплайн.

Заключение

Blender 5.0 — это не просто обновление, это смена парадигмы в управлении цветом. Моя история с рыжей лисой — лишь частный пример, но он отлично демонстрирует главное: теперь у нас есть не просто набор фильтров, а целая система, где можно осознанно управлять цветом на фундаментальном уровне.

Не бойтесь экспериментировать. Начните новый проект сразу в ACEScg и попробуйте AgX или новый ACES. Вы удивитесь, насколько ваши старые сцены могут заиграть новыми красками — в прямом смысле этого слова. Blender продолжает расти, и эти изменения выводят его на новый уровень, доступный каждому художнику.

Комментарии (22)


  1. ukmsz
    18.10.2025 17:22

    А вот вы когда персонажей раскрашивали, то через какой профиль на них смотрели и утверждали?


    1. Mixail_Soluyanov Автор
      18.10.2025 17:22

      Вопрос корректный и правильный. Я понимаю что вы имеете ввиду: "автор, ты настроил сцену под определенный color management, и понятно почему именно он тебе больше нравится". И вроде бы как тут очевидно. Если ты ставишь определенный LUT, он тебе либо под задачу подходит, либо он тебе в сердечко прописался. И какая-то правда в этом есть, понимаю. Однако тонмапер это не LUT, и задачи он решает другие. К примеру (возвращаясь к вопросу). Я начинал сетапить сцену ещё с AgX. И я знаю(пробовал) что тот цвет у лисы который мне хотелось бы, с AgX (и Rec.709) просто невозможен, он вне диапазона цветов, который выводится из AgX. (И это не говорит о том, что AgX плохой, нет, мы прекрасно живём с sRGB, который тоже много цветов показать не может, просто он не подходит моей задаче) Поэтому я перешёл на Khronos, как только он появился в 4.2. Я старался исходить именно из таких позиций, а не из позиций личных предпочтений, которые действительно можно настроить в цветах и текстурах...


      1. ukmsz
        18.10.2025 17:22

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


  1. edge790
    18.10.2025 17:22

    у вас есть маленькая палитра с 256 цветами (стандартное sRGB)

    Это не так и даже не рядом


    1. Mixail_Soluyanov Автор
      18.10.2025 17:22

      Это гипербола, прием такой, литературный


      1. edge790
        18.10.2025 17:22

        Хорошо, ваш литературный прием мешает восприятию технического текста и вводит читателя в заблуждение.

        sRGB, как и другие цветовые пространства не связаны с "количеством" цветов, а с их диапазоном, а "реалистичная" цифра 256 указывает на (ложную) связь между цветовым пространством и количеством бит, представляющим в нем цвет.


        1. Mixail_Soluyanov Автор
          18.10.2025 17:22

          Ладно, уговорили, поменял. Но цвет бедра испуганной нимфы там по праву!


  1. ArkadiyMak
    18.10.2025 17:22

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


    1. Mixail_Soluyanov Автор
      18.10.2025 17:22

      Я считаю огромной ошибкой то, что Blender установил Filmic, а затем AgX по умолчанию. Любой тонмаппер должен быть осознанным выбором. У меня группа по блендеру в ВК, и я много раз сталкивался с тем, что новички не понимают, почему у них изображение темнеет. Что касаемо нодов - выглядит так:

      Проблема 6 цветов как у Filmic, да и в целом, выглядит очень похоже на Filmic Rec.709, только немного светлее. По демо сцене не заметно, почему нодовый сетап должен быть лучше фильмика. А в Rec.2020 выглядит так:

      В целом, я ожидал, что результат будет хуже. Выглядит неплохо для такого простого сетапа.


      1. punhin
        18.10.2025 17:22

        Пожалуйста, ткните меня носом в "шесть цветов" (куда смотреть-то, чтобы увидеть, что их толкько шесть:)

        Плюс, если можно, ссылочку на группу ВКонтакте.

        Ну и попутно вопрос: а как учесть "последнюю милю" - экран, с которого пользователь будет смотреть на картинку, которую мы так долго "рихтовали"? Скажем, если взять несколько наиболее типичных видов матриц, то какие искажения будут там? Что, если автор экранного произведения пользуется шикарным монитором, с невероятно широкой цветопередачей, и выстраивает цвета исходя из того, что видит сам, а типичный пользователь смотрит всё то же самое, но на гораздо более скромном устройстве? Не нужно ли тогда автору переходить к устройству более "народному" и массовому?

        Вообще, тема цвета и света, на мой взгляд, безгранична. Мы задаём цвета в кодировке RGB, добавляем к ним свет - и что в итоге? Цвет "плывёт" и "вываливается" из исходного диапазона. И как тогда вот этим всем управлять?


        1. Mixail_Soluyanov Автор
          18.10.2025 17:22

          Вот я выкручу интенсивность светильника и уберу блики с поверхности, чтобы проблема 6 цветов была очевидна:

          Ссылку во ВК, всегда пожалуйста: https://vk.com/blender_3d Еще я и в ТГ канал собираю: https://t.me/multlabs

          Касаемо экрана, тема скользкая и непонятная. Но я придерживаюсь такого мнения (не претендую на его верность): Чем лучше у тебя экран - тем точнее ты настроишь цвета. Да, на устройствах они поплывут, но в целом, каждый отдельный пользователь привыкает к экрану, которым он пользуется. Можно привыкнуть даже к ночному фильтру синего, примерно также как мы привыкаем к температуре окружающего освещения.

          Кстати, на тему цвета, у автора фильмика и AgX есть сайт, где можно на долго залипнуть по этой теме: https://hg2dc.com/


    1. Mixail_Soluyanov Автор
      18.10.2025 17:22

      По лисе и петуху, выглядит как что-то среднее между khronos на rec.709 и AgX, небо ушло в желтизну из-за проблемы 6 цветов, тени высветляются, но в целом, очень неплохо. Но это на rec.2020, на rec.709 на уровне фильмика.

      На перья не смотрите, я их успел уже поменять
      На перья не смотрите, я их успел уже поменять


  1. mSnus
    18.10.2025 17:22

    Но ведь мы всё смотрим в sRGB в результате. То есть вопрос не только в том, как оно там отрендерилось, а ещё и в том, как сжалось потом в sRGB.


    1. Mixail_Soluyanov Автор
      18.10.2025 17:22

      Так у меня же вся статья в принципе о том каким тонмапером сжать rec.709/rec.2020/ACEScg в sRGB...


      1. mSnus
        18.10.2025 17:22

        Да, но как я понял, тонмаппинг это процесс автоматический, а как именно оно там сожмется в области светлых желто-зеленых тонов, например, настроить нельзя? Нет какого-то пре-грейдинга, тонких настроек , применяемых до того, как сжатие будет произведено, а информация потеряна?


        1. Mixail_Soluyanov Автор
          18.10.2025 17:22

          Как я уже отвечал, тонмапер решает больше техническую задачу, а не художественную. Более того, идея такова, что вы можете отрендерить изображение в linear exr, пойти с этим изображением, к примеру, в Resolve и применить ту же трансформацию уже там. А уж после трансформации - делайте с цветом уже что хотите, тем более что он уже в адекватном (0-1) диапазоне по яркости.


          1. mSnus
            18.10.2025 17:22

            Получается, что результат работы тонмаппера это не raw и не well-done, скорее, medium rare. Тогда какой смысл их сравнивать напрямую, если конечный результат должен получаться все равно после тонкой доводки? Это ж как in-camera JPEG, нечто для превью. А RAW изображения часто оказываются изначально тусклыми или тёмными, на то они и "сырые"


  1. HakkiRofl
    18.10.2025 17:22

    Одно время изучал цветокоррекцию фильмов и большинство "крутых дядек" использовали Rec.709 по умолчанию, потому что стандарт индустрии для обычных мониторов/телевизоров.

    Есть новомодное пространство Rec.2020 в котором намного больше цветов и по умолчанию он применяется в HDR контенте, но HDR штука запутанная и с хитростями (например для настоящего HDR нужна яркости в тысячи нит и непонятно связан ли HDR с цветом, ведь HDR расшифровывается как расширенные динамический диапазон, а ДД - это количество света (обычно измеряется в степенях двойки, 2⁸ - 8 стоп (steps) , 2¹⁰ - 10 стоп). HLG тоже считается HDR, но при этом может впихнуть весь динамических диапазон в любое устройство (логарифмическая кривая, тем больше света, тем меньше разница по яркости)

    ACES придумали для переноса из программы в программу или на другие устройства, чтобы не терять данные о цвете. В основном пользуется спросом у колористов, но итоговый результат всё равно будет в Rec.709 в основном.

    Есть ещё DCI-P3, которые вроде как используется в кинотеатрах. Это пространство содержит все цвета, которые есть в природе (т.е.натуральные цвета, в основном DCI-P3 расширена по зелёному цвету по сравнению с Rec.709). DCI-P3 во многих современных устройствах есть, но контента всё равно мало в таком цветовом пространстве.


    1. VBDUnit
      18.10.2025 17:22

      непонятно связан ли HDR с цветом, ведь HDR расшифровывается как расширенные динамический диапазон, а ДД - это количество света (обычно измеряется в степенях двойки, 2⁸ - 8 стоп (steps) , 2¹⁰ - 10 стоп)

      Ну, имхо, с технической стороны дисплея всё лаконично — у нас нет просто «света», у нас, как минимум, R, G и B. И мы можем одни компоненты ставить в расширенный диапазон, другие в обычный. А можем все. И за счёт этого у нас возможны соотношения между R, G и B, которые раньше на практике не использовались из‑за технических ограничений, даже не смотря на то, что эти соотношения формально входили в цветовое пространство. А отличия между R, G и B (линейные/нелинейные) — это и есть цвет.

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

      У пяти добровольцев возникло ощущение цвета, который они никогда не видели ранее: описывали его как «сине‑зелётый (blue‑green) с беспрецедентной насыщенностью».

      Авторы назвали этот цвет “olo”, из обозначения (0,1,0) в LMS-координатах (L=0, M=1, S=0) — то есть идеализированная активация только M-конусов.