Як реалізується зовнішня оклюзія екранного простору?


11

Я не розумію пояснення з Вікіпедії.

Для кожного пікселя на екрані піксельний шейдер відбирає значення глибини навколо поточного пікселя і намагається обчислити кількість оклюзії з кожної вибіркової точки.

Як значення глибини оточуючих пікселів можуть вам щось сказати про оклюзію? Заключення , як я розумію, трапляється, коли об’єкт A стоїть перед іншим об'єктом B, тому ви не можете побачити об'єкт B. Але навіщо ви тепер дивитесь на глибинні пікселі навколишніх пікселів? Я маю на увазі, що ви можете бачити ці пікселі, тому немає оклюзії. Можливо, я неправильно зрозумів оклюзію.

І те, що я також не зрозумів - це термін ядро ​​в деяких інших навчальних посібниках. Що таке ядро ​​і навіщо використовувати його для ssao?

Чи міг би хтось детально пояснити алгоритм стосовно моїх запитань?


подумайте про це так: глибока складка буде мати тіні в ній.
Алан Вулф

1
Тут важливо зрозуміти, що ми намагаємось обчислити оклюзію навколишнього світла, а не оклюзію з точки зору.
трихоплакс

Відповіді:


5

Мотивація позаду оклюзії навколишнього середовища (АО) взагалі полягає у наближенні до того, як часто щілини та кути часто тіняться, оскільки менше непрямого світла відбивається в них. Приклад із фото мого кабінету - відзначте потемніння по краях, де зустрічаються стіни та стеля. Кімната освітлена лише світлом, що проникає через вікно і підстрибує навколо.

фото, що демонструє AO-подібний ефект у куті кімнати

Для точного моделювання цього явища офлайн-рендері використовують такі методи, як відстеження шляху та картографування фотонів. У цілях реального часу ми або попередньо розраховуємо їх у режимі офлайн, або якось наближаємо їх.

Окклюзія навколишнього середовища на екрані (SSAO) заснована на спостереженні, що ви можете виявити кути та щілини, переглянувши буфер глибини (і, можливо, також звичайні вектори) візуалізованого зображення, і таким чином ви можете обчислити приблизний AO як пост- пропуск. Буфер глибини - це грубе зображення геометрії в сцені, тому, відбираючи значення буфера глибини в околицях цільового пікселя, ви можете отримати уявлення про форму навколишньої геометрії та здогадатися, наскільки затемнено АО має бути.

схема того, як буфер глибини представляє геометрію, від Bavoil та Sainz (2008)

Ця діаграма від Bavoil та Sainz (2008) показує, як значення буфера глибини, інтерпретовані як різновиди висоти, являють собою дискретизовану версію деякої геометрії. Обчислюючи SSAO для центрального пікселя, ви б подивилися на значення глибини навколишніх пікселів і вкладали їх у якусь формулу, розроблену для отримання більш темного значення, коли геометрія є більш увігнутою (як на діаграмі) та світлішої значення, коли геометрія плоска або опукла.

Формула, в яку входять значення глибини, називається «ядром» за аналогією з фільтруючими ядрами, які використовуються для розмиття, виявлення ребер і подібного. Однак SSAO складніше, ніж просто лінійна згортка значень глибини. Чорт у деталях. Протягом останнього десятиліття розповсюдження зразків та формула їх обробки для отримання значення оклюзії були предметом багатьох досліджень, намагаючись покращити реалізм та зменшити артефакти, зберігаючи хороші показники.


5

Як згадують у коментарях Алан та трихоплакс, ефект, який імітує оклюзія навколишнього середовища, полягає не в оклюзії поверхні з камери, а в оклюзії поверхні з її оточення.

Подумайте про це так: скажіть, у вас рівномірне освітлення, яке виходить з усіх боків, так що загальне надходить світло в будь-якій точці дорівнює значенню 1. Якщо ви розмістите плоску площину в цьому середовищі і подивіться на одну її сторону, ця сторона отримає 50% від цієї освітленості, або 0,5, оскільки інша половина перекрита самою площиною. Іншими словами, будь-яка точка на поверхні площини може "бачити" світло, що виходить з половини навколишнього середовища, тож воно наполовину яскравіше освітлене. Якщо скласти цю площину до точки зору (долину), то зменшуючи вхідне освітлення на ту сторону площини далі, до деякого значення нижче 0,5, оскільки, знову ж таки, кожна точка на площині трохи «бачить» менше світла, що надходить з оточення.

Окклюзія навколишнього середовища на екрані працює більш-менш, шукаючи ці «складки» - області, де глибина різко змінюється, як визначено порівнянням глибин сусідніх пікселів, і затемнення їх для імітації зменшеної освітленості з оточення точок.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.