Як працює RTX Real-Time Ray Tracing з Nvidia

Як працює RTX Real-Time Ray Tracing з Nvidia

Оскільки це було винайдено десятиліттями назад, трасування променів було святим Граалем для реального перетворення комп'ютерної графіки. Відстежуючи індивідуальні світлові промені, коли вони відскакують від декількох поверхонь, він може вірно відтворювати відбиття, розсіювання під поверхнею (коли світло проникає через трохи поверхні, як шкіра людини, але розсипається назад, як це відбувається), прозорість та інші нюанси, які допомагають зробити сцену привабливою. Це зазвичай використовується в художніх фільмах та рекламі, але велика кількість часу обробки, необхідна, не давала змоги віддавати їх від програм в режимі реального часу, таких як ігри.

Завдяки своїй новій сімействі GPU Turing, компанія Nvidia прагне змінити все це шляхом розгортання більш ефективної підтримки в реальному часі RTX, її високопродуктивної бібліотеки трасування променів, яка може призвести до детальних сцен з достойними частотами кадрів. Ми поглибимо поглянути на те, що робить трасування промінням, що робить Nvidia RTX спеціальним, і як архітектура Тьюрінга ще більше прискорює її.

Як Ray Casting перетворюється на трасування проміння

Теоретично трасування променів передбачає відліки променів від кожного джерела світла на сцені, що генерує (як правило, випадково) світлові промені від нього, і слідує за ними, коли вони вражають і відбиваються від поверхонь. На кожній поверхні властивості світла об'єднуються з властивостями матеріалу, це вражає, і, звичайно, кут, на якому він перетинається. Світло, яке, можливо, підібрало інший колір від відбиття об'єкта, потім простежується далі, використовуючи декілька променів, що імітують відбите світло, - таким чином, термін простежує промінь. Процес відстеження триває до тих пір, поки промені не покинуть місце.

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

Генеральний директор Nvidia Джен Хсун Хуан пояснює, як легке випікання було використано як більш ефективну альтернативу деяким можливостям, доступним для проміння трасування променів.
Генеральний директор Nvidia Джен Хсун Хуан пояснює, як легке випікання було використано як більш ефективну альтернативу деяким можливостям, доступним для проміння трасування променів.

Ray Casting є масивним інтенсивним процесором

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

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

Nvidia RTX використовує свої графічні процесори для прискорення трасування траєкторії

Як працює RTX Real-Time Ray Tracing з Nvidia

RTX також спирається на приємний новий модуль для вилучення. Denoising дуже важливий для трасування променів, тому що ви можете виставити обмежену кількість променів з кожного пікселя у віртуальній камері. Тому, якщо ви не залишатимете свій промінь променів досить довго, щоб заповнити сцену, у вас є багато неприємних вигляд "лисих плям" або "шум". Є кілька чудових дослідницьких проектів, які допомагають оптимізувати, які промені викидаються, але ви все ще зависає багато шуму. Якщо цей шум може бути зменшений окремо, ви можете виробляти якісний висновок набагато швидше, ніж якщо вам потрібно вирішити проблему, відправивши це набагато більше променів. Nvidia використовує цю техніку для швидшого створення кадрів. Цілком імовірно, що ця можливість будується на роботі з NI, яку представив у SIGGRAPH в минулому році, тому що її реалізація в реальному часі в значній мірі спирається на Tesor "AI" Cores в своїх графічних процесорах Тьюрінга.

Користувальницькі сердечники RT полегшують відстеження проміння в реальному часі

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

Щоб допомогти вирішити цю проблему, Nvidia розробила спеціально розроблену RT Cores як частину своєї архітектури Тьюринга. Існує небагато інформації про них, але, зокрема, вони дозволяють набагато швидше обчислювати перетин променю з об'єктами, що зберігаються в Ієрархії Обмежених Обсягів (BVH), популярної структури даних для представлення об'єктів в промінках променів .

RTX приходить на споживчі GPU з новими картами Тьюрінга 20хх

Як працює RTX Real-Time Ray Tracing з Nvidia

Ви можете побачити, що Nvidia очікує від розробників у наступному демо-кліпі, створеному командою Battlefield V. Це показує відбиття від поза екрана об'єктів, включаючи полум'я та вибухи, що неможливо було б використовувати лише рендеринг на основі того, що знаходиться на екрані. Віддзеркалення також тісно моделюють фізичні властивості поверхонь, ще одну велику перевагу відстеження променів:

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