Ambient occlusion (AO) — это техника затенения, которая оценивает, сколько окружающего света блокируется геометрией сцены, и затем затемняет эти области. В отличие от обычных теней от источников света, AO добавляет мягкие тени в стыках, углах и местах контакта объектов, делая сцены более «заземлёнными» и реалистичными.
Как визуально распознать AO
Чтобы увидеть эффект AO, автор предлагает поставить персонажа в комнате у стыка стены и пола или рядом с книжным шкафом и включать/выключать AO в настройках. С AO объекты выглядят приклеенными к миру, без него — как будто слегка парят. В GTA V включение AO делает переулки менее плоскими и более правдоподобными.
Основные техники Ambient Occlusion
SSAO (Screen Space Ambient Occlusion)
Самый распространённый вариант. Работает по данным глубины только видимой на экране геометрии, поэтому достаточно быстрый и подходит для реального времени. Недостатки — артефакты в сложной геометрии и шум. Типичная стоимость — около 5–10% GPU frame time. Хороший выбор для средних ПК и массовых проектов.
HBAO / HBAO+ (Horizon-Based Ambient Occlusion)
Техника NVIDIA, использующая «горизонты» в поле глубины для оценки блокировки света. Даёт более сильные и чистые контактные тени, чем базовый SSAO. HBAO+ — оптимизированный и более качественный вариант. Подходит для одиночных игр и высоких графических настроек при наличии GPU-ресурса.
ASSAO и CACAO
Современные масштабируемые варианты SSAO. ASSAO от Intel рассчитан на широкий диапазон устройств, CACAO от AMD развивает идею с несколькими уровнями качества и предсказуемым масштабированием. Удобны для кроссплатформенных проектов: один кодпуть, контролируемая цена и качество.
VXAO (Voxel Ambient Occlusion)
Вокселизирует геометрию сцены и считает AO в 3D-пространстве, а не только по экрану. Это даёт более стабильный и «глобальный» результат, особенно в нагромождённых сценах, но дороже по производительности. Используется редко, пример — Rise of the Tomb Raider. Подходит для показательных сцен на мощных ПК.
RTAO (Ray Traced Ambient Occlusion)
Использует трассировку лучей для оценки того, какая геометрия блокирует окружающий свет. Даёт наивысшее качество и избавляет от многих артефактов экранного пространства, но очень требователен к GPU. В движках вроде Unreal используется вместе с временным денойзингом. Целесообразен для high-end ПК и консолей нового поколения.
Выбор техники и настройки
Краткие выводы из сравнения:
- SSAO vs HBAO: SSAO быстрее, HBAO даёт более сильные тени.
- HBAO+ vs SSAO: HBAO+ предпочтителен при достаточном запасе по GPU.
- SSAO / HBAO / RTAO: выбор зависит от целевого железа и приоритетов качества.
Использование в движках
Unity описывает AO как затемнение сгибов и пересечений, реализованное как renderer feature в URP.
Unreal Engine рекомендует использовать AO как тонкое дополнение к освещению, а не как агрессивный фильтр.
Производительность и практические советы
SSAO обычно занимает небольшую долю бюджета кадра и масштабируется с разрешением и качеством. HBAO+ дороже, но устойчивее в сложных сценах. VXAO и RTAO дают лучшее качество, но относятся к «премиум»-уровню по стоимости и планируются как высокие пресеты.
Рекомендованные практики:
- Сделать быстрый тест: включать/выключать SSAO, чтобы натренировать глаз на эффект.
- Держать интенсивность и радиус в умеренных пределах, чтобы избежать тёмных ореолов вокруг персонажей.
- Для средних конфигураций — SSAO; для high-end — HBAO+ или RTAO.
- Замерять FPS для разных пресетов и фиксировать выбранные параметры в командной документации.
Выводы
- Ambient occlusion добавляет мягкие контактные тени и существенно повышает читаемость глубины и реализм без полного GI.
- SSAO остаётся базовым стандартом за счёт баланса качества и производительности.
- HBAO+ и современные SSAO-варианты (ASSAO, CACAO) дают более чистый и управляемый результат для проектов с запасом по GPU.
- VXAO и RTAO обеспечивают наивысшее качество AO, но требуют планирования как опций для мощного железа.
- Корректная настройка интенсивности и радиуса AO критична: эффект должен быть заметным, но не превращаться в «грязный» фильтр.
- «On specific PC titles, SSAO eats roughly five to ten percent of your GPU frame time.» — указана довольно конкретная числовая оценка (5–10% времени GPU) как универсальный ориентир. На практике стоимость SSAO сильно зависит от реализации, разрешения, платформы и сцены; в одних проектах она может быть меньше, в других — существенно больше. Корректнее говорить о «небольшой, но заметной доле бюджета кадра» без привязки к конкретным процентам.
- «Intel’s guidance pegs it around five to ten percent of GPU frame time in many engines.» — снова приводится конкретный диапазон 5–10% как обобщённая цифра для «многих движков». Даже если подобная оценка встречалась в отдельных материалах, её нельзя считать универсальной нормой для индустрии: стоимость SSAO варьируется по реализации, настройкам качества и аппаратуре. Формулировка выглядит чрезмерно обобщённой без уточнения условий.
- «Use SSAO for mid-range rigs, HBAO+ or RTOA for high-end setups.» — даётся жёсткая рекомендация по типу AO в зависимости от класса железа. В реальности выбор техники AO зависит не только от «средний/топовый ПК», но и от конкретного движка, разрешения, целевого FPS, стиля игры и приоритетов (например, киберспорт vs. кинематографичность). Такое деление упрощает ситуацию и выглядит как чрезмерное обобщение.
- «If you have the headroom, keep ambient occlusion on because the visual payoff is real.» — утверждение подаётся как универсальный совет. Хотя AO действительно часто повышает субъективное ощущение глубины и реализма, есть жанры и сценарии (соревновательные шутеры, очень тёмные сцены), где игроки предпочитают отключать AO ради читаемости и контраста. Корректнее говорить, что «для большинства игроков» или «во многих играх» визуальный выигрыш заметен, а не как правило без исключений.
- «Ambient occlusion is one of the best “value-for-time” graphics settings.» — оценочное суждение подано как почти объективный факт. Это скорее мнение/рекомендация автора, а не вывод, подтверждённый исследованиями или общепринятой метрикой «value-for-time» среди графических настроек.
- «For gamers and game developers, learning the ins and outs of ambient occlusion is essential for creating believable, grounded, and lifelike visuals.» — слово «essential» (необходимо/незаменимо) звучит чрезмерно категорично. В индустрии есть проекты с упрощённым освещением, стилизованной графикой или мобильные игры, где без AO вполне достигаются убедительные визуалы. Корректнее говорить, что знание AO «очень полезно» или «часто важно», а не абсолютно необходимо.