Hero background image
Отражения и эффекты реального времени для компьютерных и консольных игр

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

Обязательно прочитайте другие статьи из нашей серии "Как сделать освещение высокого класса":

Демонстрация зондов отражения
Размышления

Отражения помогают интегрировать игровые объекты с окружающей средой. Хотя обычно мы ассоциируем отражения с гладкими и блестящими поверхностями, даже шероховатые материалы требуют правильных отражений в процессе рендеринга на основе физики (PBR). HDRP предлагает несколько методов генерации отражений:

  • Отражения в пространстве экрана
  • Зонды отражений
  • Отражения в небе

Каждый тип отражения может быть ресурсоемким, поэтому тщательно выбирайте метод, который лучше всего подходит в зависимости от вашего случая использования. Если к пикселю применяется более одной техники отражения, HDRP смешивает вклад каждого типа отражения. Ограничивающие поверхности, называемые Influence Volumes, разделяют 3D-пространство, чтобы определить, какие объекты получают отражения.

Интерфейс переопределения отражения пространства экрана
Отражения в пространстве экрана

Screen Space Reflections (SSR) используют глубину и цветовой буфер для расчета отражений. Поэтому они могут отражать только объекты, находящиеся в поле зрения камеры, и могут не отображаться должным образом в определенных местах экрана. Глянцевые полы и влажные плоские поверхности - хорошие кандидаты на получение Screen Space Reflections, но учтите, что SSR игнорируют все объекты за пределами кадра, что может ограничить эффект.

Чтобы включить функцию отражения пространства экрана, перейдите в раздел " Настройки кадра "(Настройки по умолчанию HDRP или пользовательские настройки кадра камеры) в разделе " Освещение". Затем добавьте переопределение отражения пространства экрана к объекту Volume.

Поверхности материалов должны превышать значение Minimum Smoothness (Минимальная гладкость ), чтобы на них появились отражения Screen Space Reflections. Уменьшите это значение, если хотите, чтобы более шероховатые материалы показывали SSR, но имейте в виду, что более низкий порог минимальной гладкости может увеличить стоимость вычислений. Если отражение пространства экрана не влияет на пиксель, HDRP переходит к использованию зондов отражения.

С помощью раскрывающегося списка Quality выберите заданное количество шагов Max Ray Steps. Более высокие максимальные шаги лучей повышают качество, но за это приходится платить. Как и в случае с любыми другими эффектами, старайтесь соблюдать баланс между производительностью и визуальным качеством.

В HDRP версий 12 и выше вы можете выбрать между физически обоснованным алгоритмом с использованием накопления (новый) и аппроксимацией, менее точным приближенным алгоритмом (по умолчанию).

Компонент зонда отражения
Зонды отражений

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

Для каждой сцены можно использовать несколько зондов и смешивать результаты. Локальные отражения могут меняться по мере перемещения камеры по окружению.

Установите тип каждого датчика отражения на " Запеченный" или " В реальном времени":

  • Запеченные зонды обрабатывают текстуру cubemap только один раз для статичного окружения.
  • Зонды реального времени создают карту куба во время выполнения в проигрывателе, а не в редакторе. Это означает, что отражения не ограничиваются статичными объектами, хотя обновление в реальном времени может быть ресурсоемким.

Influence Volume определяет 3D-границы, в которых GameObjects будет получать отражение, а Capture Settings позволяет настроить, как Reflection Probe будет делать снимок кубической карты.

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

Схема зонда с плоским отражением
Планарный отражающий зонд

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

Несмотря на то, что зонды планетарного отражения имеют много общего со стандартными зондами отражения, эти компоненты работают немного по-другому. Вместо того чтобы снимать окружение в виде кубической карты, зонд Planar Reflection Probe воссоздает вид камеры, отраженный через ее зеркальную плоскость. Затем пробник сохраняет полученное зеркальное изображение в 2D RenderTexture. Притягиваясь к границам прямоугольного зонда, он создает плоское отражение.

Если объект не затронут соседним зондом отражения, он вернется к отражению неба.

Демонстрация утечки света
Иерархия отражений

Для получения высококачественных отражений HDRP использует технику, обеспечивающую наибольшую точность для каждого пикселя, и комбинирует ее с другими техниками, основанными на трех методах отражения (SSR, Reflection Probes, Sky), используя взвешенный приоритет. Эта конкретная последовательность оценки отражений называется Иерархия отражений.

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

Важно правильно настроить тома влияния для зондов отражения. В противном случае вы можете столкнуться с утечкой света из-за нежелательных отражений Sky Reflections. Это видно на примере комнаты 3 в Sample Scene. Отключение одного из зондов отражения или смещение его объемов влияния заставляет отражение вернуться в небо. Это приводит к тому, что яркий HDRI Sky перегружает сцену своими интенсивными отражениями.

Более подробную информацию об иерархии отражений см. в разделе "Отражения" документации HDRP.

Объем отражающего прокси
Прокси-объемы отражения

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

Частично исправить ситуацию поможет Reflection Proxy Volume. Он более точно проецирует отражения в пределах прокси-объема, основываясь на положении камеры.

Интерфейс переопределения Ambient Occlusion
Световые эффекты в реальном времени

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

Screen Space Ambient Occlusion (SSAO)

Ambient Occlusion имитирует затемнение, возникающее в складках, отверстиях и на поверхностях, расположенных близко друг к другу. Области, на которые падает рассеянный свет, выглядят как окклюзии.

Хотя вы можете запечь Ambient Occlusion для статичной геометрии через Lightmapper в Unity, HDRP добавляет дополнительную функцию Screen Space Ambient Occlusion, которая работает в режиме реального времени. Это эффект пространства экрана, то есть только информация, находящаяся в кадре, может способствовать получению эффекта. SSAO игнорирует все объекты, находящиеся вне поля зрения камеры.

Включите функцию Screen Space Ambient Occlusion в настройках кадра в разделе Lighting. Затем добавьте переопределение локального или глобального тома и выберите Lighting > Ambient Occlusion.

Демонстрация глобального освещения в пространстве экрана на листве
Глобальное освещение пространства экрана

Screen Space Global Illumination (SSGI) использует буфер глубины и цвета экрана для расчета отраженного, рассеянного света. Подобно тому, как лайтмэппинг может запечь непрямое освещение в поверхности статичной геометрии уровня, SSGI более точно моделирует, как фотоны ударяются о поверхности и передают цвет и затенение при отражении.

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

Включите SSGI в настройках кадра в разделе " Освещение". Он также должен быть включен в разделе " Освещение " объекта конвейера.

Примечание: Мы рекомендуем использовать Unity 2021.2 или выше с функцией Screen Space Global Illumination. HDRP 12 включает в себя значительные улучшения качества SSGI.

Интерфейс преломления
Преломление пространства экрана

Функция Screen Space Refraction Override помогает смоделировать поведение света при прохождении через среду, более плотную, чем воздух. HDRP's Screen Space Refraction использует буфер глубины и цвета для расчета преломления через прозрачный материал, например стекло.

Чтобы включить этот эффект через HDRP Lit Shader, убедитесь, что ваш материал имеет тип поверхности Transparent.

Затем выберите модель преломления и показатель преломления в разделе " Входы прозрачности". Используйте модель преломления "Сфера" для твердых объектов, а для полых объектов выберите "Тонкий" (как пузырь) или "Коробка" (с небольшой толщиной).

Было ли это содержание полезным?