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

Существует параметр в игровой графике, который будет так же важен, как и сглаживание. Речь идет о технике создания системы глобального освещения. Она называется SSAO. Далее предстоит изучить ее более подробно. Нужно понять, что она собой представляет, для чего используется, какие преимущества и недостатки предусматривает.

Определение

SSAO в играх – это screen space ambient occlusion. Так называется окружающее затенение в экранном пространстве. Оно представляет собой технику в трехмерной компьютерной графике, которая максимально приближена к имитации глобального освещения и выражает измененный и более совершенный вариант техники окружающего затенения. SSAO в игре работает в режиме реального времени.

Данная технология используется для имитации рассеянного непрямого освещения, а также соответствует затемнению в трехмерном виртуальном пространстве. Она была разработана отделом исследований и разработок немецкой компании Crytek. Это произошло в процессе ее трудов над созданием графических компонентов для игрового движка CryEngine 2 Crysis. Сейчас рассматриваемый алгоритм широко используется в играх.

Как работает

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

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

Рассматриваемая технология используется для упрощения вычислительной сложности алгоритма окружающего затенения и его формирования в качестве более подходящего для работы на графических процессорах в game design в режиме реального времени. Качество результирующего изображения при применении SSAO будет хуже, чем в первоначальном окружающем затенении. Это связано с тем, что алгоритм использует аппроксимирующие (приближающие) методики рендеринга.

Чтобы получить более качественные результаты работы с меньшим количеством чтений текстур по сравнению с окружающим затенением, SSAO использует выборку вместе со случайно вращаемым ядром. Его ориентация повторяется каждые N-пикселей экрана. Это нужно для того, чтобы получить в итоговой «картинке» высокочастотные искажения. В конце оно удаляется N*N количеством прихода постпроцессора, отвечающего за размытие изображения. Глубина неоднородностей принимается во внимание при помощи таких методов, как сравнение смежных нормалей и глубин. Этот прием позволяет сократить количество выборок глубины на пиксель к приблизительно 16 или меньше, одновременно предоставляя высококачественный результат. Все это дает возможность использовать SSAO в приложениях реального времени. 

Преимущества и недостатки SSAO

Рассматриваемая технология предусматривает как преимущества, так и недостатки. К ее сильным сторонам можно отнести следующие моменты:

  1. Независимость от сложности сцены. SSAO отлично проявляет себя в открытых игровых мирах. Для прорисовки графики в этом случае не требуется дополнительного времени. Получающиеся локации создаются бесшовными.
  2. Обработка информации в режиме реального времени. Этот прием позволяет добиться хорошей кадровой частоты. На результат никак не влияет скорость оперативной памяти, а также пропускные способности жесткого диска. Эти компоненты не используются при проводимых расчетах.
  3. Отсутствие необходимости использования оперативной памяти для загрузки данных. Это позволяет использовать SSAO в сложных и хорошо детализированных проектах.
  4. Воздействие нагрузки при игре только на видеочип. Центральный процессор компьютера будет «свободен». За счет соответствующего приема удается снизить тепловыделение и нагрев всего «железа» компьютера.
  5. Поддержка интеграции с видеодрайверами AMD и Nvidia. Соответствующий прием обеспечивает максимальную оптимизацию сцен.
  6. Широкий уровень распространенности. Несмотря на то, что SSAO появилась в начале 2000-х годов, она все равно активно используется создателями игрового программного обеспечения.

Недостатки у изучаемого режима тоже есть. К ним можно отнести:

  1. Более низкое качество обработки. Это связано с тем, что изучаемый алгоритм был создан для снижения нагрузки на видеокарты компьютеров. Картинка на устройстве будет выглядеть менее реалистичной, пользователь увидит неестественные переходы и разнообразные артефакты.
  2. Несмотря на название «глобального освещения», изучаемый алгоритм более локален. Связано это с тем, что свет и тень зависят от имеющегося угла обзора. Заметить это можно особо хорошо в играх с открытыми мирами.
  3. Проблемы со сглаживанием изображений при активации технологии. Иногда картинка в игре может быть испорчена.

Изучаемая технология не является единственной используемой в современных играх. Есть и другие.

Что такое 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!