Окклюзия окружения (англ. Ambient Occlusion) — создание тени на фоновых объектах. AO широко распространена в игровой графике. Весомый плюс в том, что с её помощью можно придать дополнительную реалистичность углублениям 3D-объектов — это удается сделать за счет мягкого рассеивания света.

АО визуально разделяет предметы, добавляет им объем и реалистичность отображения. Ее используют для объектов, на которые не попадают прямые лучи света.

Что дает Ambient Occlusion?

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

  1. Тень. Источник света находится вне поля видимости.
  2. Полутень. Лучи частично попадают на объект.
  3. Освещенное место. Источник света в полной мере воздействует на предмет.
3D модель велосипеда до и после применения ambient occlusion (окклюзии окружения)

3D модель велосипеда до и после применения Ambient Occlusion

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

Виды алгоритмов Ambient Occlusion

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

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

Алгоритм Разработчик Принципы работы
SSAO Crytek Используется буфер глубины, оставшийся после построения геометрии сцены — в нем есть вся информация, необходимая для создания теней. На каждый фрагмент сцены выбирается от 8 до 32 лучей, для которых определяют оттенки пикселей фона.

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

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

Усовершенствованный алгоритм применяет для обработки затемнения половину предыдущего кадра и 50 % нового. Это создает меньшую нагрузку на процессор и устраняет мерцание.

HDAO AMD Об этом алгоритме известно мало, так как полное описание технологии не разглашается. Он собирает 4 текстурных элемента воедино, чтобы обработать их одновременно. Работает только при низком разрешении.
VXAO Nvidia

Эта технология работает с вокселями (аналогами пикселей в 3D) и проводит обработку на уровне 2D. Работа алгоритма происходит так:

  • перевод картинки в 2D;
  • обработка вокселей;
  • восстановление картинки в пространстве экрана.

Длительность операции — 0,5–1,5 мс. Во время обработки вокселей добавляется их очистка и фильтрация, и в итоге картинка становится более реальной.

Нюансы работы с окклюзией окружения

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

Как настроить АО?

  1. При возникновении на изображении артефактов нужно в настройках инструмента АО изменить параметр Max Distance. Он указывает на расстояние, которое преодолевают лучи до объекта. Какие именно настройки выставить, определяют экспериментальным путем.
  2. Более реалистичной отрисовка станет, если используется отдельный параметр АО (плагин Occlusion Pass Generator или VRay Ambient Occlusion). Это уменьшит его зависимость от окружающей геометрии и привяжет к источнику света.

Отдельную надстройку АО при отрисовке применять не стоит, если она уже встроена в программу — достаточно будет таких редакторов, как 3ds Max или Maya.

Меню