Сглаживание, громкость и экспозиция для ПК и консольных игр
Это вторая статья в серии, в которой объясняется, как разработчики и технические художники могут настроить и использовать конвейер рендеринга высокого разрешения (HDRP) в Unity для достижения графического реализма высокого класса. HDRP представляет собой технологический скачок в рендеринге Unity в реальном времени, поэтому вы можете работать со светом так же, как он ведет себя в реальном мире.
Обязательно прочитайте другие статьи из нашей серии практических рекомендаций по высококачественному освещению:
Путь рендеринга в режиме Lit Shader влияет на то, как вы можете использовать сглаживание для удаления неровных краев при рендеринге. HDRP предлагает несколько методов сглаживания в зависимости от ваших производственных потребностей.
Мультисэмпловое сглаживание
Мультисэмпловое сглаживание (MSAA) — популярный метод сглаживания среди компьютерных геймеров. Это высококачественный аппаратный метод, который сглаживает края отдельных полигонов и работает только с прямым рендерингом в Unity. Большинство современных графических процессоров поддерживают выборки MSAA 2x, 4x и 8x.
В активном ресурсе Pipelineустановите для режима Lit Shader Mode значение Forward Only. Затем выберите MSAA 2x, MSAA 4xили MSAA 8x для качества сглаживания мультисэмпла. Более высокие значения приводят к лучшему сглаживанию, но оно медленнее. Мы можем увидеть это более четко, если увеличить изображение с камеры.
Стоит отметить несколько ограничений MSAA:
- MSAA несовместимо с G-буферами отложенного затенения, которые сохраняют геометрию сцены в текстуре. Таким образом, отложенное затенение требует одного из методов сглаживания постобработки.
- Поскольку MSAA занимается только сглаживанием краев полигонов, он не может предотвратить сглаживание, обнаруженное на определенных текстурах и материалах, на которые воздействует резкое зеркальное освещение. Возможно, вам придется объединить MSAA с другим методом сглаживания постобработки, если это является проблемой.
Чтобы применить сглаживание в качестве метода постобработки, используйте Настройки пост-сглаживания:
- Временное сглаживание (TAA) объединяет информацию из прошлых и текущих кадров для удаления неровностей из текущего кадра. Чтобы это работало, вы должны включить векторы движения . TAA обычно дает отличные результаты, но в некоторых ситуациях может создавать ореолы (например, GameObject быстро движется перед контрастной поверхностью). В HDRP10 были внесены улучшения, позволяющие сократить типичные артефакты TAA. Реализация Unity уменьшает двоение изображения, повышает резкость и предотвращает мерцание, встречающееся в других решениях.
- Быстрое приближенное сглаживание (FXAA) — это алгоритм сглаживания экранного пространства , который смешивает пиксели между областями с высокой контрастностью. Это относительно быстрый метод, не требующий больших вычислительных мощностей, но способный снизить общую резкость изображения.
- Субпиксельное морфологическое сглаживание (SMAA) обнаруживает границы изображения, а затем ищет определенные узоры для смешивания. Это дает более четкие результаты, чем FXAA, и хорошо работает с плоскими, мультяшными или чистыми художественными стилями.
Примечание: При сочетании постобработки и мультисэмплового сглаживания обратите внимание на стоимость рендеринга. Как всегда, оптимизируйте свой проект, чтобы сбалансировать визуальное качество и производительность.
HDRP использует структуру Volume. Эта система позволяет разделить сцену и включить определенные настройки или функции в зависимости от положения камеры. Например, уровень шаблона HDRP содержит три отдельные части, каждая из которых имеет собственную настройку освещения. Таким образом, в каждой комнате есть разные тома.
Volume — это просто объект-заполнитель с компонентом Volume. Вы можете создать его через меню GameObject > Volume , выбрав предустановку. В противном случае просто создайте GameObject с правильными компонентами вручную.
Поскольку компоненты тома можно добавить к любому игровому объекту, их может быть сложно найти в иерархии. Light Explorer (Окно > Рендеринг > Light Explorer > Объемы) может помочь вам найти объемы в загруженных сценах. Используйте этот интерфейс для быстрой настройки.
Установите для компонента Volume Mode значение Global или Localв зависимости от соответствующего контекста.
Глобальный объем работает как «объемный комплекс» без каких-либо границ и поэтому влияет на все камеры в сцене. В примере сцены HDRP VolumeGlobal определяет общий базовый уровень настроек HDRP для всего уровня.
Локальный том определяет ограниченное пространство, в котором его настройки вступают в силу. Он использует компонент Collider для определения своих границ. Включите Is Trigger, если вы не хотите, чтобы коллайдер препятствовал движению любых физических тел, таких как контроллер вашего FPS-плеера.
В примере сцены (см. изображение в разделе «Объемы») в каждой комнате есть локальный том с BoxCollider, который переопределяет глобальные настройки.
В комнате 2 есть небольшой сферический объем в светлом центре рядом со витриной, а в комнате 3 есть меньшие объемы в входном коридоре и в зоне отдыха под подвесными светильниками.
В шаблоне локальные объемы переопределяют баланс белого, экспозицию и/или туман. Все, что не переопределено явно, возвращается к глобальным настройкам.
Когда ваша камера перемещается по сцене, глобальные настройки вступают в силу до тех пор, пока контроллер вашего проигрывателя не столкнется с локальным томом, где эти настройки вступят в силу.
Совет по производительности: не используйте большое количество томов. Оценка каждого тома (смешение, пространственное определение, переопределение вычислений и т. д.) требует определенных затрат ЦП.
Компонент Volume не содержит фактических данных. Вместо этого он ссылается на профиль тома — ресурсScriptableObject на диске, который содержит настройки для рендеринга сцены.
Используйте поле «Профиль» , чтобы создать новый профиль тома с помощью кнопок «Создать» или «Клонировать» . Вы также можете переключиться на другой профиль, который вы уже сохранили.
Использование профиля тома в виде файла упрощает повторное использование предыдущих настроек и обмен профилями между вашими томами.
Обратите внимание, что изменения, внесенные в профили громкости в режиме воспроизведения, не будут потеряны при выходе из этого режима.
Каждый профиль тома начинается с набора свойств по умолчанию. Чтобы изменить их значения, перейдите в раздел «Переопределения громкости» и настройте отдельные параметры. Например, используйте Volume Overrides , чтобы изменить Fog, Post-processingили Exposureтома.
После того, как вы установили профиль тома , нажмите «Добавить переопределение» , чтобы настроить параметры профиля. На изображении показан пример того, как может выглядеть Fog Override.
Слева от каждого свойства Volume Override есть флажок, который можно использовать для редактирования этого свойства. Если оставить этот флажок отключенным, это означает, что HDRP использует значение тома по умолчанию. Объекты тома могут иметь несколько переопределений. Отредактируйте столько свойств, сколько необходимо для каждого из них. Вы можете быстро установить или снять отметки со всех из них с помощью ярлыка «Все» или «Нет» в левом верхнем углу.
Добавление переопределений — ключевой рабочий процесс в HDRP. Если вы понимаете концепцию наследования от программирования, Volume Overrides покажется вам знакомым.
Настройки громкости высокого уровня являются настройками по умолчанию для томов низкого уровня. Здесь настройки HDRP по умолчанию передаются на глобальный том, который, в свою очередь, служит «базой» для локальных томов.
Глобальный том переопределяет настройки HDRP по умолчанию, а локальный том переопределяет глобальный том. Используйте Priority, Weightи Blend Distance (описанные в следующем разделе), чтобы разрешить любые конфликты, вызванные перекрытием объемов.
Чтобы отладить текущие значения данного компонента Volume, перейдите на вкладку Volume в отладчике рендеринга.
Полный список переопределений томов можно найти в документации HDRP.
Поскольку вам часто требуется более одного тома на уровень, HDRP позволяет смешивать тома. Это делает переходы между ними менее резкими.
Во время выполнения HDRP использует положение камеры, чтобы определить, какие тома влияют на настройки HDRP.
Расстояние смешивания определяет, где или как далеко за пределами коллайдера объема начинать или выключать затухание. Значение 0 для расстояния перехода означает мгновенный переход, тогда как положительное значение означает, что переопределения объема смешиваются только тогда, когда камера входит в указанный диапазон.
Структура томов является гибкой и позволяет вам смешивать и сопоставлять тома и переопределения по своему усмотрению. Если одно и то же пространство перекрывается более чем одним томом, HDRP полагается на приоритет, чтобы решить, какой том имеет приоритет. Более высокие значения означают более высокий приоритет.
В общем, устанавливайте значения приоритета явно, чтобы исключить любые догадки. В противном случае система будет использовать порядок создания в качестве решающего фактора приоритета, что может привести к неожиданным результатам.
HDRP использует реальные модели освещения для рендеринга каждой сцены. Таким образом, многие свойства аналогичны своим аналогам в традиционной фотографии.
Понимание ценности воздействия
Значение экспозиции (EV) — это числовое значение, которое представляет собой комбинацию выдержки камеры и числа f (которое определяет размер отверстия объектива или диафрагмы). Вам необходимо правильно установить экспозицию , чтобы достичь идеальной яркости и сохранить высокий уровень детализации как в тенях, так и в светлых участках. В противном случае переэкспонирование или недоэкспонирование изображения приведет к нежелательным результатам.
Диапазон воздействия в HDRP обычно находится где-то в приведенном выше спектре.
Большие значения экспозиции пропускают меньше света в камеру, что подходит для более ярко освещенных ситуаций. Здесь значение EV от 13 до 16 подходит для солнечного дневного времени. Напротив, темное, безлунное ночное небо может использовать EV от -3 до 0.
Вы можете изменить ряд факторов в настройках реальной камеры, чтобы изменить значение экспозиции:
- Скорость затвора: Время, в течение которого датчик изображения подвергается воздействию света
- Число f: Размер диафрагмы или отверстия объектива
- ИСО: Чувствительность пленки/сенсора к свету
Фотографы называют это треугольником экспозиции. В Unity, как и в реальной камере, вы можете получить одно и то же значение экспозиции, используя разные комбинации этих чисел. HDRP выражает значение экспозиции в EV100, что соответствует чувствительности пленки 100 Международной организации по стандартизации (ISO).
Приведенная выше формула рассчитывает значение воздействия.
Обратите внимание, что это логарифмическая шкала с основанием 2. При увеличении значения экспозиции на одну единицу количество света, попадающего в объектив, уменьшается вдвое.
HDRP позволяет сопоставить экспозицию с реальным изображением. Просто сделайте цифровую фотографию с помощью камеры или смартфона. Получите метаданные изображения, чтобы определить число f, выдержку и ISO.
Используйте формулу для расчета значения воздействия. Если вы используете то же значение в параметре «Переопределение экспозиции» (см. следующий раздел), визуализированное изображение должно соответствовать реальной экспозиции.
Вы можете использовать цифровые фотографии в качестве эталонов при освещении уровня. Хотя цель не обязательно состоит в том, чтобы идеально воссоздать изображение, сопоставление с реальной фотографией может избавить вас от догадок при настройке освещения.
В HDRP Exposure — это переопределение громкости. Добавьте его в локальный или глобальный том , чтобы просмотреть доступные свойства.
В раскрывающемся списке «Режим» выберите один из следующих вариантов: Фиксированная, автоматическая, автоматическая гистограмма, отображение кривыхи физическая камера.
Компенсация позволяет сдвигать или регулировать экспозицию. Вы можете использовать это, чтобы применить незначительные корректировки и слегка «остановить» визуализированное изображение вверх и вниз.
Фиксированный режим
Фиксированный режим позволяет вам установить значение экспозиции вручную. Следуйте за градуировкой на ползунке «Фиксированная экспозиция» , чтобы получить подсказки. Хотя значок справа имеет раскрывающийся список предустановок (например, от 13 для сцены с солнечным светом до -2,5 для сцены без луны), вы можете напрямую установить в поле любое значение.
Имейте в виду, что фиксированный режим довольно прост, но не очень гибок. Это работает только в том случае, если у вас есть объем или сцена с относительно равномерным освещением, где одно значение экспозиции может работать повсюду.
Автоматический режим динамически устанавливает экспозицию в зависимости от диапазона уровней яркости экрана. Это похоже на то, как человеческий глаз адаптируется к различным уровням темноты, переопределяя то, что воспринимается как черное.
Хотя автоматический режим работает при многих условиях освещения, он также может непреднамеренно переэкспонировать или недоэкспонировать изображение, если навести камеру на очень темную или очень яркую часть сцены. Используйте Limit Min и Limit Max, чтобы поддерживать уровень воздействия в желаемом диапазоне. Протестируйте, чтобы убедиться, что пределы остаются в пределах ожидаемого воздействия на протяжении всего уровня. Затем используйте «Режим замера экспозиции»в сочетании с параметрами «Маска» , чтобы указать, к каким частям кадра применить автоэкспозицию.
Автоэкспозиция меняется по мере перехода камеры от темноты к свету, с возможностью регулировки скорости. Как и в случае с глазами, перемещение камеры из очень темной области в очень светлую или наоборот может на короткое время дезориентировать.
«Автоматический», «Автоматическая гистограмма»и «Сопоставление кривой» используют режим замера экспозиции , чтобы определить, какую часть кадра использовать при расчете экспозиции. Вы можете установить режим измерения:
- Средний: Камера использует весь кадр для измерения экспозиции.
- Место: Камера использует только центр экрана для измерения экспозиции.
- Центровзвешенный: Камера отдает предпочтение пикселям в центре изображения и растушевывает их по направлению к краям кадра.
- Маска взвешенная: Прилагаемое изображение (Маска текстуры веса) указывает, какие пиксели наиболее важны для управления экспозицией.
Процедурная маска: Камера оценивает экспозицию на основе процедурно сгенерированной текстуры. Вы можете изменить параметры центра, радиуса и мягкости.
Автоматический режим гистограммы выводит автоматический режим на новый уровень. В конечном итоге он вычисляет гистограмму изображения и игнорирует самые темные и самые светлые пиксели при настройке экспозиции.
Исключив очень темные или очень яркие пиксели из расчета экспозиции, вы можете получить более стабильную экспозицию всякий раз, когда в кадре появляются чрезвычайно яркие или темные пиксели. Таким образом, интенсивно излучающие поверхности или черные материалы не будут слишком сильно недоэкспонировать или переэкспонировать ваш визуализированный результат.
Используйте настройки процентного соотношения гистограммы в автоматическом режиме гистограммы, чтобы отбросить на гистограмме все, что находится за пределами заданного процентного диапазона (представьте, что самые яркие и самые темные пиксели вырезаются из самой левой и самой правой частей гистограммы). Затем используйте Curve Remapping , чтобы переназначить кривую экспозиции (подробнее см. в следующем разделе).
Сопоставление кривых — это еще один вариант автоматического режима.
В режиме отображения кривойось X кривой представляет текущую экспозицию, а ось Y представляет целевую экспозицию. Переназначение кривой экспозиции может повысить точность.
Тем, кто знаком с фотографией, может оказаться полезным режимфизической камеры для настройки параметров камеры.
Переключите режим коррекции экспозиции на «Физическую камеру», затем найдите основную камеру. Оттуда вы можете включить физическую камеру. См. изображение свойств, отображаемых в Инспекторе.
Для экспозиции важны ISO (чувствительность), диафрагма (или число f) и выдержка, расположенные в разделе «Физическая камера». Если вы сравниваете эталонные фотографии, скопируйте правильные настройки из данных Exif изображения. В противном случае эта таблица поможет вам определить значение экспозиции на основе числа f и выдержки.
Другие свойства физической камеры , хотя и не связанные с экспозицией, могут помочь вам сопоставить атрибуты реальных камер.
Например, мы обычно используем поле зрения в Unity (и многих других 3D-приложениях), чтобы определить, какую часть мира камера может видеть одновременно. Однако в реальных камерах поле зрения зависит от размера сенсора и фокусного расстояния объектива.
Вместо того, чтобы напрямую устанавливать поле зрения, физические настройки камеры позволяют вам указать тип датчика, размер датчикаи фокусное расстояние на основе фактических данных камеры. Затем Unity автоматически рассчитает соответствующее значение поля зрения.
Полагайтесь на метаданные камеры, включенные в файлы изображений, при попытке сопоставить реальную фотографию. И Windows, и macOS могут считывать данные Exif из цифровых изображений. Затем вы можете скопировать соответствующие поля на свою виртуальную камеру.
Обратите внимание: вам может потребоваться найти точные размеры сенсора на веб-сайте производителя, как только вы определите марку и модель камеры на основе метаданных. В этой статье содержится оценка распространенных форматов датчиков изображения. Несколько нижних параметров влияют на глубину резкости.
В Unity 2021 LTS вы можете управлять фокусным расстоянием с помощью инспектора камеры. В компоненте «Глубина резкости» установите для параметров «Режим фокусировки» и « Режим фокусного расстояния» значение «Физическая камера».
Используйте Blade Count, Curvatureи Barrel Clipping , чтобы изменить форму апертуры камеры. Это влияет на внешний вид боке, возникающего в результате использования компонента «Глубина резкости» .