Хабрахабр

[Перевод] Анализ игр с HDR

Последнюю пару недель я потратил на исследование HDR-картинки различных игр.

Когда речь идёт об SDR-видео, то вам должны быть знакомы значения RGB в интервале 0-255, где 0 представляет чёрный цвет, а 255 — белый.

HDR10 /Dolby Vision в этом плане немного отличается, не только потому, что использует интервал 0-1023, но и потому, что все эти значения данных представляют не просто чёрно-белый (или цветной) градиент, но и меру освещённости в нитах, то есть в единицах измерения яркости света.

В отличие от используемых в предыдущих видеоформатах значений, эти значения определены и абсолютны. Значение 0 всегда означает полное отсутствие света (полная чернота), значение 1023 всегда представляет 10000 нит освещённости, значение 769 всегда обозначает 1000 нит.

То есть если передать современному HDR-телевизору эти значения, он должен выводить точно такое количество света, которое описано заданным значением.

Эта система используется и в HDR10, и в Dolby Vision. Её могут называть HDR на основе PQ (PQ based HDR).

На сегодняшний момент есть не так много телевизоров с максимальным значением 10000 нит, вам повезло, если у вашего значение превышает 1500 нит.

Когда получаемый сигнал выходит за пределы аппаратных ограничений дисплея, телевизор сам решает, как обрабатывать эту ситуацию. Большинство производителей просто обрезают значения белого выше выбранного ими уровня. Также они могут использовать плавный спад и делать смещение к обрезанным значениям менее очевидным.
Для этого при создании контента под HDR10 и Dolby Vision указывается дополнительная информация о содержимом изображения в формате метаданных. Эти метаданные обычно сообщают, какое самое яркое значение будет присутствовать в игре (или фильме) и какова средняя освещённость для всего контента. Эти значения определяются по дисплею, на котором создавался контент.

Большинство UHD-контента сейчас создаётся для экранов с 1000 нит или 4000 нит.

Цель этих метаданных заключается в том, чтобы можно было получить из оригинального HDR-контента SDR-изображение (или что-то между SDR и HDR) в том случае, когда контент просматривается на дисплее, не достигающем пиковых значений освещённости дисплея, на котором создавался контент.

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

Если у вас есть дисплей, соответствующий максимальной яркости контента или превосходящий её, то ему не будут нужны метаданные.

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

У видеоигр есть большое преимущество по сравнению с фильмами — их картинка генерируется в реальном времени, поэтому её можно настраивать как угодно.

Благодаря самой природе HDR-контента это очень легко измерить: нам достаточно будет скриншота или захвата видео без тональной компрессии (tone mapping), и из них мы можем посмотреть кодовые значения, использованные в разных частях изображения.

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

Поэтому я изучил различные игры для Xbox (консоль позволяет создавать скриншоты в HDR), чтобы разобраться с тем, что же делают различные внутриигровые настройки и как их использовать для получения оптимальной картинки на дисплее.

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

Давайте рассмотрим некоторые по-настоящему хорошие примеры игрового HDR. Во всех этих примерах используются немного отличающиеся параметры и разные подходы к выполнению тональной компрессии.

Чтобы лучше визуализировать вывод игры в формате без HDR10 / SDR-формате, я придумал метод создания карт освещённости.

С помощью этой шкалы мы можем легко оценить, что на картинке тёмное, что светлое, а что очень сильно яркое.

БОльшая часть видимого нами находится в интервале 0-150 нит, а всё выше — это дополнительная освещённость, обеспечиваемая HDR.

Star Wars: Battlefront 2

На самом деле, во всех HDR-совместимых играх на движке Frostbite, которые я рассматривал (Battlefield 1, Mass Effect) используется одинаковая схема.

Метаданные выводятся в 100000, а сама тональная компрессия выполняется игрой с помощью HDR-ползунка, где 0 нит — самое левое значение, а 10k нит — самое правое.

Как мы видим, само Солнце выводится в 10k нит. Объекты, которые должны быть совершенно тёмными, так и выглядят. Блики отражений на верхней части оружия тоже попадают в интервал от 4000 до 10000 нит.

Игры Dice на движке Frostbite на самом деле очень интересны тем, что можно сдвинуть HDR-ползунок на одно деление слева. Это даст нам 100/200 нит (в зависимости от игры), в сущности сжимая картинку игры до SDR. Таким образом вы можете очень легко убедиться, на что способен ваш новый крутой телевизор.

Ещё одна забавная вещь из игр DICE — можно сдвинуть ползунок на 0% и в буквальном смысле отключить всё освещение. Так мы увидим, что освещение действительно просчитывается в реальном времени, ведь мы сказали движку, что самый яркий источник света должен быть равен 0.

Rise of the Tomb Raider

В этой игре используется похожая схема: ползунок яркости, управляющий точкой чёрного (при перемещении к самой низкой точке), а второй HDR-ползунок управляет пиковой яркостью.

Изображение Tomb Raider ограничено 4000 нитами. Как и в играх на движке Frostbite, можно или поднять ползунок до максимума, чтобы телевизор выполнял тональную компрессию, или следовать экранным инструкциям, выбрав максимальную яркость и позволив игре выводить данные самостоятельно.

RotTR особенно интересна в этом, потому что тут есть множество бликов отражений, и не только в местах, где мы их обычно видим, например, на блестящем льду и мерцающем снеге, отражающем свет солнца…

… их можно увидеть и в условиях слабого освещения и на менее очевидных «блестящих» поверхностях, таких как этот ботинок в безумно высоком разрешении.

Похоже, что когда выходные данные достигают 4000 нит, то любой уровень выше этого прыгает прямо к 10k нит (что дисплей в любом случае обрежет, поскольку метаданные, похоже, сообщают дисплею, что они имеют значение 4000 нит).

