Screen space ambient occlusion

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Screen space ambient occlusion (SSAO, англ. затінення навколишнього світла у екранному просторі) - техніка наближеного розрахунку ambient occlusion на основі згенерованої у екранних координатах інформації.

Метод був розроблений компанією Crytek при розробці ігрового рушія CryEngine 2 і використаний у комп'ютерній грі Crysis, що вийшла 2007 року. Згодом подібний підхід до розрахунку затінення навколишнього світла став популярний і отримав низку покращень і модифікацій. Станом на сьогоднішній день SSAO (або його варіації) використовується у всіх популярних ігрових рушіях, що працюють з тривимірною графікою, серед яких Unity і Unreal Engine 4.

Опис і особливості

[ред. | ред. код]

Як і у випадку з ambient occlusion, ідея методу полягає у тому, що світло з навколишнього середовища (пряме освітлення, що було розсіяне і відбите геометрією у випадкових напрямках) покриває сцену неоднаково. Це відбувається через те, що деякі області затінюють від непрямого освітлення сусідні ділянки (стики між цеглою, стінами, глибокі впадини і виступи на поверхні, тощо).

Характерна риса SSAO - це розрахунок ambient occlusion у екранних координатах (screen space), що робить метод придатним для роботи з зображенням тривимірної сцени у реальному часі, в певній мірі як пост-обробки. Класичний підхід базується на буфері глибини сцени, який часто генерують попередньо, ще до остаточного розрахунку освітлення. Знаючи глибину кожного фрагмента (пікселя) - можна з певною точністю розрахувати наскільки сусідні фрагменти затінюють його від навколишнього світла.

Алгоритм

[ред. | ред. код]