Добавление постобработки в Unity

Как разработчики игр, мы хотим, чтобы наши игры хорошо выглядели и смотрелись. 
Для этого мы можем использовать несколько приёмов. 
Один из них — post-processing.

Если вы играли в какие-либо игры, то, вероятно, знаете о постобработке, даже если не знаете, как она называется. Post-processing играет важную роль в создании игр, поскольку помогает улучшить визуальную составляющую игры, тем самым делая её более увлекательной.

Кроме того, постобработка решает проблемы цветокоррекции, эффектов и многое другое. В игровой движок Unity встроен стек постобработки. В этом руководстве мы рассмотрим, как использовать постобработку в Unity:

Для начала давайте вкратце рассмотрим, что такое постобработка.

Что такое постобработка?

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

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

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

Например, вы можете превратить тёмную сцену в светлую, используя автоматическую экспозицию и эффект «Bloom» для имитации дневного света. Вы также можете превратить светлый день в холодный и пасмурный, используя эффект «White Balance».

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

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

Без (до) последующей обработки: И С (после) последующей обработки:

Изучая оба изображения, мы видим изменение цветов, а также более яркое свечение в некоторых частях сцены. Это означает, что к сцене были применены такие эффекты, как tonemapper и bloom.

На изображениях выше показано, насколько важна постобработка для изменения графики нашей игры.

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

Теперь давайте перейдем к обсуждению постобработки в Unity.

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

Важно отметить, что способ, которым вы можете использовать пакет постобработки Unity, зависит от рендеринга вашего проекта. Существует три способа использования постобработки: Built-in Render Pipeline, Universal Render Pipeline и High-Definition Render Pipeline.

Built-in Render Pipeline — это конвейер рендеринга, который по умолчанию не входит в пакет постобработки. Нам нужно будет установить его с помощью package manager.

Universal Render Pipeline, URP — это конвейер рендеринга, который по умолчанию устанавливается в Unity при создании проекта с использованием шаблона URP.

High-Definition Render Pipeline (HDRP), как и в URP, по умолчанию при создании проекта с использованием шаблона HDRP устанавливается решение для постобработки.

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

Как использовать постобработку в Unity

Сначала мы рассмотрим, как можно использовать постобработку во встроенном конвейере. Затем мы рассмотрим настройку постобработки в URP или HDRP.

Использование встроенной постобработки Unity

Поскольку во встроенном конвейере по умолчанию нет постобработки, нам нужно будет установить её, выбрав window> Package Manager.

Должно открыться новое всплывающее окно. Если этого не произошло, убедитесь, что вы настроили менеджер пакетов на Unity Registry.

В этом всплывающем окне найдите и установите нужный вам пакет — в данном случае Post Processing. Вы увидите окно, показанное ниже:

Нажмите кнопку «Установить» в правом нижнем углу окна.

Теперь, когда мы установили пакет постобработки, нам нужно настроить игру и сцену, чтобы использовать возможности этого пакета. Для этого нам понадобится Post-processing Volume component, чтобы определить область, в которой мы будем применять наши эффекты. Давайте создадим его.

Выберите основную камеру. На вкладке default мы должны создать новый слой, назвать его post-process layer и назначить его слоем по умолчанию:

Затем прокрутите вниз, нажмите кнопку «Add Component», найдите слой 
post-process, который мы создали на предыдущем шаге, и выберите его. 
Это позволит сделать видимыми все добавленные нами эффекты.

Сделав это, мы снова нажмём кнопку «Add Component» и создадим компонент «Post-process Volume».

Установите флажок «Is Global», чтобы сделать этот компонент глобальным. Это сделает эффекты, применяемые к нашей сцене, видимыми на всём экране.

После того как мы установим этот флажок, давайте создадим новый профиль, нажав кнопку 
new . 
Затем мы можем перейти к добавлению нужных нам эффектов.

Настройка постобработки в URP и HDRP

Поскольку в URP и HDRP схожие рабочие процессы, мы рассмотрим только то, как настроить постобработку в URP. Я создам образец 3D-сцены в URP, чтобы использовать его для инструментов постобработки.

Сначала давайте создадим игровой объект с компонентом «Volume». У него есть разные варианты.

Global Volume применяет эффекты ко всему экрану, в то время как Box, Sphere, и Mesh определяют границы в соответствующих формах и применяют эффекты постобработки.

После того как мы это создадим, наша вкладка «inspector» должна выглядеть так:

Затем нам нужно создать профиль Volume, который представляет собой контейнер для хранения эффектов постобработки и их настроек. Как видно на изображении выше, этот профиль Volume нужен для применения эффектов сцены.

На вкладке «inspector» в разделе «volume profile» нажмите кнопку «New». После добавления профиля нажмите кнопку «Add Override».

Выберите «Post-processing», и вы увидите список эффектов. 
Давайте посмотрим, как они работают.

Инструменты постобработки эффектов в Unity

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

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

Bloom effect

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

Вы можете использовать эффект «Bloom», чтобы создать впечатление яркого солнечного дня или, возможно, для игры в жанре фэнтези.

Vignette effect

Vignette — это свойство постобработки, которое добавляет тёмную рамку вокруг экрана. Это часто можно увидеть на изображениях, снятых с помощью объективов низкого качества. Если мы добавим виньетирование к нашему изображению, то получим следующее:

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

Chromatic Aberration effect

Если мы хотим, чтобы наша сцена выглядела так, будто она была снята объективом, который не может сфокусировать свет, мы используем эффект Chromatic Aberration

Возможно, вы видели похожий эффект в играх, где персонаж, за которого вы играете, получает травму или ранение.

Depth Of Field effect

Эффект «Depth Of Field» размывает всё, что находится за пределами заданного расстояния, чтобы сфокусироваться на определённых объектах в сцене. Это один из часто используемых эффектов постобработки, который может придать вашей игровой сцене больше глубины. 

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

Film Grain effect

Эффект «Film Grain» используется для придания изображению или сцене эффекта зернистости, как в старых фильмах. 

Например, мы можем использовать эффект «Film Grain», если хотим, чтобы сцена выглядела как классический фильм.

Tonemapping effect

Эффект Tonemapping изменяет значения цветов в диапазоне высокой чёткости (HDR), создавая впечатление, что сцена с более низким динамическим диапазоном имеет более широкий диапазон цветов.

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

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

White Balance effect

Эффект «White Balance» изменяет общий тон изображения, изменяя температуру или оттенок, сохраняя при этом белые области. 

Мы изменили температуру, чтобы изображение казалось более тёплым. Если вы хотите, чтобы изображение казалось более холодным, вы можете понизить температуру.

Lens Distortion effect

Эффект «Lens Distortion» имитирует искажение, возникающее при использовании объектива. При правильных значениях можно получить более широкое поле зрения. 

Эффект искажения объектива отлично подходит для сцен подводной съёмки, или съёмки от лица снайпера.

Объединение эффектов post-processing в Unity

Мы также можем комбинировать два или более эффектов. 

Другие эффекты post-processing в Unity

Эффекты post-processing, которые мы рассмотрели выше, доступны во всех версиях рендеринга Unity. Существуют и другие инструменты постобработки, которые мы не рассматривали выше. В зависимости от выбранного вами конвейера рендеринга количество доступных эффектов постобработки и их поведение могут отличаться.

Заключение

В этой статье мы поговорили о постобработке и о том, насколько она важна в нашей игре. Мы также рассмотрели, как работает постобработка в Unity, и продемонстрировали примеры различных эффектов. 

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: