Screen Space Ambient Occlusion

Screen Space Ambient Occlusion

Screen Space Ambient Occlusion (сокращённо SSAO; англ. преграждение окружающего света в экранном пространстве) — программная техника (методика) в трёхмерной компьютерной графике, которая является приближенной имитацией глобального освещения и представляет собой изменённый и усовершенствованный вариант методики Ambient occlusion. Алгоритм SSAO работает в режиме реального времени и имитирует рассеянное непрямое освещение и соответствующее затенение в трёхмерном виртуальном пространстве.

SSAO был разработан отделом исследований и разработок (R&D) немецкой компании Crytek при разработке графической компоненты игрового движка CryEngine 2.[1] Crysis, первая игра на CryEngine 2, разработанная Crytek и вышедшая осенью 2007 года, впервые использовала SSAO. Позже данный алгоритм и его модификации были использованы во многих игровых движках, включая Leadwerks Engine, Dagor Engine, Unreal Engine, Unity, X-Ray, Glacier 2 и других.

Содержание

Описание работы

Алгоритм SSAO исполняется на графическом процессоре (англ. GPU) видеокарты и осуществляется как пиксельный шейдер, анализирующий буфер глубины (Z-буфер) сцены, который сохранён в текстуре.

При работе алгоритма Ambient occlusion пиксельный шейдер производит выборку значения глубины для каждого пикселя на экране вокруг текущего пикселя и пытается вычислить количество преград от каждой из выбранных точек. В своей самой простой реализации коэффициент преграды зависит только от различия глубины выбранной точки и текущей точки. Без дополнительных продвинутых решений и алгоритмов такой метод решения «в лоб» потребовал бы приблизительно 200 чтений из текстуры для каждого пикселя для хорошего визуального качества. Это число не является приемлемым для рендеринга в режиме реального времени на современных графических процессорах.

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

Для создания Screen Space Ambient Occlusion необходимо иметь две текстуры со сценой:

  • Normal Map: положение нормали объектов сцены в каждой точке (пикселе), отображаемой на экране.
  • Position Map: координаты объекта в каждой точке (пикселе), отображаемой на экране.

Потом берётся Position Map и Normal Map каждого текселя на экране и обрабатываются соседние тексели. По отношению позиций соседних текселей к обрабатываемому, ему присваивается определённый уровень «затенения».

Для получения высококачественных результатов с гораздо меньшим количеством чтений текстуры, по сравнению с Ambient occlusion, в SSAO осуществление выборки используется вместе с случайно вращаемым ядром. Ориентация ядра повторяется каждые N пикселей экрана для того, чтобы иметь только высокочастотные искажения в финальном изображении. В конце это высокочастотное искажение удаляется NxN количеством прохода постпроцессора, размывающего изображение (англ. Blur). При этом принимается во внимание глубина неоднородностей, используя такие методы, как сравнение смежных нормалей и глубин. Такое решение позволяет сокращать количество выборок глубины на пиксель к приблизительно 16 или меньше, в то же время предоставляя высококачественный результат и позволяя использовать SSAO в приложениях реального времени, таких как компьютерные игры.

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

По сравнению с другими алгоритмами модели Ambient occlusion, у SSAO есть следующие преимущества:

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

Вместе с преимуществами алгоритму SSAO свойственны и недостатки:

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

Примечания

  1. Ambient Occlusion – approaches in screen space (SSAO)  (англ.). CG – Blog (16 января 2010 года). Архивировано из первоисточника 29 марта 2012. Проверено 22 мая 2011.

Ссылки

Англоязычные источники
Русскоязычные источники

Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Screen Space Ambient Occlusion" в других словарях:

  • Screen Space Ambient Occlusion — (SSAO) is a rendering technique for efficiently approximating the well known computer graphics ambient occlusion effect in real time. It was used for the first time in a video game in the 2007 PC game Crysis.Fact|date=June 2008The algorithm is… …   Wikipedia

  • Ambient occlusion — is a shading method used in 3D computer graphics which helps add realism to local reflection models by taking into account attenuation of light due to occlusion. Unlike local methods like Phong shading, ambient occlusion is a global method,… …   Wikipedia

  • Ambient occlusion — Использованы модели (сверху вниз): прямого освещения, Ambient occlusion (AO)и комбинированная модель AO и прямого освещения Ambient occlusion (AO)  модель затенения, используемая в трёхмерной графике и позволяющая добавить реалистичности… …   Википедия

  • Occlusion — may refer to: Occlusion (dentistry), the manner in which the upper and lower teeth come together when the mouth is closed Occlusion effect, an audio phenomenon that occurs when one closes the opening into the ear canal and the loudness of low… …   Wikipedia

  • CryEngine 2 — Игровой движок (Список) Официальный логотип движка …   Википедия

  • Leadwerks Engine — infobox software name = Leadwerks Engine developer = Leadwerks Software operating system = Windows XP,Windows Vista,Linux genre = Game engine latest release version = Version 2.1 latest release date = September 16, 2008 website =… …   Wikipedia

  • Окклюзия — (от лат. occlusio  сокрытие; англ. occlusion)  термин, который указывает на какое либо состояние, которое обычно открыто, а в определённый момент времени полностью закрыто. В медицине этот термин обозначает нарушение… …   Википедия

  • CryEngine 3 — A screenshot from the CryEngine 3 GDC 2009 presentation Dev …   Wikipedia

  • Warscape — Игровой движок (Список) Разработчик …   Википедия

  • Geo Mod 2 — Игровой движок (Список) Разработчик …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»