Окружающая окклюзия экранного пространства

редактировать
Реализация окружающего окклюзионного освещения на компьютере графика

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

Содержание
  • 1 Реализация
  • 2 См. Также
  • 3 Ссылки
  • 4 Внешние ссылки
Реализация
Компонент SSAO типичной игровой сцены

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

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

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

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

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

  • Скорее локальный и во многих случаях зависимый от вида, поскольку он зависит от глубины смежных текселей, которая может быть сгенерирована любой геометрией.
  • Трудно правильно сгладить / размыть шум, не влияя на неоднородности глубины, такие как края объекта (окклюзия не должна «просачиваться» на объекты).
См. также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-07 06:54:49
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте