+38 (093)  990-30-70

Новости

Королевский бал у Вас дома

Промені слави ПК-боярства: перевіряємо на міцність RTX 2080 Ti трасуванням на повну котушку

  1. Графонорожденний
  2. Що взагалі за трасування така?
  3. DXR (DX12 RayTracing)
  4. Чому не можна інакше
  5. Темна сторона сили
  6. Ручне керування
  7. Як цього добилися?
  8. Прогрес (не) виміряємо
  9. Технічні характеристики RTX 2080 Ti
  10. Результати тестування в 4k
  11. Годинки-то цокає

Вихід NVIDIA RTX - подія настільки ж епохальне, як реліз DirectX 10 або поява перших 3D-прискорювачів для комп'ютерів. Було так, стало інакше, назад шляху немає. Трасування променів в реальному часі довгий час була мрією ігростроя - і тепер вона збулася. Залишилося зрозуміти, якою ціною і чи варто було воно того?

Графонорожденний

Обговорюючи красу спецефектів в іграх, говорити про зображення у відриві від движка неможливо. Саме він визначає межі дозволеного в арт-дизайні і технічної реалізації. Приборкує фантазію програмістів, сценаристів, художників. Не дивно, що для демонстрації трасування NVIDIA заручилася підтримкою EA DICE, яка знає толк в створенні гарних цифрових всесвітів. Завдяки Frostbite, одному з найбільш технологічних рушіїв сучасності, Battlefield 1, Star Wars Battlefront II, а тепер і Battlefield V раз по раз піднімали планку якості графіки. Жвавості світу домагалися за допомогою величезного числа динамічних об'єктів: пилу, листя, снігу, крапель дощу.

Спосіб отримання переконливою картинки вибрали єдино вірний. Підгледіли, як все влаштовано у природи.

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

Що взагалі за трасування така?

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

DXR (DX12 RayTracing)

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

Навіть від мінімальних налаштувань трасування захоплює дух: і без того гарна Battlefield V обростає десятками деталей, відтінків і нюансів, які не передати ні словами, ні скриншотами. Ви просто включаєте RTX і забуваєте про ворогів, сюжет і війну. У мармуровій підлозі відображаються світильники, в прицілі гвинтівки - особа персонажа, у вітрині - вся вулиця і догоряє десь далеко машина.

спойлер

Чому не можна інакше

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

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

Рішення «в лоб» сильно впливають або на підсумкове якість картинки, або на лічильник fps.

До недавнього часу найбільш просунутим методом вважався screen space reflections - замість чесного рендеру відображення використовувалися елементи поточного кадру. Алгоритм теж застосовував трасування, але визначав не колір точок фінальної картинки, а лише можливість появи об'єкта в дзеркальній поверхні. Дані для перевернутого зображення брали з того ж кадру. І якщо потрібної моделі на екрані не було або вона відображалася частково, то і відображати було нічого. Такий спосіб дозволяв порівняно дешево домагатися вражаючих результатів, але також вносив ряд обмежень. Наприклад, при активному переміщенні камери предмети раз у раз зникали або виникали під немислимими кутами, руйнуючи всю магію.

Screen Space Reflections не завжди можуть адекватно обробити навколишню дійсність

І це лише мала частина проблем. Про самовідображення, достовірне переломлення і загасання світла, грамотну обробку глибини сцени в дзеркальних поверхнях до появи DXR ніхто навіть не заїкався.

Темна сторона сили

Перші демонстрації трасування променів в реальному часі на залозі NVIDIA викликали змішані почуття. Десь результат був чертовски красивий (демосценка з персонажами «Зоряних воєн»), десь - ледь помітний (привіт, Лара Крофт). Основні претензії пред'являли до продуктивності: незважаючи на заяви про «ранній версії» і «триваючих роботах по оптимізації», геймерів обурила ціна естетики. Відеокарта, здатна з легкістю перетравлювати гру в 4K, ледь видавала прийнятний фреймрейт в Full HD.

