Ray Tracing: что такое трассировка лучей в видеоиграх, для чего она нужна и как ее включить
Вот уже несколько лет это загадочное словосочетание «трассировка лучей» (или рейтрейсинг) будоражит умы геймеров. Именно эта технология позволяет приблизиться к невероятной фотореалистичной картинке, благодаря чему много лет уже использовалась в мультипликации, архитектуре, дизайне и наконец-то в видеоиграх. Впрочем, несмотря на все преимущества, есть у этой технологии и свои недостатки, о которых хорошо знают все, кто с ней хоть раз сталкивался.
Что такое трассировка лучей в видеоиграх и для чего она нужна
Еще до выхода линейки RTX от NVIDIA технология трассировки лучей не давала спокойно спать создателям игр. Буквально пять лет назад считалось, что это один из святых граалей компьютерной графики, которые в ближайшие годы будет невозможно перенести на простые обывательские компьютеры и использовать в играх. Однако сейчас игр с трассировкой вышло уже несколько десятков, а попробовать их успели сотни тысяч, если не миллионы геймеров.
В чем же сложность этой технологии, из-за которой ее использование откладывалось несколько десятилетий? Все дело в комплексности, которую реализует трассировка лучей видеокарты. Ключевое слово здесь именно «лучи» — речь идет в первую очередь о свете и его отражении. Трассировка лучей — это простыми словами честный алгоритм для расчета распространения света. Смысл технологии состоит в том, что алгоритмы начинают обсчитывать этот процесс более-менее приближенно к реальности — уделяя внимание каждому пучку, материалу, на который он упал, его свойствам и так далее.
Учитывая огромное количество лучей, необходимых для построения качественного изображения, на плечи видеокарт легла тяжелая ноша. Ведь луч обычно не просто падает на какой-то объект, а рассеивается, преломляется или отражается, то есть меняет свое направление, цвет и интенсивность. Из-за этого задача постоянно и многократно усложняется. Чтобы избежать артефактов изображения (расплывчатых отражений, неправильного освещения и так далее), системе нужно просчитывать миллионы лучей, путь которых не заканчивается на одном месте.
Но возникает логичный вопрос — если это настолько сложно, то для чего нужна трассировка лучей в принципе? Обходились же без нее как-то раньше и делали очень красивые игры. Дело в том, что только трассировка лучей может обеспечить ряд впечатляющих эффектов вроде настоящего глобального освещения, честные отражения преломления, правильное затенение и в принципе мягкую тень.
К тому же все придуманные за годы способы обойтись без честного просчета света оказались крайне сложными. Вместо того чтобы по-честному ориентироваться на cолнце или множество маленьких источников света, программистам и дизайнерам приходится расставлять по уровням огромное количество искусственных светил, возможности которых ограничены.
Самый радикальный способ решения проблемы — просто нарисовать тень от объекта на текстуре, полностью проигнорировав настоящие преломления и тени, которые возникли бы в реальном мире. Разумеется, в таком случае ни о каком динамическом освещении и речи идти не может.
В принципе, компьютеры умеют справляться со сложными и объемными вычислительными задачами. Поэтому в 3D-мультфильмах (например, от студии Pixar) рейтрейсинг в том или ином виде используется уже порядка 20 лет. Однако там на создание одного кадра может уходить несколько часов или даже дней, а геймерам нужно как минимум 30 (а лучше 60, 90 или 120) кадров каждую секунду.
Как работает Ray Tracing — что нужно
Благодаря использованию архитектуры Turing в серии NVIDIA RTX удалось придумать, как именно добиться этого результата. Компания добавила в линейку видеокарт 2000-й серии отдельный блок с RT-ядрами (RT — сокращение от Ray Tracing), которые могли решать разные задачи, в том числе и расчет падения фотонов света.
Однако и здесь не обошлось без хитростей. Исторически сложилось так, что для создания реалистичного (или хотя бы выглядящего так) изображения использовалось множество ухищрений, позволявших сэкономить ресурсы компьютера. Но даже полноценная поддержка трассировки лучей все равно требует от разработчиков немалых усилий.
Так в итоге как работает трассировка лучей в играх? Правильный ответ — очень ограниченно. Учитывая, какого объема бывают сцены, трассировка лучей RTX касается только избранных объектов. Например, неоновых вывесок на улицах, cолнца или каких-то еще источников света — главное, чтобы не всех сразу.
Также и с материалами, в которых должны появляться честные отражения. В ходе оптимизации под обработку лучей в реальном времени разработчики часто меняют материалы с гладких на матовые именно для того, чтобы держать меньше отражающих поверхностей в кадре.
И еще одно супероружие, которое припасла NVIDIA, помимо ее новой фирменной технологии «NVIDIA трассировка лучей», — DLSS. Это техническое решение, представляющее собой вариант суперсемплинга — то есть сглаживания изображения. Опять же, сами по себе технологии сглаживания не новы, они используются уже десятки лет, однако решение NVIDIA вышло на новый уровень благодаря использованию нейросетей.
Эта технология позволяет из изображения в низком разрешении в реальном времени создавать высокодетализированную картинку без резких «лесенок» и других неприятных эффектов. Причем в последних версиях вместе с высокой производительностью графика еще и выглядит лучше, чем с отключенным DLSS. Все дело в нейросетях, которые крайне эффективно натренированы на достройку изображения в конкретных играх и иногда умудряются превзойти оригинал.
Если вы все-таки узнали, как включить трассировку лучей в играх, то объяснять, зачем нужно рендерить изображение в пониженном разрешении, не нужно — даже на топовых видеокартах трассировка лучей значительно просаживает частоту кадров, повысить которую и призвана DLSS.
Примеры графики с включенной трассировкой лучей
Всего можно выделить три типа эффектов, достигаемых с помощью трассировки лучей:
Отражения. Одна из самых заметных возможностей, которую дает Ray Tracing, это создание качественных отражений. До этого чаще всего использовалась технология Screen Space Reflections (SSR, «отражение пространства экрана»), но она, во-первых, дает очень размытый результат, а во-вторых, может отразить лишь то, что находится на экране. Поэтому четкие, красивые и реалистичные отражения, созданные с помощью рейтрейсинга, сразу выделяются на их фоне.
Освещение. Как мы уже говорили ранее, просчитывать по-честному все лучи в сцене практически нереально, поэтому таким образом работают лишь с избранными источниками. В лучшем случае речь идет о глобальном освещении, созданном с помощью рейтрейсинга — это лучшее из того, что дает трассировка лучей. Полностью технология называются RTGI (Ray Traced Global Illumination) и она действительно делает изображение во много раз фотореалистичнее. Но и использование рейтрейсинга на местных объектах также впечатляет.
Тени. Непосредственно связанный с освещением эффект, который разработчикам раньше давался с большим трудом. Теперь, благодаря возможности обсчитывать траекторию падения луча, тени в играх стали гораздо реалистичнее — мягче, правильной формы, постепенно рассеивающимися и так далее.
Как включить трассировку лучей в играх
После такого у многих может возникнуть закономерный вопрос — как включить Ray Tracing? На самом деле в большинстве случаев довольно просто — если у вас есть соответствующая видеокарта, а игра поддерживает нужную технологию, то достаточно лишь активировать пункт в настройках.
Если вспоминать крупные свежие проекты с трассировкой лучей, на ум первым делом приходят Star Wars Jedi: Survivor и Dead Space (2023), которые повсеместно используют рейтрейсинг для создания освещения — без него это практически другие игры.
К тому же сейчас энтузиасты активно внедряют технологию в старые игры, поскольку там можно добиться впечатляющих результатов вкупе с уменьшенной нагрузкой на систему. Вспомнить хотя бы качество графики в Portal RTX и Half-Life 1: Ray Traced. С этой технологией старые игры действительно удивляют, предлагая освещение невиданного уровня.
В таких проектах Ray Tracing включается по-разному. В некоторых случаях достаточно скачать отдельную версию игры, но иногда придется самостоятельно заменить некоторые файлы по инструкции.
Понравилась статья?
Похожие статьи
Нам нравится, что вам нравится
Уверены, вы можете не хуже! Напишите статью и получите Бонусы.
Спасибо, что вам есть что сказать
Попробуйте расширить свою мысль и написать статью — и получите за это Бонусы.
Комментарии