Как создают отражения в играх: самые распространённые приёмы.

Материал перевела Фатима Фаталиева специально для Digital Painting Classes и Smirnov School. Оригинал.

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

Плоскостные отражения (Planar Reflections)

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

Access restricted
Access to this video has been restricted by its creator
Гайд по плоскостным отражениям от Unreal Engine

Кубическая текстура от NVIDIA

В 1999 NVIDIA представили самый мощный на тот момент графический процессор и кубические текстуры (Cube Map). Их использовали в гоночных играх PS1, чтобы нанести отражения на поверхности машины. Технология достаточно старая, но актуальна по сей день. Используя кубическую текстуру (cubemap), вам нужно наложить 6 плоскостей на грани куба. После этого нужно размыть их поверхности так, чтобы игроки не увидели, собственно, куба. Этот метод лучше всего работает для отражающих поверхностей, но не для зеркал или динамических объектов.

Access restricted
Access to this video has been restricted by its creator
Гайд по кубическим текстурам от Unreal Engine
Access restricted
Access to this video has been restricted by its creator
Гайд по кубическим текстурам от ThinMatrix

Вы также можете работать с шейдерами и смешивать их со старыми технологиями, чтобы достичь желаемого эффекта. В Unreal Engine 4, например, вы можете сделать отражение, используя Material Editor, который не требует кодинга.

Отражения на поверхности объектов в экранном пространстве, Screen Space Reflections или SSR

Сосредоточимся на технических решениях. Экранное пространство, или SS, захватывает не только отражения. Например SSAO (screen space ambient occlusion, преграждение окружающего света в экранном пространстве) до сих пор широко распространенная методика. Как всё происходит: информацию для рендера берётся из кадрового буфера G или Z (G-buffer or Z-buffer Render Frame). Эти буферы являются этапами обработки кадров; Z-буфер глубины используется для создания Ambient Occlusion (эффект, возникающий от преграждения света), а G-буфер — для отражений. Методика обходится небольшими ресурсами, потому что использует то, что уже было отрендерено.

Однако, у подхода есть и ограничения. Гипотетическое зеркало не может отразить то, что не видит игровая камера. Например, что-то за спиной или в стороне от игрока. В результате мы видим артефакты. Так что технология в основном используется для реалистичных отражений в лужах и поверхностях пола. Лучше не использовать её саму по себе - лучше всего она работает с кубическими текстурами.

Access restricted
Access to this video has been restricted by its creator
Посмотрите, как это реализовано в Grand Theft Auto V

Трассивока лучей и отражения

Трассировка лучей воссоздает источник света, а не только эффект освещения. Таким образом, отражения получаются настолько реалистичными, насколько это возможно. Работая над игрой TwinSoul, White Noise запустили её на картах GeForce 1070. Так что подход работает только с консолями нового поколения, потому что процесс все ещё ресурсоемкий.

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

Оригинал можно прочитать тут.

Понравился материал? Поддержите его лайком и репостом, чтобы мы могли выпускать еще больше! Подписывайтесь на наши сообщества:
Digital Painting Classes — комьюнити для художников, аниматоров и 3D-специалистов; ежедневные подборки для вдохновения, полезные материалы, артбуки, баттлы и конкурсы.
Smirnov School — школа цирового рисунка и концепт-арта: мы готовим художников для работы в игровой индустрии.
Перечень курсов.
2055 views·13 shares