З запуском DXR в Battlefield V розробники запропонували власникам відеокарт 20-й серії випробувати нову технологію на мінімальній за інтенсивністю налаштування. RTX 2080 Ti ледь подужала low-пресет трасування при роздільною здатністю 2560 × 1440. Про прискорювачі з меншим числом RT-ядер і говорити нічого 2080 ледве-ледве потягнула medium на 1920 × 1080, а 2070 - low. Природно, після такого на розробників обрушився черговий шквал критики.

Зараз же співробітництво програмістів з DICE і інженерів NVIDIA нарешті принесло довгоочікувані плоди. Нещодавно вийшли величезний патч для Battlefield V і свіжий драйвер для RTX-серії. Прогрес вражає.

RTX 2080 Ti видає стабільні 60 кадрів в секунду на Ultra-налаштуваннях з роздільною здатністю 2560 × 1440.

А після танців з бубном блокбастер нормально працює і в 4K. Звичайно, лічильник кадрів іноді просідає до 45, але це вже не ті 30 fps в Full HD на перших демонстраціях.

Ручне керування

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

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

Ніякої screen space-алгоритм не може відобразити в склі то, чого немає на екрані. В результаті зліва - лише розтягнутий cubemap низького дозволу. Справа ж правильному відбивається вся вулиця, хоч вона і за спиною у героя. Дрібниця, а приємно - в дзеркалі вантажівки можна помітити відображення персонажа. При належній вправності вдається розгледіти навіть обличчя головного героя. У відображенні лінзи оптичного прицілу.

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

Якщо говорити конкретно про останній патч Battlefield V, оптимізація торкнулася час прорахунку кожного променя. Відповідно, в першу чергу підвищилася швидкодія на високій роздільній здатності і максимальних налаштуваннях: 4K ultra-режим працює на 120% спритніше, а FullHD - приблизно на 50%. Поліпшилася і продуктивність при мінімальній участі трасування в побудові кадру. Правда, трохи - на low-пресете не так багато завдань, з яких можна зрізати крапельку часу при формуванні кадру. В даному випадку оптимізація торкнулася перш за все дальності і точності, а не числа віддзеркалень.

Як цього добилися?

Трасування зроблена не просто по уму, а з хитрістю. По-перше, якість відображення приблизно в 4-8 разів нижче початкового. Не поспішайте з критикою, це нормально. Оскільки треба проектувати лише шматочок світу на невеликий фрагмент картинки, різниця не кидається в очі. При тлумачному геймплее підступу ніхто не помітить, а без трасування променів на місці шикарного отзеркаліванія красувалося б легендарне нічого. Ну, або простенький screen space в тому ж половинному дозволі.

По-друге, налаштування (low - medium - high - ultra) регулюють не тільки банальні параметри начебто дозволу відображень або числа проходів трасувальника, але і вибирають, де використовувати класичні технології, а де - нові.

Алгоритм до геніального простий: глянцеві і гладкі поверхні отримують трасування першими, шорсткі і матові - на все більш високих налаштуваннях.

По-третє, навантаження на відеокарту регулює сегментування зображення. Драйвер ділить екран на 64 зони і визначає, де потрібно участь RT-ядер в постобробці кадру. Від цього і залежить зміна щільності променів, дальність відтворення відображень, точність розрахунків. За можливість вважати «приблизно» спасибі тензорним ядер - звичайні шейдерні процесори на такий трюк не здатні. Перемикання між різними рівнями опрацювання сцени організовано так спритно, що помітити цей момент майже неможливо.

В даному кадрі майже вся площа картинки покрита трассіроваться відображеннями

Нарешті, вираз «заощадив - значить заробив» в разі 3D-графіки розкривається ідеально. Патч Battlefield V привніс не тільки оптимізацію алгоритмів трасування, а й підтягнув загальний рівень взаємодії з класичними технологіями. У місцях, де гра і ракурс камери дозволяють, «дорогі» RT-відображення вміло поєднуються з «дешевими» screen space. Останні і виробляються швидше, і виглядають чіткіше. А якщо в фінальному кадрі не видно різниці, навіщо платити більше?

