WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

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

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

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

Алгоритм SSAO исполняется на графическом процессоре видеокарты и осуществляется как пиксельный шейдер, анализирующий буфер глубины (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 года). Проверено 22 мая 2011. Архивировано 29 марта 2012 года.

Ссылки

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

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии