Окклюзия экранного пространства - Screen space ambient occlusion

Окклюзия экранного пространства (SSAO) это компьютерная графика техника для эффективной аппроксимации окружающая окклюзия эффект в реальном времени. Его разработал Владимир Каялин во время работы в Crytek и впервые был использован в 2007 году в видеоигре Crysis, также разработанный Crytek.

Выполнение

Компонент SSAO типичной игровой сцены

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

Без дополнительных интеллектуальных решений такой метод грубой силы потребовал бы около 200 считываний текстур на пиксель для хорошего визуального качества. Это неприемлемо для рендеринг в реальном времени на текущем графическом оборудовании. Чтобы получить высококачественные результаты с гораздо меньшим количеством считываний, выборка выполняется с использованием случайно повернутого ядро. Ориентация ядра повторяется каждые N пикселей экрана, чтобы в конечном изображении были только высокочастотные шумы. В конце концов, этот высокочастотный шум значительно устраняется NИксN этап постобработки размытия с учетом неоднородностей глубины (с использованием таких методов, как сравнение смежных нормалей и глубин). Такое решение позволяет уменьшить количество выборок глубины на пиксель примерно до 16 или меньше при сохранении высокого качества результата и позволяет использовать SSAO в программных приложениях реального времени, таких как компьютерные игры.

По сравнению с другими окружающая окклюзия решения, SSAO имеет следующие преимущества:

  • Независимо от сложности сцены.
  • Не требуется предварительной обработки данных, времени загрузки и выделения памяти в системной памяти.
  • Работает с динамическими сценами.
  • Работает одинаково согласованно для каждого пикселя на экране.
  • Нет ЦПУ использование - может быть выполнено полностью на GPU.
  • Легко интегрируется в любой современный графический конвейер.

SSAO также имеет следующие недостатки:

  • Скорее локальный и во многих случаях зависящий от вида, так как он зависит от глубины смежных текселей, которые могут быть сгенерированы любой геометрией.
  • Трудно правильно сгладить / размыть шум, не затрагивая неоднородности глубины, такие как края объекта (окклюзия не должна «проступать» за объекты).

Смотрите также

Рекомендации

  1. ^ Тобиас Ритчель; Торстен Грош; Ханс-Петер Зайдель (2009). «Аппроксимация динамического глобального освещения в пространстве изображения». Труды Симпозиума ACM SIGGRAPH по интерактивной 3D-графике и играм. Получено 25 ноября 2015.

внешняя ссылка