Трасування променів як метод рендерингу залишалася довгий час інструментом лише кіновиробництва, але з появою нових високопродуктивних графічних чіпів тепер і ігрова індустрія зазнає значного стрибка в плані реалізму завдяки реалізації цієї технології в сучасних іграх.
Що таке Трасування променів чи Ray tracing?
Трасування променів або рейтрейсинг — це метод рендерингу у відеоіграх, що дозволяє максимально точно імітувати віддзеркалення світла від об'єктів, що створює більш реалістичні тіні, відображення та світлові ефекти.
Вперше про дослідження трасування променів та штучного інтелекту та їх застосування у візуалізації графіки заговорили у 80-х роках минулого століття. Проте проблема полягала у нестачі обчислювальної потужності процесорів тих часів. Потрібно було кілька десятиліть для появи таких відеочіпів, як NVIDIA Turing, які ліквідували цю прогалину і дозволили втілити ідеї минулого в життя.
Принципи роботи
Насправді все, що знаходиться в полі нашого зору, по суті є результатом попадання світла на об'єкти, які ми спостерігаємо. Різний ступінь поглинання, відображення та заломлення світла цими об'єктами формує картинку для людського ока.
Трасування променів є фактично зворотний процес, про що свідчить сама назва: це метод створення зображення за допомогою комп'ютера шляхом відстеження шляху світла від уявного ока або камери до об'єктів на цьому зображенні.
Алгоритм трасування променів враховує як тип матеріалу, і джерело світла.Наприклад, два баскетбольні м'ячі однакового відтінку не будуть виглядати однаково, якщо один виконаний зі шкіри, а інший з гуми, тому що світло взаємодіятиме з ними по-різному. Об'єкти, які потрапляють на шляху будь-яких світлових променів, відкидатимуть тіні. А прозора чи напівпрозора речовина, така як скло чи вода, буде заломлювати світло.
Для розуміння методу трасування променів представимо сітку на схемі як монітор комп'ютера. Щоб візуалізувати сцену із сучасної відеоігри, комп'ютер відображає тривимірний віртуальний світ гри на двовимірній площині моніторі. При цьому комп'ютер повинен визначити колір кожного пікселя на екрані.
Процес починається з проектування одного або кількох променів з боку спостерігача та перевірки на перетин променями трикутників – складових частин віртуальних об'єктів у комп'ютерній графіці. Якщо промінь дійсно потрапляє у трикутник, алгоритм використовує такі дані, як колір трикутника та його відстань від спостерігача, щоб обчислити фінальний результат – колір пікселя.
Крім того, промені можуть відбиватися від трикутника або проходити через нього, створюючи все більше і більше променів, які потрібно врахувати. Чим більше таких променів, тим вища якість зображення, але водночас потрібно більше обчислювальних ресурсів.
Як включити трасування променів у грі?
Однією з перших ігор, що підтримують трасування променів, стала комп'ютерна інді-гра Minecraft.
На її прикладі розглянемо, як увімкнути або вимкнути рейтрейсинг у налаштуваннях гри.
- Запустіть гру через Microsoft Store, натиснувши кнопку Play;
- Натисніть на Marketplace в головному меню Minecraft; Клацніть по лупі в рядку пошуку і введіть «RTX»;
- Виберіть будь-який з офіційних пакетів RTX від Nvidia та встановіть його;
- Поверніться до головного меню та натисніть «Грати»;
- Натисніть «Створити» та виберіть один із шаблонів RTX World;
- Після завантаження натисніть ESC і перейдіть до «Параметри» та «Відео»;
- Перейдіть сторінку вниз і переконайтеся, що повзунок навпроти пункту Ray Tracing знаходиться в активному стані.
Залежно від моделі відеокарти, відстань рендерингу трасування променів за замовчуванням може бути меншою за 24. Змініть цей параметр на свій розсуд, щоб змінити відстань трасування променів і знайти баланс між якістю графіки та частотою кадрів.
Які покращення привносить рейтрейсинг?
Відображення
Методи рендерингу, що застосовувалися раніше, як, наприклад, Screen Space Reflections (SSR), мали деякі вади — це насамперед неможливість відображати предмети, які не перебувають у певний момент у кадрі. У рейтрейсингу враховується весь тривимірний світ, тим самим забезпечуються максимально точні відображення.
Через відсутність здатності відображати деяких поверхонь ефект часто не настільки помітний, але при цьому ресурсозатратний. Для здійснення завдань рейтрейсингу по відбиттям необхідний як мінімум один промінь на піксель, що відбиває.
Тіні
Поруч із промальовуванням відбитків є низку прийомів моделювання тіней методами рейтрейсинга. Щоб зрозуміти, як формується зображення, достатньо уявити вихідний промінь у бік джерела світла. Якщо вихідний промінь потрапляє на поверхню предмета, перш ніж дістанеться джерела світла, такий піксель повинен набути темнішого відтінку. При обчисленнях враховуються як відстань до джерела світла, і яскравість, і колірна температура.
Рейтрейсинг здатний навіть реалістично відкидати тіні крізь прозорі поверхні, такі як різного роду тканини. В результаті таких обчислень виходять м'якіші та точніші тіні зі складною неструктурованою півтінню.
Оклюзія навколишнього середовища
Модель затінення дозволяє повторювати сіруваті тіні, що спостерігаються в кутах, щілинах та невеликих місцях усередині та навколо предметів. Алгоритм працює шляхом спостереження за низкою коротких променів у межах однієї області та перевірки їх на факт перетину з найближчими об'єктами — чим більше таких перетинів, тим темнішою буде ця область.
Каустика
Трасування променів відкриває можливість візуалізувати результат відбиття та заломлення світла, відбитого від вигнутих поверхонь. Каустики обчислюються за аналогією зі звичайними відображеннями. Метод зводиться до того, що генеруються промені, виділяються місця їхньої взаємодії з поверхнею та малюються відображення та заломлення.
Незважаючи на те, що 2D-каустика не вимагає суттєвих обчислювальних потужностей, 3D-каустика може значно навантажити відеокарту.
Глобальне освітлення
Малювання освітлення – найважливіша і при цьому найбільш ресурсомістка частина методу трасування променів. У ході роботи алгоритм відкидає промені попіксельно на всю сцену і стежить за всіма трансформаціями, щоб врахувати найменші зміни освітлення.
Рейтрейсинг на відеокартах NVIDIA та AMD
NVIDIA. Для підтримки методу рендерингу відеокарти NVIDIA серії RTX 20 обладнано спеціальним апаратним рішенням, створеним для трасування променів. Архітектура Turing від NVIDIA на графічних процесорах серії 20 використовує RT ядра поряд з ядрами CUDA і Tensor від NVIDIA.Ядра RT призначені виключно для обробки трасування променів у реальному часі.
Виділені ядра RT в графічних процесорах серії RTX 20 на перший погляд більше підходять для забезпечення рейтрейсингу, проте продуктивність такого рішення виявилася недостатньою. Навіть карта 2080Ti останнього покоління не справлявся з підтримкою ігор з трасуванням променів під час запуску.
Нові графічні процесори RTX 3080 та 3090 мають удосконалені ядра RT, завдяки чому досягається суттєвий приріст продуктивності. Ці карти не тільки швидше, ніж їхні аналоги останнього покоління – нові ядра RT також перевершують своїх попередників.
AMD. Протягом останніх кількох років AMD у своїх продуктах намагалася забезпечити трасування променів з апаратним прискоренням, що за підсумком вилилося у випуск відеокарт серій RX 6800, 6800 XT та 6900 XT. Ці нові графічні процесори підтримують трасування променів DirectX 12 і забезпечують відмінну продуктивність, хоча AMD поки що все ще поступається NVIDIA в області трасування променів.
Крім того, архітектура Big Navi, на якій працюють карти AMD RX 6000, значною мірою стала першим рішенням із підтримкою трасування променів. Це та сама архітектура, яка забезпечує візуальні ефекти в PlayStation 5 і Xbox Series X, забезпечуючи загалом нижчий рівень продуктивності, ніж флагманські карти NVIDIA.
Однак оскільки трасування променів все ще залишається функцією консолей наступного покоління, значне покращення підтримки та оптимізації очікується вже в найближчому майбутньому з появою AMD FidelityFX Super Resolution (FSR) для ігрових ПК, а також останніх версій Microsoft Xbox.
Переваги та недоліки рейтрейсингу
Трасування променів швидко стає кращим способом рендерингу. Однією з переваг трасування променів є те, що це реалістичніший режим рендерингу. Багато фізично правильних явищ можна легко змоделювати за допомогою алгоритму трасування променів, оскільки алгоритм імітує рух світла в реальному світі.
Багато в чому цьому сприяють значні переваги цього методу:
Підтримка рендерингу гладких об'єктів без допоміжного полігонального наближення;
Можливість паралельного трасування променів, що суттєво прискорює обчислення;
Складність сцени у тривимірному світі менш виражено корелюється зі складністю обчислень.
З іншого боку, як і раніше, величезним недоліком методу трасування променів є його швидкість, яка позначається на продуктивності в іграх. Трасери променів і досі працюють досить повільно. У цій галузі проводиться велика робота з розпаралелювання та різного роду оптимізації, проте обчислювальна потужність обладнання відіграє набагато більшу роль у швидкості рендерингу, ніж можливі програмні рішення цієї проблеми. З міркувань підвищення продуктивності більшість 3D-додатків використовують гібрид двигунів рендерингу з трасуванням променів та сканування рядків.
Майбутнє ігрової графіки – за рейтрейсингом?
Трасування променів у реальному часі у відеоіграх лише зароджується. Відеокарти NVIDIA RTX в даний час є єдиними графічними процесорами споживчого рівня, які пропонують апаратну підтримку цієї технології, тому кількість ігор, що використовують цю функцію, невелика.
Але в міру того, як все більше і більше виробників почне впроваджувати технології рейтрейсингу, реалізм у відеоіграх з часом може вийти на новий рівень. Цілком ймовірно, що згодом AMD наздожене свого конкурента в області рейтрейсингу, що створить міцну основу для розробників ігор і вагому причину для створення ігор, що підтримують функції трасування променів. У свою чергу, у перспективі навіть 5-10 років це обіцяє майбутнім іграм досягти безпрецедентного рівня реалізму.
Отримання максимальної віддачі від апаратного забезпечення вашого ПК має першорядне значення, і це особливо актуально, коли йдеться про функції Nvidia RTX або трасування променів.
Усього за кілька кроків будь-хто, хто має необхідне обладнання, може включити цю революційну технологію у своїй збірці.
У цій статті ми надамо вам всю необхідну інформацію про те, що таке трасування променів. Ми також перерахуємо кроки, необхідні для активації рендерингу з трасуванням променів. Також будуть розглянуті програми RTX на базі штучного інтелекту від Nvidia, такі як їх рішення для рендерингу та RTX Voice.
Власникам графічних процесорів AMD не варто турбуватися, тому що ми також розглянемо основи нової лінійки AMD Radeon RX 6000 із трасуванням променів.
Що таке RTX або трасування променів і як воно використовується
Трасування променів відноситься до процесу рендерингу, в якому колір пікселів розраховується на основі шляхів змодельованого світла; та його взаємодії з віртуальними об'єктами.
Результатом цього процесу є високий рівень фотореалізму, який можна використовувати для широкого спектру додатків, що працюють із візуальними образами.
Програми варіюються від візуальних ефектів фільму та прискорення автономних двигунів 3D-рендерінгу до графічного представлення освітлення у реальному часі у відеоіграх.
Той самий набір візуальних вихідних даних, пов'язаних зі світловими променями, таких як розсіювання, відображення та дисперсія, можна використовувати для акустичних ефектів; створення більш захоплюючого звукового середовища.
Трасування променів вже давно використовується для додатків, у яких допустимо більш тривалий час рендерингу, але тільки недавно вона почала широко використовуватися для додатків паралельного рендерингу.
Обидва комерційних виробника графічних процесорів – AMD та Nvidia – запровадили підтримку трасування променів у реальному часі; кожен у своєму стилі та зі своїми здібностями.
Nvidia та RTX
Трасування променів вперше було представлено в архітектурі Nvidia Turing у їхніх графічних процесорах GeForce RTX 20-ї серії.
Пізніше ця технологія була використана та покращена в архітектурі Nvidia Ampere нового покоління та їх відеокартах GeForce RTX 30-ї серії.
Їхні нові ядра RT (Ray Tracing) 2-го покоління здатні забезпечити вдвічі більшу пропускну здатність, ніж їхні попередники.
Ядра RT – це спеціальні апаратні компоненти, призначені для прискорення процесу трасування променів за рахунок додавання виділеного конвеєра (ASIC) до потокових мультипроцесорів Nvidia (SM).
Трасування променів AMD
Замість ядер RT від Nvidia, графічні процесори AMD використовують Ray Accelerators для своїх процесорів серії Radeon RX 6000 поточного покоління.
Ці прискорювачі променів вбудовані в обчислювальні блоки (CU) графічного процесора, ефективно підвищуючи їхню ефективність за рахунок зменшення навантаження на трасування променів.
«Гандикап» продуктивності
Трасування променів у реальному часі обходиться дорого. Процес імітації світлових променів, що розсіюються по віртуальній сцені, досить трудомісткий для графічного процесора.
Ці розрахунки наводять до зниження загальної графічної продуктивності; особливо щодо частоти кадрів.
Оскільки цей метод одночасного рендерингу є новим для архітектури графічних процесорів AMD, результативна продуктивність поки не так вражає, як те, що може запропонувати Nvidia.
При тестуванні GeForce RTX 3080 за еквівалентною ціною з Radeon RX 6800 XT – архітектура Nvidia Ampere продемонструвала майже вдвічі більшу частоту кадрів при трасуванні променів порівняно з конкурентом.
Вимоги для використання RTX та трасування променів
Для рендерингу фотографій або відео з покращеним трасуванням променів можна використовувати будь-який графічний процесор. Але щоб увімкнути трасування променів для додатків реального часу, вам знадобляться відповідні апаратні компоненти та програми.
Апаратна підтримка
Коли справа доходить до графічних процесорів, які включають апаратні компоненти (або процеси), призначені для трасування променів, існує лише короткий список сумісних графічних процесорів.
- Серія Nvidia GeForce RTX 20
- Серія Nvidia GeForce RTX 30
- Nvidia Quadro RTX
- AMD Radeon серії RX 6000
Ігрові консолі, особливо PlayStation 5 і Xbox Series X (і S), також підтримують трасування променів для деяких ігор.
Програмна підтримка
Якщо у вас є графічний процесор попереднього покоління, наприклад, Nvidia GeForce GTX або AMD Vega та Polaris, ви все одно можете використовувати трасування променів; хоча й меншою мірою.
Графічні процесори Nvidia GTX (1060 і вище) можуть підтримувати базове трасування променів DirectX (DXR), що стало можливим завдяки драйверу, випущеному Nvidia у середині 2019 року.
Крім того, деякі ігрові движки, такі як Unity, забезпечують підтримку трасування променів для графічних процесорів Nvidia Pascal.
Старі графічні процесори AMD офіційно не підтримують трасування променів, але зараз ведеться робота з використанням драйвера Radeon Vulkan (RADV), що дозволяє відеокартам до RDNA2 використовувати трасування променів в реальному часі.
Яке програмне забезпечення використовує функції RTX Nvidia
Якщо у вас є графічний процесор Nvidia RTX Turing або Ampere, ви можете використовувати ядра RT своєї відеокарти для прискорення завдань рендерингу або взаємодії з моделями та сценами з використанням освітлення з трасуванням променів у режимі реального часу.
Розроблені рішення Nvidia для графічного рендерингу RTX
Nvidia пропонує різноманітні власні інструменти для автоматизації або прискорення задач трасування променів, сумісні з графічними процесорами RTX.
OptiX
Механізм трасування променів OptiX безкоштовний для комерційного використання та забезпечує трасування променів з прискоренням на графічному процесорі за допомогою вбудованих ядер RT графічного процесора RTX. Він також включає шумоподавлювач з прискоренням AI в якості функції постобробки.
Iray
Використовуючи OptiX, мова визначення матеріалів Nvidia (MDL) та вбудовані ядра RT графічного процесора, Iray може створювати неймовірно фотореалістичні зображення.
Iray – як плагін для 3D-програмного забезпечення – також може покращити робочі процеси 3D- та VR-рендерінгу з такими функціями освітлення, як Emissive Geometry, Light Path Expressions та Photometric Lights.
Iray можна включити до існуючих програм для створення 3D-контенту або за допомогою інтеграції SDK.
Omniverse
Для робочих процесів, що включають фотореалістичний рендеринг з трасуванням променів, платформа Omniverse дозволяє вести віртуальну спільну роботу у час у загальному віртуальному просторі.
Хоча в даний час Omniverse знаходиться у формі відкритого бета-тестування, він має широкий список сумісностей, від Autodesk 3DS Max до Adobe Photoshop.
Програми для робочих станцій з підтримкою технології RTX
Як художники, так і творці контенту можуть знайти список з більш ніж 40 додатків та плагінів для 3D-рендерингу, що використовують технологію трасування променів Nvidia RTX та творчі інструменти штучного інтелекту.
Декілька прикладів сумісних двигунів: Blender Cycles, Octane, Redshift, DaVinci Resolve, Unreal Engine, Unity, NX RT Studio і Adobe Dimension.
Ігрові програми
Хоча не у всіх іграх використовується технологія трасування променів, існує солідний список популярних ігор, в яких реалізовано цю функцію. До таких ігор відносяться Cyberpunk 2077, Quake II, STALKER 2, Fortnite та Resident Evil Village.
Як увімкнути RTX
Якщо ви відповідаєте вищезгаданим вимогам до обладнання та програма, яку ви хочете використовувати, підтримує трасування променів, ви можете увімкнути процес безпосередньо з програми.
Крім встановлення останньої версії драйвера графічного процесора (Nvidia, AMD) та Microsoft DirectX 12 API, жодних додаткових дій з робочого столу виконувати не потрібно.
Зокрема, для ігор графічне налаштування, яке ви хочете знайти в ігровому меню, називатиметься «Трасування променів», «DXR» або «RTX».
Якщо ви не можете знайти цей параметр, то або сама гра не підтримує трасування променів, або ви не використовуєте DirectX 12 або DX 12 Ultimate. Для користувачів Steam: переконайтеся, що гра використовує правильну версію DirectX під час запуску.
Професійні програми, такі як GPU Render Engines, будуть мати власні налаштування, які вам, можливо, доведеться включити у вашому програмному забезпеченні для 3D-моделювання перед рендерингом.
Ось як це виглядає в Cinema 4D та GPU Renderer Octane:
Що таке RTX Voice і як увімкнути його на відеокарті Nvidia
Тепер, коли ми розглянули трасування променів і те, як воно пов'язане з технологією Nvidia RTX, погляньмо на програму RTX Voice на базі штучного інтелекту.
Що таке RTX Voice і чи має це велике значення?
RTX Voice усуває шум фону при голосовому спілкуванні в режимі реального часу. Це може бути неймовірно корисним для всього, від потокової трансляції до відеоконференцій.
Що робить RTX Voice ще більш цінним, то це той факт, що він фільтрує як ваш фоновий шум, так і шум, що входить від інших учасників розмови.
Іншими словами, ваші друзі або колеги можуть чітко чути ваш голос, а ви можете чути їхній голос без будь-яких надмірних звукових перешкод.
RTX Voice працює з безліччю підтримуваних програм; повний список яких ви можете знайти тут.
Чи можна використовувати RTX Voice на графічних процесорах GTX?
RTX Voice насправді не має нічого спільного з номенклатурою RTX та її архітектурою.
Трасування променів не використовується для цієї програми, і хоча Nvidia спочатку згадала, що ця технологія стала можливою завдяки тензорним ядрам, пізніше вони відмовилися від цього твердження.
Причина такого зречення може бути пов'язана зі створеним хаком, що робить RTX Voice сумісним із графічними процесорами GTX.
Незабаром після цього Nvidia офіційно дозволила RTX Voice бути сумісним із відеокартами Nvidia GTX з драйвером 410.18 (або новіше).
Як увімкнути RTX Voice
В даний час ви можете завантажити RTX Voice як окрему програму або інтегрувати її до програми Nvidia Broadcast.
Зауважте, що трансляція доступна лише для графічних процесорів Nvidia GeForce RTX 2060, Quadro RTX 3000, Titan RTX або вище; і для цього потрібна 64-розрядна версія Windows.
Якщо ви хочете завантажити RTX Voice, процес встановлення досить простий. Завантажте програму, встановіть її та увімкніть видалення фонового шуму.
Щоб дізнатися, як настроїти RTX Voice для конкретних сумісних програм, обов'язково ознайомтеся з офіційними рекомендаціями Nvidia.
Коли використовувати RTX Voice
Хоча RTX Voice неймовірно корисний для програм, які мають справу з голосовим зв'язком у реальному часі, він може стати на заваді попередньо збережених голосових записів.
Коли RTX Voice фільтрує шум, з'являються дефекти і артефакти, які можуть перетинатися з діалогом.
Ці дефекти легко ігнорувати, коли їх чути в режимі реального часу, але можуть відволікати і неприємні при редагуванні аудіо. Ті, що виникають в результаті спотворення, також важко – якщо можливо – усунути.
Для попередньо записаного звуку найкраще використовувати програму, наприклад Adobe Audition або iZotope RX, для очищення та відновлення звуку в процесі постобробки.
Висновки
У міру розвитку технологій комп'ютерні фотореалістичні зображення та відео переходять від попередньо відрендерованих товарів до досвіду у реальному часі.
Трасування променів у реальному часі все ще знаходиться в зародковому стані, оскільки такі методи, як фотонне картування та трасування шляху, все ще впроваджуються.
Настав час інвестувати в те, щоби повною мірою скористатися перевагами трасування променів у реальному часі.
З точки зору творця контенту або просто як засіб розваги в іграх, включення та використання можливостей вашого графічного процесора RTX є обов'язковим.