Эти данные не теряются, их время от времени можно увидеть, и это говорит нам, что это художественное решение или часть процесса цветокоррекции игры под HDR.

Assassin's Creed Origins

AC:Origins — это ещё одна игра с хорошо реализованным HDR. Как и в Tomb Raider, здесь тоже присутствует ограничение в 4000 нит (розовые фрагменты). В игре есть ползунок яркости, который на основании условий видимости нужно опустить как можно ниже. Кроме того, в игре есть опция Max Luminance, удобно размеченная в нитах.

Также в ней есть шкала «белого листа», то есть кроме ползунков и настройки самых тёмных и самых ярких частей игры она позволяет изменять одну из промежуточных точек: яркость листа бумаги.

Ubisoft рекомендует для ползунка белого листа следующую настройку:

отрегулируйте значение так, чтобы бумага и свисающая ткань на изображении были почти белыми

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

Настройка игр в соответствии с технически правильными параметрами показывает, что для многих потребителей HDR10/Dolby vision оказывается слишком тёмным. Также можно увидеть, что разработчики всё ещё вплотную занимаются этими технологиями: при правильной калибровке картинки игры HUD в AC становится немного слишком тёмным.

Дальше мы рассмотрим три продукта Microsoft, которые работают с выводом в полные 10000 нит.

Forza Horizon 3

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

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

Как вы видите, небо достигает примерно 4000 нит, на решётку почти не падает свет и она тёмная, в то время как передние фары выдают полные 10k нит.

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

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

Gears of War 4

INSECTS

Все три игры работают с двумя ползунками. Ползунок яркости управляет уровнями чёрного, однако также контролирует один из аспектов контрастности, увеличивая максимальный вывод до 10000k нит. Второй ползунок HDR также позволяет задавать максимальный вывод, ниже значений которого настраивается другой ползунок.

В Forza и Gears эти параметры называются просто яркостью (Brightness) и HDR, однако в INSECTS они называется контрастностью HDR (HDR Contrast) и яркостью HDR (HDR brightness).

Давайте теперь посмотрим на некоторые другие примеры.

Shadow of Mordor

В SoM используется очень упрощённый подход: игра всегда выводит максимум 10k нит, а тональную компрессию оставляет на долю телевизора. Это интересно, так как мы знаем, что на самом деле разработчики никогда не видели игру выводимой в 10k нит, потому что таких дисплеев не существует.

В игре есть традиционный ползунок яркости (Brightness), который позволяет пользователям настраивать точку чёрного в соответствии с их вкусом и условиями просмотра.

На скриншоте мы видим очевидные места, где стоит искать полные 10k нит, а именно солнце и блики отражений. Также мы видим, что сторона персонажа, находящаяся в тени, такая тёмная, как и должна быть.

Agents of Mayhem

Здесь используется похожая техника, за исключением того, что игра ограничена сверху 1000 нитами и цветокоррекция/тональная компрессия, очевидно, выполнялись с учётом этого, поскольку это достаточно достижимый вывод с точки зрения потребительского дисплея. Не думаю, что это было совпадением, и это на самом деле одна из самых хорошо выглядящих в HDR игр.

Здесь снова, как и в других играх, сдвигание ползунка влево улучшает уровень чёрного.

DEUS EX: Mankind Divided

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

Это выглядит как результат какой-то неверной регулировки кривой.

40-45% дают вывод в 1000 нит без слишком большого задирания чёрного вверх.

Final Fantasy XV

От «Squarenix, фу», к «Squarenix, ого!»

Фиксированный максимальный вывод в 1000 нит и простой ползунок яркости для опускания уровней чёрного. Потрясающе тщательная цветокоррекция, в том числе и при разных условиях освещения.

Даже на начальном экране есть 2D-элементы, оптимизированные для HDR.

Monster Hunter World

Почти как и Deus Ex, Monster Hunter World, похоже, работает в пределах 4000 нит. Однако почти как и в DEUS EX, при включённом HDR игра демонстрирует серьёзные проблемы с уровнем чёрного. При настройке яркости по умолчанию мы получаем следующее:

Есть промежуточные значения и блики, но где все тени?

Благодаря «быстрому и грязному» улучшению уровней мы можем удалить дополнительную HDR-освещённость и посмотреть на гистограмму.

Если мы сравним это с игровым скриншотом в SDR, сделанным через несколько секунд

то увидим, что присутствует значительный сдвиг между SDR и тональной компрессией HDR. В HDR контрастность и уровни чёрного совершенно разваливаются.

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

Фух! Целая куча картинок!

Мы изучили одну сторону создания игр, но не исследовали выводимые игрой метаданные. Я не удивлюсь, если существуют игры с несовпадающими метаданными, но поскольку они статичны, то как только вы настроите картинку, то с технической точки зрения они всё равно станут неверными.

Horizon Zero Dawn: Frozen Wilds

Даже из этого короткого клипа мы можем увидеть, как нужно реализовывать HDR правильно — почти всё увиденное находится в стандартном диапазоне SDR, однако мерцающие на солнце блики оружия Элой и спускающиеся по её спине искры приближаются к уровню в 10k нит. Мы видим, что облака ярко освещены и находятся в интервале 1000-4000 нит, в то время как само солнце стремится к 10k:

Судя по тому, что я увидел, оно превышает 4000 нит.

Uncharted 4

Я записал HDR-ролик ещё и для Uncharted 4, ещё одной игры, превысившей порог в 4000 нит и стремящейся к 10k.

Теги
Показать больше

Похожие статьи

Кнопка «Наверх»
Закрыть