Мотивация скрытой окклюзии (AO) в целом заключается в том, чтобы приблизить способ, которым расщелины и углы часто затеняются, потому что в них попадает менее непрямой свет. Пример из фотографии моего офиса - обратите внимание на затемнение по краям, где встречаются стены и потолок. Комната освещается только светом, проникающим через окно и подпрыгивающим.
Чтобы точно симулировать это явление, автономные рендеры используют такие методы, как трассировка пути и картирование фотонов. Для целей реального времени мы либо рассчитываем его в автономном режиме, либо приближаемся к нему.
Окклюзия окружающего пространства на экране (SSAO) основана на наблюдении, что вы можете обнаружить углы и щели, посмотрев на буфер глубины (и, возможно, также на векторы нормалей) визуализированного изображения, и, таким образом, вы можете рассчитать приблизительный AO как пост- проходят. Буфер глубины является грубым представлением геометрии в сцене, поэтому, выбирая значения буфера глубины в окрестности целевого пикселя, вы можете получить представление о форме окружающей геометрии и сделать предположение, насколько темнее AO. должно быть.
Эта диаграмма от Bavoil и Sainz (2008) показывает, как значения буфера глубины, интерпретируемые как своего рода поле высоты, представляют дискретизированную версию некоторой геометрии. При расчете SSAO для центрального пикселя вы будете смотреть на значения глубины окружающих пикселей и вставлять их в некоторую формулу, предназначенную для получения более темного значения, когда геометрия является более вогнутой (как на диаграмме), и более светлой значение, когда геометрия плоская или выпуклая.
Формула, в которую входят значения глубины, называется «ядром» по аналогии с ядрами фильтра, используемыми для размытия, обнаружения краев и тому подобного. Однако SSAO сложнее, чем просто линейная свертка значений глубины. Дьявол кроется в деталях. Распределение образцов и формула, обрабатывающая их для получения значения окклюзии, были предметом большого исследования в течение последнего десятилетия, пытаясь улучшить реализм и уменьшить количество артефактов, сохраняя при этом хорошую производительность.