Что такое трассировка лучей и нужна ли она нам в играх?

Компания Nvidia недавно представила технологию RTX, которая должна наконец-то принести метод трассировки лучей в игры. Трассировка лучей (рейтрейсинг) — метод далеко не новый. Применительно к играм о нём говорили ещё лет 20 назад, а сам термин относительно компьютерной графики возник в 1982 году, и с тех пор в играх метод так и не появился. Но что это вообще такое?

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

В реальности мы видим не объекты сами по себе, а отражённый от них свет. Исключением являются объекты, которые сами служат источниками света. Метод трассировки лучей использует примерно те же принципы применительно к виртуальной среде.

Проблема в том, что такой метод получается крайне затратным с точки зрения требований к аппаратным ресурсам. Если при использовании привычных методов рендеринга тот же цвет или прозрачность материала объекта задаются изначально, а отражения и тени эмулируются в том числе посредством шейдеров и прочих ухищрений, то в случае с рейтрейсингом эти характеристики определяются именно в процессе взаимодействия тех самых виртуальных лучей с объектом, как и в реальности. Это требует просто колоссальных затрат со стороны GPU даже в случае каких-то отдельных объектов, не говоря уже об использовании рейтрейсинга в играх в качестве основного метода построения объектов.

Для примера, для построения изображения разрешением 1024 х 768 пикселей посредством рейтрейсинга необходимо сформировать 768 432 луча. При этом каждый луч может как отражаться, так и преломляться, что в итоге приводит к увеличению количества трассируемых лучей в несколько раз. И если в случае обычных методов рендеринга необходимые полигоны просто нужно успеть отрисовать, то в случае рейтрейсинга каждый луч требует постоянных математических расчётов, начиная с момента его испускания.

Именно по этой причине рейтрейсинг уже давно используется там, где не требуется работа метода в режиме реального времени. В играх же нам как раз нужно последнее. Nvidia утверждает, что ранее не существовало графических адаптеров, имеющих достаточную производительность для такой работы. А теперь вроде есть Volta, которая должна аппаратно ускорять трассировку лучей. Правда, никаких подробностей на этот счёт нет. Пока совершенно неясно, насколько активно разработчики игр смогут использовать рейтрейсинг, и что мы, как игроки, получим на выходе. Но приблизительно понять это можно уже сейчас. К примеру, по видео ниже.

Это ожидаемая многими Metro Exodus. Она будет первой игрой AAA-класса, использующей технологию RTX. Но видите ли вы на видео что-то необычное? Если не знать, куда смотреть, большинство просто не поймёт, что данный ролик демонстрирует нам ожидаемую последние пару десятков лет технологию. На самом же деле рейтрейсинг в Metro будет использоваться для некоторых эффектов глобального освещения. Если точнее, для модели затенения ambient occlusion и для непрямого освещения indirect lighting. При этом классическая растеризация никуда не денется.

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

Думаю, стоит также отдельно оговорить момент касательно технологии Nvidia RTX и карт Volta. Как известно, в продаже имеется лишь две модели, использующие GPU GV100 — это ускоритель Tesla V100 и более близкий к народу, но безумно дорогой адаптер Titan V. Несомненно, в ближайшее время на рынок выйдут массовые видеокарты с GPU Volta, но ведь они достаточно долгое время будут в меньшинстве. Особенно, учитывая, что текущих адаптеров Pascal большинству хватает с головой. Да и майнинговую лихорадку, которая может испортить выход новинок, сбрасывать со счетов не стоит. Так неужели насладиться рейтрейсингом в играх в ближайшие пару лет смогут лишь владельцы новых карт Nvidia? Вовсе нет. Да, Nvidia говорит о неких возможностях GPU Volta аппаратно ускорять трассировку лучей, хотя подробностей пока ноль. Но выводить на потребительский рынок технологию, которая недоступна массам — глупость. Поэтому у нас есть Microsoft DirectX Raytracing (DXR) — набор новых инструментов и методов для API DirectX 12. Именно он будет отвечать как за аппаратную, так и за сугубо программную реализацию рейтрейсинга в играх. Последний вариант как раз интересен всем тем, у кого не будет видеокарт Volta.

Однако тут возникает вопрос касательно оптимизации и производительности. Приведу пример. Многие знают технологии Nvidia HairWorks и AMD TressFX Hair, которые позволяют более реалистично отрисовать волосы и шерсть. И эти технологии оптимизированы под адаптеры GeForce и Radeon соответственно. При этом на «чужих» видеокартах они прекрасно работают, только сильнее просаживают fps. Аналогичная ситуация будет и с рейтрейсингом в играх. Вопрос лишь в том, насколько сильно у адаптеров, не относящихся к поколению Volta, будет просаживаться fps при активации эффектов, связанных с трассировкой лучей. Это, к слову, ещё один довод в пользу того, что в ближайшие годы рейтрейсинг в играх будет в зачаточном виде.

Что касается AMD, компания на днях также представила собственный движок трассировки лучей — Radeon Rays 2.0. Только он базируется уже на основе API Vulkan. При этом ни о каких ограничениях в поколении GPU указано не было.

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

 

 

 

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

Please wait...
Теги: , , , , , , , , , , , , ,
0
2 Комментарий
Сначала Новые
Сначала Старые Популярные
guest

Межтекстовые Отзывы
Посмотреть все комментарии
Наверх

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: