Що таке Ray Tracing або трасування променів, що дає і як працює

Технологія побудови реалістичних сцен методом трасування променів (ray tracing, RT) відома вже кілька десятків років, але тільки з виходом відеокарт NVIDIA RTX вона повноправно заявила свої права у сфері комп’ютерних ігор. А разом із цим перестала бути обмеженим інструментом, застосовуваним суто в професійній сфері. Давайте подивимося, що це за технологія, і в якому вигляді вона дісталася до нас — геймерів-пересічних громадян.

Віртуальні фотони

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

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

Як це працює

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

Перевага технології трасування променів полягає в тому, що вона завжди намагається реалістично відобразити об’єкти та їхню взаємодію зі світлом. Це і робить рейтрейсинг досить успішною технікою 3D-рендерингу. Навіть у «кубічних» іграх на кшталт Minecraft, картинка під соусом з RT має доволі реалістичний вигляд — наскільки це, звісно, можливо

Та що там Minecraft — подивіться, як трасування змінює картинку на краще навіть в іграх початку 2000-х років. Наприклад, у Portal:

Не без нюансів

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

Тільки уявіть — під час розрахунку лише одного кадру з роздільною здатністю Full HD комп’ютеру необхідно одночасно прорахувати 2 073 600 віртуальних променів, кожен з яких, перш ніж сформує один піксель на екрані, буде взаємодіяти не тільки з об’єктом освітлення, а й з іншими своїми «родичами». Ще варто врахувати, що на практиці обробка променів ведеться не в статичній сцені, а прямо під час гри, де кадри змінюються з частотою 50-60 FPS. У такому разі мільйони променів перетворюються на десятки або навіть сотні мільйонів завдань на обробку.

Трасування променів в ігровому контенті

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

Відображення

У більшості ігор із трасуванням променів використовується комбінація традиційних методів освітлення (растеризації) і рейтрейсингу на певних поверхнях, таких як відображення на водній гладі та інших дзеркальних поверхнях.

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

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

Dying Light 2 — яскравий представник такого ігрового контенту. Користувач у всій красі спостерігає можливості трасування практично в кожній сцені. Якщо це не відображення в калюжах, то обов’язково гра світлом у темних закутках зомбі-міста.

Тіні

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

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

Першими найцікавіше реалізували динаміку і реалізм тіней розробники Shadow of The Tomb Raider.

Утім, нещодавно цей рекорд побила ігрова студія Techland зі своїми інноваціями в Dying Light 2. Тут тіні працюють максимально круто.

Освітленість

Якщо, що називається, «по-чесному» прораховувати освітленість сцени, то необхідно враховувати абсолютно всі світлові промені, присутні в ній. А це дуже і дуже ресурсоємне завдання. Про це ми вже говорили на початку матеріалу і не втомимося повторювати скільки завгодно разів — трасування буквально плавить сучасні ігрові збірки. Але існують хитрощі, які допомагають знизити апаратне навантаження на відеокарти.

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

Поки що не у всіх іграх використовується повне трасування променів для прорахунку глобального освітлення всієї сцени. Це найдорожчий в обчислювальному відношенні спосіб, який потребує найпотужнішої відеокарти з доступних на ринку. При цьому навіть на флагманському прискорювачі результат може розчарувати — стабільних 60 FPS з трасуванням можна домогтися тільки в 1080P або 2K, що не відповідає очікуванням сучасних геймерів.

До останнього моменту показовою і найвимогливішою до променів була Metro Exodus — вона використовує трасування променів для побудови всієї сцени, хоча в деяких моментах її реалізація залишає бажати кращого. Тим паче, що зараз з’явилися досконаліші проєкти, які використовують трасування ще докладніше й ефективніше — наприклад, все та ж Dying Light 2.

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

Апаратна частина

Найбільш щасливою в комерційному використанні технології виявилася компанія NVIDIA. Серія графічних адаптерів GeForce RTX — беззаперечний лідер у роботі з віртуальними фотонами. Адже вона була спеціально розроблена для вирішення завдань з трасування променів. Але на початку свого RTX-шляху NVIDIA ледь не перетворила перспективну фічу на непотрібне сміття. І зараз ми можемо їй пробачити це — компанія стала піонером у плані «цивільного трасування» і пройшла шлях від становлення технології до цілком досконалого інструменту для поліпшення графіки.

NVIDIA GeForce

Ще під час презентації відеокарт RTX 2000 були анонсовані перші ААА-проекти з підтримкою трасування. У той момент розробники не зовсім розуміли, для чого їм дана технологія RTX і як краще розподілити можливості RT-блоку топових на той момент моделей NVIDIA. Щоб притягнути геймерів до екранів і змусити їх купувати прискорювачі з підтримкою трасування, виробник відеокарт попросив ігрові студії випустити ігри з дуже реалістичними відображеннями — їх особливо активно демонстрували в Battlefield V. Ця гра стала своєрідною рекламою RTX і одночасно джерелом проблем із продуктивністю.

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

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

А ще пізніше виробник вивів якість роботи алгоритму масштабування DLSS на новий рівень, і цей момент став переломним — тепер розробники вільні реалізувати більше RTX без побоювання зниження продуктивності.

AMD Radeon

У той час як конкуренти випускають третє покоління «променистих» відеокарт, компанія AMD досі зберігає завидний олімпійський спокій на цьому напрямку. Весь цей час інсайдери і автори витоків неодноразово лякали фанатів зеленого табору, що затишшя незабаром зміниться бурею з боку Radeon. Так було ще до виходу відеоадаптерів на базі архітектури RDNA 2 і триває донині.

Так, сучасні прискорювачі Radeon підтримують деякі ефекти трасування променів, однак їхня реалізація залишає бажати кращого. Справа в тому, що AMD не стала ускладнювати собі життя (і тим самим збільшувати вартість відеокарт) і реалізувала трасування програмним методом. Тому за обробку променів поки відповідають ті ж блоки CU, які обробляють всю іншу графіку. Так, компанія хвалиться, що RDNA 3 отримала оптимізовану архітектуру і тепер блоки растеризації справляються з RT краще, ніж раніше. Але до справжнього RTX їм усе ще далеко.

Проте навіть незважаючи на надмірні апетити технології до апаратних потужностей, поява трасування променів у реальному часі стала черговим стусаном під зад розробникам ігрових рушіїв. Це стало революцією на ринку графіки, а її результатом — такі ігри, як Control, Dying Light 2, Cyberpunk 2077 та інші.

Продуктивність

Звичайно, без «нагинання» в обробці сучасна графіка не обходиться навіть зараз, за часів DLSS і RTX 4090. Той же Cyberpunk 2077 здатний осадити навіть топовий відеоприскорювач NVIDIA, потужності якого достатньо, щоб розплавити роз’єми додаткового живлення. Для цього потрібно відключити DLSS або FSR і викрутити все на максимум. Повірте, FPS буде нижчим від бажаного навіть у 2K-роздільній здатності, не кажучи вже про модну 4K.

У цьому ролику ентузіаст показує можливості RTX 4090 у Cyberpunk 2077 на різних налаштуваннях — у 4K з променями і без штучного збільшення роздільної здатності гра видає жалюгідні 30-35 кадрів за секунду.

Короткі підсумки

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

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

оновлено користувачем Urik26