Игры совершенствуются вместе с развитием информационных технологий. Их разработчики стараются сделать качество изображения все более реалистичным и красивым. Для этого используются самые разные приемы и настройки.
Существует параметр в игровой графике, который будет так же важен, как и сглаживание. Речь идет о технике создания системы глобального освещения. Она называется SSAO. Далее предстоит изучить ее более подробно. Нужно понять, что она собой представляет, для чего используется, какие преимущества и недостатки предусматривает.
Определение
SSAO в играх – это screen space ambient occlusion. Так называется окружающее затенение в экранном пространстве. Оно представляет собой технику в трехмерной компьютерной графике, которая максимально приближена к имитации глобального освещения и выражает измененный и более совершенный вариант техники окружающего затенения. SSAO в игре работает в режиме реального времени.
Данная технология используется для имитации рассеянного непрямого освещения, а также соответствует затемнению в трехмерном виртуальном пространстве. Она была разработана отделом исследований и разработок немецкой компании Crytek. Это произошло в процессе ее трудов над созданием графических компонентов для игрового движка CryEngine 2 Crysis. Сейчас рассматриваемый алгоритм широко используется в играх.
Как работает
Изучаемый алгоритм исполняется непосредственно на графическом процессоре видеокарты. Осуществляется в качестве пиксельного шейдера, который анализирует буфер глубины сцены, сохраненный в текстуре.
При работе SSAO пиксельный шейдер осуществляет выборку значения глубины для каждого имеющегося на экране пикселя вокруг текущего, а также пытается вычислить количество преград от каждой выбранной точки. В самой простой реализации коэффициент преграды находится в прямой зависимости от различия глубины между выбранной и текущей точкой.
Рассматриваемая технология используется для упрощения вычислительной сложности алгоритма окружающего затенения и его формирования в качестве более подходящего для работы на графических процессорах в game design в режиме реального времени. Качество результирующего изображения при применении SSAO будет хуже, чем в первоначальном окружающем затенении. Это связано с тем, что алгоритм использует аппроксимирующие (приближающие) методики рендеринга.
Чтобы получить более качественные результаты работы с меньшим количеством чтений текстур по сравнению с окружающим затенением, SSAO использует выборку вместе со случайно вращаемым ядром. Его ориентация повторяется каждые N-пикселей экрана. Это нужно для того, чтобы получить в итоговой «картинке» высокочастотные искажения. В конце оно удаляется N*N количеством прихода постпроцессора, отвечающего за размытие изображения. Глубина неоднородностей принимается во внимание при помощи таких методов, как сравнение смежных нормалей и глубин. Этот прием позволяет сократить количество выборок глубины на пиксель к приблизительно 16 или меньше, одновременно предоставляя высококачественный результат. Все это дает возможность использовать SSAO в приложениях реального времени.
Преимущества и недостатки SSAO
Рассматриваемая технология предусматривает как преимущества, так и недостатки. К ее сильным сторонам можно отнести следующие моменты:
- Независимость от сложности сцены. SSAO отлично проявляет себя в открытых игровых мирах. Для прорисовки графики в этом случае не требуется дополнительного времени. Получающиеся локации создаются бесшовными.
- Обработка информации в режиме реального времени. Этот прием позволяет добиться хорошей кадровой частоты. На результат никак не влияет скорость оперативной памяти, а также пропускные способности жесткого диска. Эти компоненты не используются при проводимых расчетах.
- Отсутствие необходимости использования оперативной памяти для загрузки данных. Это позволяет использовать SSAO в сложных и хорошо детализированных проектах.
- Воздействие нагрузки при игре только на видеочип. Центральный процессор компьютера будет «свободен». За счет соответствующего приема удается снизить тепловыделение и нагрев всего «железа» компьютера.
- Поддержка интеграции с видеодрайверами AMD и Nvidia. Соответствующий прием обеспечивает максимальную оптимизацию сцен.
- Широкий уровень распространенности. Несмотря на то, что SSAO появилась в начале 2000-х годов, она все равно активно используется создателями игрового программного обеспечения.
Недостатки у изучаемого режима тоже есть. К ним можно отнести:
- Более низкое качество обработки. Это связано с тем, что изучаемый алгоритм был создан для снижения нагрузки на видеокарты компьютеров. Картинка на устройстве будет выглядеть менее реалистичной, пользователь увидит неестественные переходы и разнообразные артефакты.
- Несмотря на название «глобального освещения», изучаемый алгоритм более локален. Связано это с тем, что свет и тень зависят от имеющегося угла обзора. Заметить это можно особо хорошо в играх с открытыми мирами.
- Проблемы со сглаживанием изображений при активации технологии. Иногда картинка в игре может быть испорчена.
Изучаемая технология не является единственной используемой в современных играх. Есть и другие.
Что такое HBAO
Изучая SSAO, необходимо обратить внимание на еще одну схожую технологию. Речь идет о HBAO – Based Ambient Occlusion. Она базируется на физических моделях, что положительно сказывается на качестве изображения, но негативно влияет на производительность имеющегося оборудования.
Соответствующая технология графики в играх является более совершенной, чем предыдущая. При расчете рендеринга система использует кадры с низким разрешением, поэтому появляется некоторое мерцание «картинки». Со временем появилась более совершенная версия HBAO – HBAO+. В ней разработчики смогли избавиться от мерцаний, но проблему производительности это не решило.
HBAO – технология, которая рекомендована для выбора отображения графики в играх на небольших экранах. Она лучше всего подойдет для видеокарт Nvidia.
Сравнение графических алгоритмов
Лучше разобраться в методах обработки графики в играх поможет следующая таблица. Она наглядно демонстрирует разницу между SSAO, HBAO и другими концепциями.
Название | Описание | Поддержка карт и нагрузка на систему |
SSAO | Самая первая технология, используемая в играх для отрисовки теней. После формирования всех объектов на экране осуществляется автоматический расчет. Осуществляется определение положения для каждого пикселя | Nvidia. AMD. Нагрузка минимальная. |
HBAO | Более совершенная версия предыдущей концепции. Базируется на физических моделях. Количество проверок возрастает, что приводит к высокой нагрузке. | Nvidia. Нагрузка на систему средняя. |
HBAO+ | Доработка предыдущей технологии, с которой удалось избавиться от мерцаний. Рендеринг здесь шахматный. Он базируется на определении ранее проведенных расчетов. | Nvidia. Нагрузка на систему будет ниже средней. |
HDAO | Разработка AMD. Схожа с предыдущим алгоритмом. | Работает на AMD со средней нагрузкой на систему. |
VXAO | С помощью этого метода можно получить более качественное изображение. Система формирует более реалистичные затенения. При сложных схемах требует производительных видеокарт. | Nvidia, AMD. Нагрузка на систему чуть выше средней. |
RTX | Метод трассировки лучей, который применяется только при производстве дорогих видеокарт. Отражения с ним становятся на порядок реалистичнее. Поддерживает возможность установки в играх разнообразных дополнительных параметров вроде качества теней. При совмещении с другими технологиями сильно нагружает систему. | Nvidia. Нагрузка на систему будет высокой. |
Включать SSAO или нет, каждый решает сам. Если соответствующая концепция активирована, получится снизить нагрузку на компьютер, но реалистичного изображения не получится.
Хотите освоить современную IT-специальность? Огромный выбор курсов по востребованным IT-направлениям есть в Otus!