Прогрес (не) виміряємо

NVIDIA і DICE спільними зусиллями втілили мрію. Якщо перші демонстрації вражали графікою, але не ефективністю, то зараз трасування працює як годинник. Спробуємо застосувати найпростішу математику і прикинути, яке майбутнє чекає RT?

Процесор RTX 2080 Ti складається з шести однакових кластерів по 12 блоків. Разом 72 обчислювальних елемента, на кожному - безліч класичних шейдерних процесорів, по 8 тензорних ядер і по одному виділеному ядру трасування. 4 блоки в кристалі відключені. Рання реалізація DXR в Battlefield V запускалася на рекомендованих настройках - 2560 × 1440, low-пресет (приблизно ¼ поверхонь отримує трасовані відображення на мінімальному дозволі - 25% від реального). В таких умовах 68 RT-ядер забезпечували 50-60 кадрів в секунду.

Схематичне пристрій кристала GPU RTX 2080 Ti

У поточній реалізації (зазор між патчами - близько двох тижнів) рекомендована конфігурація для RTX 2080 Ti - 2560 × 1440, ultra-пресет (від ¾ до всього кадру покрита трассіроваться освітленням, дозвіл від 33 до 66% від реального).

Продуктивність DXR-алгоритмів після оновлення ПЗ подвоїлася, а з моменту перших показів - виросла в 4 з гаком рази.

Розраховувати на подальший стрибок продуктивності варто з обережністю - досягнення стабільних 60 fps в 4K з активною трасуванням цілком реальні і на поточному поколінні заліза, але тільки ціною грамотного розподілу ресурсів движком. Та й оптимальні параметри довести до розуму не завадило б. Десь підріжуть дозвіл або дальність промальовування, придумають спрощений алгоритм затінення матових поверхонь, економлячи кількість променів, що забезпечують правильний колір. Щось замінять на більш прості і дешеві рішення.

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

Технічні характеристики RTX 2080 Ti

АРХІТЕКТУРА
І КРИСТАЛ GPU NVIDIA Turing
TU102-300A-K1-A1 КОНФІГУРАЦІЯ ЯДРА 4352 шейдерних процесора
272 блоку вибірки текстур
88 блоків растеризації РОБОЧІ частоти від 1350 МГц
до 1635 авторозгін ДОДАТКОВІ МОДУЛІ 544 тензорних ядра
68 ядер трасування променів ОБСЯГ І ПРОПУСКНА СПОСОБНОСТЬ ПАМ'ЯТІ 11 ГБ GDDR 6
352 біт за такт на частоті 1750 МГц

Результати тестування в 4k

RISE OF THE TOMB RAIDER 81 fps WITCHER 3 92 fps GTA V 95 fps FARCRY5 65 fps PUBG 90 fps BATTLEFIELD V 85 fps KINGDOM COME DELIVERANCE 60 fps FORZA HORIZON 4 100 fps

Годинки-то цокає

Так чи збирати системник з новою відеокартою або брати попереднє покоління, але дешевше? Місяць тому вибір здавався чертовски складним. Перспективи були туманні, ціни відрізнялися істотно, трасування здавалася чимось на зразок PhysX - приємною дрібничкою, яка зустрінеться в півтора ААА-релізах і швидко забудеться. Сьогодні ж чаша ваг явно схиляється на користь новинок. Навіть молодша RTX 2070 (її тестування ми проведемо зовсім скоро) забезпечує відмінні результати з включеним RT в Battlefield V, не кажучи вже про флагмани. Трасування променів в реальному часі довгий час залишалася мрією ігростроя. Тепер мрія збулася.

Залишилося зрозуміти, якою ціною і чи варто було воно того?
Що взагалі за трасування така?
Навіщо це потрібно?
Як цього добилися?
А якщо в фінальному кадрі не видно різниці, навіщо платити більше?
Спробуємо застосувати найпростішу математику і прикинути, яке майбутнє чекає RT?