0

Что такое ray-tracing и стоит ли за него переплачивать?

Что такое ray-tracing и стоит ли за него переплачивать?
Компания NVIDIA выпустила 3 новые модели видеокарт на архитектуре Turing - GeForce RTX 2070, GeForce RTX 2080 и GeForce RTX 2080 Ti - с поддержкой ray-tracing, что считается следующей ступенью развития графики. Эта технология позволяет создавать более реалистичное освещение, вплотную приближенное к реальному. В трассировке лучей новинки обладают производительностью в 6, 8 и 10 млрд лучей в секунду соответственно.

Новинки стоят ощутимых денег. Официальная цена GeForce RTX 2070 Founders Edition составляет 47 990 рублей, GeForce RTX 2080 Founders Edition оценена в 63 990 рублей, а старшая GeForce RTX 2080 Ti Founders Edition обойдётся в 95 990 рублей. Для многих актуален вопрос - стоят ли новые видеокарты своих денег? Прежде всего, разумеется, стоит подождать независимых обзоров, чтобы сделать выводы. На презентации основной упор был сделан на работу с трассировкой лучей в режиме реального времени. Но эту технологию пока что поддерживают не так много игр, да и в целом первые впечатления она оставляет неоднозначные.

Известно, что технологию NVIDIA RTX будут поддерживать следующие игры:

Assetto Corsa Competizione (релиз — 12 сентября 2018)
Atomic Heart (релиз — 2019)
Battlefield V (релиз — 19 октября 2018)
Control (релиз — 2019)
Enlisted (релиз — 2019)
Justice (релиз — TBA)
JX3
MechWarrior 5: Mercenaries (релиз — 2019)
Metro Exodus (релиз — 22 февраля 2019)
ProjectDH
Shadow of the Tomb Raider (релиз — 14 сентября 2018)

Остальные же игры используют привычные ядра CUDA, которых у новинок хоть и стало несколько больше, по сравнению с предшественниками, значительного прироста производительности ждать от них не стоит. Сообщается, что производительность в операциях одинарной точности на числах с плавающей запятой у видеокарты GeForce RTX 2080 Ti составит около 13,45 Тфлопс. Для сравнения у GeForce GTX 1080 Ti этот показатель равен 11,34 Тфлопс. У других новинок и вовсе наблюдается прирост примерно на 1 Тфлопс.

Архитектура Turing позволяет в реальном времени обрабатывать отражения световых лучей и другие кинематографические эффекты, которые помогут сделать игры намного более фотореалистичными. Трассировка лучей (ray-tracing)— это метод построения трёхмерных моделей, в котором используется принцип, аналогичный реальным физическим процессам. Для построения объекта система отслеживает траекторию виртуального луча от экрана к этому самому объекту. На каждой поверхности свойства света сочетаются со свойствами материала, на который он падает, с учетом угла падения. Свет, который, возможно, изменил цвет после отражения, затем отслеживается дальше, используя несколько лучей, которые имитируют отраженный свет — таким образом и происходит трассировка лучей. Процесс отслеживания продолжается до тех пор, пока лучи не покинут сцену.

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

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

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

В 3D-графике в кино и рекламе технология трассировки лучей применяется уже давно, и повсеместно (хотя и не всегда на 100%, кинопроизводители тоже стараются экономить ресурсы). Но, как уже было сказано, рендер "картинки" не происходит в реальном времени - даже на рендер-фермах просчет одного кадра может занимать многие часы. Игровая индустрия давно мечтает о рейтрейсинге, а первые эксперименты по внедрению трассировки лучей в игры датируются 2009-м годом.

В демке Quake Wars: Ray Traced от Intel наглядно демонстрировались плюсы частичной трассировки лучей. Тогда удалось показать тени от объектов сквозь прозрачные поверхности и, естественно, преимущества трассировки при отображении стёкол и отражений. Код запускали на серверной ферме и прототипе видеокарты Larrabee. При разрешении в 720p демо работало при 20-40 кадрах в секунду, что было очень достойным результатом для того времени. Развитием этой демонстрации стал проект Wolfenstein: Ray Traced, который воплощал «облачный» подход работы с технологией, но дальше технодемок у Intel дело не пошло. Ускоритель Larrabee отменили, а в свежие процессоры Intel и вовсе ставят графику от AMD.

Очень ограниченное использование трассировки лучей было реализовано в Killzone Shadowfall, где малую часть отражаемых объектов отрабатывал алгоритм «ray-trace 2.5D». Схожие техники коррекции локальных отражений использовал и Crysis 3. Сейчас для отрисовки отражений часто используется эффект screen space reflections, который позволяет получить относительно неплохие отражения при минимуме ресурсов и в реальном времени. Проблема только в том, что как только отражаемый объект пропадает из поля зрения камеры, он пропадает и в отражении. Артефакты SSR — частое явление.

Рейтрейсинг в картах NVIDIA RTX не предполагает применение на всю сцену, используется гибридный подход, когда какие-то элементы кадра считаются с использованием старых хитрых способов, а какие-то элементы, вроде отражений и некоторых теней, отрабатывает трассировка лучей. Сами авторы технологии признают, что для замены всех способов имитации глобального освещения на трассировку потребуются годы.

Также по теме