Що таке трасування променів і як воно працює?

Метод трасування променів є способом рендерингу графіки, який імітує фізичну поведінку світла. Це далеко не новий метод створення тривимірної графіки, який використовувався у кіно, анімації, тривимірному моделюванні тощо, коли користувачеві потрібен максимально реалістичний рендер без огляду на системні ресурси та час рендерингу. Експерименти з цією технологією розпочалися ще наприкінці 60-х років минулого століття, а одним із піонерів є Айвен Сазерленд – творець програми Sketchpad для імітації відображення світла на поверхнях. Однак через складність і дорожнечу рейтрейсингу ігровим рушіям всі ці роки доводилося покладатися на растеризацію, пряме освітлення і бейкінг.


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


Промені від джерела світла, що взаємодіють з поверхнею об'єкта, можуть також відбиватися, поглинатися і переломлюватися, наслідуючи те, як працює світло в реальному світі. Крім того, рейтрейсинг вміє створювати реалістичні тіні, виходячи з фізичних властивостей об'єкта та розташування джерел світла. Ці властивості можна використовувати для створення більш складних ефектів на кшталт дощу в сонячну погоду, пронизаного неоновим світлом туману в Cyberpunk 2077 або відображення Людини-Павука в машинах, що пролітають поруч. На виході виходить живіша і більш правдоподібна картинка з реалістичним освітленням, тінями і відображеннями навіть у тих іграх, яким і не належить виглядати красиво. Тільки погляньте на ролики вище з Minecraft і Quake 2. З погляду графіки обидві гри представляють стародавнє, як печерні малюнки, видовище, яке з додаванням нового освітлення заграло новими кольорами.

Різниця у трасуванні між попередніми та нинішніми поколіннями відеокарт

Фото з презентації відеокарт NVIDIA Ampere.

Відразу зазначимо, що трасування променів ― це досить складний та ресурсомісткий процес, який створює серйозне навантаження на відеокарту. Виробники відеокарт прагнуть вирішити це різними способами ― Radeon, як завжди, намагається вигадати хитре програмне рішення, яке буде по кишені більшості простих гравців. У NVIDIA пішли шляхом максимальної якості і вирішили використовувати окремі обчислювальні ядра для рейтрейсингу (прим: у відеокартах серії Turing, Ampere і Ada Lovelace).

Перші реалізації технології вийшли відверто спірними. Відеокарти в 2019 стали сильно дорожчати, тому новинка пройшла повз рядових геймерів, а самі розробники ігор не особливо розуміли, що тут взагалі відбувається і частенько додавали пункт «RT On» суто для галочки, як це було з тривимірним кіно після успіху першого «Аватара ». У результаті умовні Cyberpunk, Battlefield V і Metro Exodus після додавання рейтрейсингу помітно покращилися. А в Call Of Duty: Modern Warfare та Shadow Of The Tomb Raider відеокарти ледь не диміли від підвищеного навантаження, а графіка практично не змінювалася.

Технічні нюанси реалізації імітації світлових променів у відеокартах GeForce RTX 30XX.

Щоб довести публіці, що рейтрейсинг ― це серйозно та надовго, восени 2020 року керівництво NVIDIA представило публіці наступне покоління відеокарт GeForce Ampere із RT-ядрами нового покоління. NVIDIA збільшила загальну кількість ядер для обробки освітлення, підвищила їх ККД та приправила все це новими алгоритмами імітації та оптимізації освітлення. Наприклад, новий метод трасування вторинного рівня (Secondary Ray Tracing) навчився набагато краще працювати з глобальним та локальним освітленням. Водночас він більш точно обробляє динамічні тіні і моделює поверхню матеріалів у внутрішньоігровій сцені.

Впровадження технології SCG (Simultaneous Computer and Graphics) навчило відеокарти RTX 30XX розділяти графічну та обчислювальну роботу між різними типами ядер, виконуючи їх незалежно одна від одної. А завдяки розвитку технології штучного масштабування DLSS 2.0 інженери компанії змогли суттєво знизити навантаження рейтрейсингу на відеокарту, змусивши нейромережі домальовувати пропущені кадри. Загалом вийшло набагато красивіше та ефективніше, ніж пару років тому. Але це був лише розігрів перед фінальною стравою.

