Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Реализация [ править ]

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

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

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

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

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

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

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

См. Также [ править ]

Ссылки [ править ]

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

Внешние ссылки [ править ]