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