stringtranslate.com

Окружающая окклюзия

Карта окружающего затенения (среднее изображение) для этой сцены затемняет только самые внутренние углы.

В 3D-компьютерной графике , моделировании и анимации окружающая окклюзия — это метод затенения и рендеринга , используемый для расчета того, насколько каждая точка сцены подвергается воздействию окружающего освещения . Например, внутренняя часть трубки обычно более закрыта (и, следовательно, темнее), чем открытые внешние поверхности, и становится темнее, чем глубже проникаешь внутрь трубки.

Окружающую окклюзию можно рассматривать как значение доступности, которое рассчитывается для каждой точки поверхности. [1] В сценах с открытым небом это делается путем оценки количества видимого неба для каждой точки, тогда как в помещении учитываются только объекты в пределах определенного радиуса, а стены считаются источником окружающего пространства. свет. В результате получается рассеянный , ненаправленный эффект затенения, который не отбрасывает четких теней, но затемняет закрытые и защищенные области и может повлиять на общий тон визуализированного изображения. Его часто используют в качестве эффекта постобработки .

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

Первый метод, позволивший имитировать фоновую окклюзию в реальном времени, был разработан научно-исследовательским отделом Crytek ( CryEngine 2 ). [2] С выпуском оборудования с возможностью трассировки лучей в реальном времени ( серия GeForce 20 ) от Nvidia в 2018 году, трассировка лучей окружающей среды (RTAO) стала возможной в играх и других приложениях реального времени. [3] Эта функция была добавлена ​​в Unreal Engine версии 4.22. [4]

Выполнение

3D-анимация фоновой окклюзии включена в анимации справа.

В отсутствие аппаратной трассировки лучей , приложения реального времени , такие как компьютерные игры, могут использовать фоновое затенение экранного пространства (SSAO) или фоновое затенение на основе горизонта (HBAO) в качестве более быстрого приближения к истинному окружающему затенению, используя пер- глубина пикселей , а не геометрия сцены, для формирования карты окружающего затенения .

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

Модель затенения Ambient Occlusion обеспечивает лучшее восприятие трехмерной формы отображаемых объектов. Это было показано в статье, в которой авторы сообщают о результатах перцепционных экспериментов, показывающих, что распознавание глубины при рассеянном равномерном освещении неба превосходит то, что предсказывает модель прямого освещения. [5]

Окклюзию в точке на поверхности с нормалью можно вычислить путем интегрирования функции видимости по полусфере относительно проецируемого телесного угла:

где функция видимости при , определяемая как ноль, если она перекрыта в направлении , и единица в противном случае, и является бесконечно малым шагом телесного угла переменной интегрирования . Для аппроксимации этого интеграла на практике используются различные методы: возможно, самый простой способ — использовать метод Монте-Карло , отбрасывая лучи из точки и проверяя их пересечение с другой геометрией сцены (т. е. методом рейкастинг ). Другой подход (более подходящий для аппаратного ускорения) заключается в рендеринге изображения путем растрирования черной геометрии на белом фоне и взятия (косинусно-взвешенного) среднего значения растеризованных фрагментов. Этот подход является примером подхода «сбор» или «наизнанку», тогда как другие алгоритмы (например, окружающая окклюзия на карте глубины) используют методы «рассеяния» или «снаружи внутрь».

В дополнение к значению окружающего затенения часто генерируется вектор «изогнутой нормали» , который указывает на среднее направление перекрытых образцов. Изогнутую нормаль можно использовать для поиска падающего излучения на карте окружающей среды и приближенного освещения на основе изображения . Однако в некоторых ситуациях направление изогнутой нормали искажает доминирующее направление освещения, например:

В этом примере изогнутая нормаль N b имеет направление, которое не позволяет ей освещать сцену, поскольку она указывает на перекрытую поверхность.

В этом примере свет может достигать точки p только с левой или правой стороны, но изогнутая нормаль указывает на среднее значение этих двух источников, которое направлено непосредственно к препятствию.

Варианты

Признание

В 2010 году Хайден Лэндис, Кен Макгоф и Хилмар Кох были награждены премией Научно-технической академии за свою работу над рендерингом фоновой окклюзии. [7]

Смотрите также

Рекомендации

  1. ^ Миллер, Гэвин (1994). «Эффективные алгоритмы локального и глобального затенения доступности». Материалы 21-й ежегодной конференции «Компьютерная графика и интерактивные технологии» . стр. 319–326.
  2. ^ «AMBIENT OCCLUSION: РАСШИРЕННОЕ РУКОВОДСТВО ПО ЕГО АЛГОРИТМАМ И ИСПОЛЬЗОВАНИЮ В VR» . ОРВИлаб . Проверено 26 ноября 2018 г.
  3. ^ Окружающая окклюзия с трассировкой лучей. Нвидиа. Архивировано из оригинала 12 декабря 2021 г.
  4. ^ «Unreal Engine добавляет поддержку трассировки лучей DX12» . ЭкстримТех .
  5. ^ Лангер, М.С.; Х. Х. Бюлтхофф (2000). «Дискриминация глубины от затенения при рассеянном освещении». Восприятие . 29 (6): 649–660. CiteSeerX 10.1.1.69.6103 . дои : 10.1068/p3060. PMID  11040949. S2CID  11700764. 
  6. ^ «Практические стратегии в реальном времени для точной непрямой окклюзии» (PDF) .
  7. ^ Оскар 2010: Научно-технические награды, Путеводитель по альтернативным фильмам , 7 января 2010 г.