Що таке трасування шляхів? (технічні подробиці)

Наочна різниця між трасуванням шляхів, трасуванням променів та стандартною растеризацією. Джерело: NVIDIA.

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

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

Офіційний трейлер з презентацією режиму Ray Tracing: Overdrive Mode у Cyberpunk 2077:


Перше серйозне тестування трасування шляхів в іграх провели спеціалісти з видання Digital Foundry, випробувавши Cyberpunk 2077 у так званому режимі RT: Overdrive. На роликах і сриншотах видно, наскільки сильно змінюються багато сцен у порівнянні зі звичайним освітленням та базовою імітацією світла. Наприклад, у закритому гаражі з вимкненим світлом без ліхтарика взагалі нічого не видно. Персонажі виглядають реалістичнішими і не підсвічуються сірою аурою. А виходячи з темряви на яскраве світло, бережіть очі — сонце сліпить, наче на подвір'ї середина липня.

Відео з детальним порівнянням звичайного рейтрейсингу та трасування шляху від Digital Foundry:


Потрібно відзначити, що різниця у графіці настільки помітна через те, що в оригінальному білді Cyberpunk 2077 використовувалася гібридна система освітлення з елементами звичайної растеризації та рейтрейсингу. Як говорять розробки з CDPR, під час роботи з рушієм у них було жорстке обмеження – не більше 10 джерел світла з тінями на одну сцену. За допомогою трасування шляху вони змогли зробити так, щоб будь-яке джерело світла створювало тіні, а всі поверхні відбивали або поглинали світло. При цьому вони враховують не тільки статичні джерела світла, а й рухомі на зразок автомобільних фар або ліхтарика, що трясеться в руці.

Скільки ресурсів з'їдає трасування шляхів та яке залізо потрібно?

Без DLSS повне трасування освітлення у роздільній здатності 4K ставить на коліна навіть флагманську відеокарту GeForce RTX 4090.

Судячи з тестів режиму RT: Overdrive, що симулює трасування шляхів у Cyberpunk 2077, технологія буквально валить з ніг будь-яку сучасну відеокарту. Навіть GeForce RTX 4090 з її 24 ГБ відеопам'яті лежить у нокауті, не розуміючи, який день і як далі жити. У середньому 18 – 20 FPS це взагалі як? У зв'язку з високим навантаженням хлопці з CDPR відразу попередили, що RT: Overdrive ходить під руку з технологією штучної генерації кадрів DLSS 3.0.

У CDPR зазначили, що DLSS відіграє критично важливу роль при створенні реалістичного зображення. За допомогою нейромереж DLSS домальовує кадри, на рендеринг яких не вистачило ресурсів відеоядра, переносячи навантаження на виділені для цього тензорні ядра. Також генерація кадрів DLSS 3 дає змогу підвищити якість вихідного зображення перед масштабуванням. Під час тесту Cyberpunk 2077 при вмиканні DLSS 3 в режимі «Продуктивність» середня частота кадрів зростала з неприємних 35 – 40 FPS до більш ніж зручних 90 FPS.

Коли трасування шляхів піде в маси?

Порівняння двох кадрів із різними режимами трасування.

Насамкінець зазначимо, що представлену в Cyberpunk 2077 технологію найправильніше розглядати як демку. Гарну та перспективну, але при цьому трохи глючну та дуже вимогливу до ресурсів. NVIDIA активно співпрацює з найбільшими ААА-студіями, щоб якнайшвидше довести її до розуму. Наприклад, за допомогою фічі NVIDIA RTX Remix (https://www.nvidia.com/ru-ru/geforce/rtx-remix/) з відкритим вихідним кодом умільці вже прикрутили трасування шляху до великого і могутнього, але неабияк застарілого Half- Life 2. Як відзначили автори, процес створення мода виявився досить простим, оскільки RTX Remix самостійно розставила джерела світла та автоматизувала купу інших процесів. З релізом RTX Remix незабаром можна очікувати подібних модів для безлічі ігор.