В компьютерной 3D-графике, моделировании и анимации, ambient occlusion - это затенение и рендеринг. метод, используемый для расчета степени экспонирования каждой точки сцены до Двустороннее освещение. Например, внутренняя часть трубки обычно более закрыта (и, следовательно, темнее), чем обнаженные внешние поверхности, и становится темнее, чем глубже погружается в трубку.
Ambient occlusion можно рассматривать как значение доступности, которое рассчитывается для каждой точки поверхности. В сценах с открытым небом это делается путем оценки количества видимого неба для каждой точки, тогда как в помещениях учитываются только объекты в пределах определенного радиуса, а стены считаются источником окружающего света. Результатом является диффузный, ненаправленный эффект затенения, который не отбрасывает четких теней, но затемняет замкнутые и защищенные области и может повлиять на общий тон визуализированного изображения. Часто используется как эффект.
В отличие от локальных методов, таких как Затенение Фонга, ambient occlusion является глобальным методом, означающим, что освещение в каждой точке является функцией другой геометрии сцены. Однако это очень грубое приближение к полному глобальному освещению. Внешний вид, достигаемый только за счет окружающей окклюзии, подобен тому, как объект может появиться в пасмурный день.
Первый метод, позволяющий моделировать окружающее окклюзию в реальном времени, был разработан отделом исследований и разработок Crytek (CryEngine 2 ). С выпуском оборудования с возможностью трассировки лучей в реальном времени (GeForce 20 series ) от Nvidia в 2018 году трассировка лучей ambient occlusion (RTAO) стала возможной в играх. и другие приложения реального времени. Эта функция была добавлена в Unreal Engine с версией 4.22.
При отсутствии аппаратной трассировки лучей внешней окклюзии, в реальном времени приложения, такие как компьютерные игры, могут использовать ambient occlusion в экранном пространстве (SSAO) или ambient occlusion на основе горизонта (HBAO) в качестве более быстрого приближения к истинному ambient occlusion, используя глубина пикселя, а не геометрия сцены для формирования окружающего затенения карта.
Окклюзия окружающего пространства связана с затенением доступности, которое определяет внешний вид на основе того, насколько легко можно коснуться поверхности различными элементами (например,, грязь, свет и т. д.). Он был популяризирован в производственной анимации благодаря своей относительной простоте и эффективности.
Модель затенения окружающей окклюзии предлагает лучшее восприятие трехмерной формы отображаемых объектов. Это было показано в статье, в которой авторы сообщают о результатах экспериментов с восприятием, показывающих, что различение глубины при равномерном диффузном освещении неба превосходит то, что предсказывается моделью прямого освещения.
Окклюзия в точке на поверхности с нормалью может быть вычислено путем интегрирования функции видимости по полушарию относительно проецируемого телесный угол:
где - функция видимости в , определенная равной нулю, если окклюзия Дед в направлении и в другом направлении, и - бесконечно малый телесный угол шаг переменной интегрирования . Для аппроксимации этого интеграла на практике используются различные методы: возможно, самый простой способ - использовать метод Монте-Карло, направляя лучи из точки и проверка на пересечение с другой геометрией сцены (например, литье лучей ). Другой подход (более подходящий для аппаратного ускорения) - визуализация вида из путем растеризации черной геометрии на белом фоне. фон и взятие среднего (косинусно-взвешенного) растеризованных фрагментов. Этот подход является примером подхода «собирание» или «изнутри наружу», тогда как другие алгоритмы (такие как ambient occlusion на карте глубины) используют методы «рассеивания» или «снаружи внутрь».
В дополнение к значению внешней окклюзии часто создается вектор "изогнутой нормали" , что указывает на среднее направление незаключенных образцов. Изогнутая нормаль может использоваться для поиска падающего сияния на карте окружающей среды для приблизительного освещения на основе изображения. Однако есть некоторые ситуации, в которых направление изогнутой нормали является неправильным представлением доминирующего направления освещения, например,
В этом примере изогнутая нормаль N b имеет неудачное направление, так как она указывает на перекрывающуюся поверхность.В этом примере свет может достигать точки p только с левой или правой стороны, но изогнутая нормаль указывает на среднее значение этих двух источников, которое, к сожалению, направлено прямо к препятствию.
В 2010 году Хайден Лэндис, Кен Макгоу и Хилмар Кох были награждены наградой научно-технической академии за свою работу по рендерингу окружающей окклюзии.