Лучи славы: проверяем на прочность RTX 2080 Ti трассировкой на полную катушку

Выход NVIDIA RTX — событие настолько же эпохальное, как релиз DirectX 10 или появление первых 3D-ускорителей для компьютеров. Было так, стало иначе, назад пути нет. Трассировка лучей в реальном времени долгое время была мечтой игростроя — и теперь она сбылась. Осталось понять, какой ценой и стоило ли оно того?
NVIDIA GEFORCE RTX2080 Ti Founders Edition

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

Обсуждая красоту спецэффектов в играх, говорить о картинке в отрыве от движка невозможно. Именно он определяет границы дозволенного в арт-дизайне и технической реализации. Укрощает фантазию программистов, сценаристов, художников. Неудивительно, что для демонстрации трассировки NVIDIA заручилась поддержкой EA DICE, знающей толк в создании красивых цифровых вселенных. Благодаря Frostbite, одному из самых технологичных движков современности, Battlefield 1, Star Wars Battlefront II, а теперь и Battlefield V раз за разом поднимали планку качества графики. Живости мира добивались с помощью огромного числа динамичных объектов: пыли, листьев, снега, капель дождя.


Способ получения убедительной картинки выбрали единственно верный. Подсмотрели, как всё устроено у природы.

Взяли сто лет известные законы физики, упростили их обсчёт до разумных пределов и встроили математическую модель в графический конвейер. Подобный метод облагораживает сцену незаметными деталями, делает окружение привычным. В классический рендеринг пришли преломление и отражение света, подсветка микрочастиц — казалось, достигнут творческий лимит. Что ж, до появления трассировки так и было.

Что вообще за трассировка такая?

Ray Tracing — один из способов превращения трёхмерной графики в реалистичную картинку. RT использует правила отражения, преломления и рассеивания лучей света, максимально приближенные к физическим законам. Очень требователен к вычислительным ресурсам, зато обеспечивает фотореалистичные кадры:

what-is-ray-tracing

DXR (DX12 RayTracing)

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

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

Почему нельзя иначе

В 3D-графике всё построено на оптимальном способе достижения результатов. Игровые движки не отрисовывают то, что вы не видите непосредственно в кадре. Например, спины персонажей, стоящих к вам лицом, или скрытое кузовом днище транспорта. Умные скрипты уменьшают разрешение и детализацию удалённых объектов, подменяют реальные модели плоской бутафорией.

Поэтому брать данные для достоверных, но простых отражений попросту неоткуда. Приходится использовать обманки. Простейший вариант — Cubemap, минималистичные кубические текстуры для изображения статичных предметов в зеркальных поверхностях. В каких-то сценах используется дублирование геометрии и отрисовка в уменьшенном вдвое разрешении.


Решения «в лоб» сильно влияют либо на итоговое качество картинки, либо на счётчик fps.

До недавнего времени наиболее продвинутым методом считался screen space reflections — вместо честного рендера отражения использовались элементы текущего кадра. Алгоритм тоже применял трассировку, но определял не цвет точек финальной картинки, а лишь возможность появления объекта в зеркальной поверхности. Данные для перевёрнутого изображения брали с того же кадра. И если нужной модели на экране не было или она отображалась частично, то и отражать было нечего. Такой способ позволял сравнительно дёшево добиваться впечатляющих результатов, но также вносил ряд ограничений. Например, при активном перемещении камеры предметы то и дело исчезали или возникали под немыслимыми углами, разрушая всю магию.

Сломанные Screen-Space отражения
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. Естественно, после такого на разработчиков обрушился очередной шквал критики.

NVIDIA GEFORCE RTX2080 Ti Founders Edition

 

Сейчас же сотрудничество программистов из 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 в том же половинном разрешении.

NVIDIA GEFORCE RTX2080 Ti Founders Edition

Во-вторых, настройки (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
Схематическое устройство кристалла GPU RTX 2080 Ti

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


Производительность DXR-алгоритмов после обновления ПО удвоилась, а с момента первых показов — выросла в 4 с лишним раза.

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

NVIDIA GEFORCE RTX2080 Ti Founders Edition

Главное другое: технология показала, на что она способна в руках профессионалов. Скорее всего, релизы 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, не говоря уже про флагманы. Трассировка лучей в реальном времени долгое время оставалась мечтой игростроя. Теперь мечта сбылась.

GeForce RTX 2080 Ti

За выдающийся вклад в развитие PC-боярства, поддержку передовой компьютерной графики и уверенный рост производительности в трассировке NVIDIA RTX 2080 Ti получает высшую награду 4PDA. Вместе мы покажем консольщикам, каким сочным должен быть графон!

P.S.: Из-за проблем с тестовым оборудованием наш набор скриншотов был уничтожен. Изображения временно заменены на кадры из видео зарубежных коллег по цеху — Digital Foundry. 

Source

You might also like:

Comment on this post

Loading Facebook Comments ...
Loading Disqus Comments ...

No Trackbacks.