Трассировка лучей (Ray Tracing) сегодня используется не только на PC. Эта технология доступна также на консолях текущего поколения и даже на смартфонах. В этой статье мы расскажем простым языком, что такое трассировка лучей и зачем она нужна в играх.
Что такое трассировка лучей
NVIDIA на официальном сайте утверждает, что рейтрейсинг — «технология, симулирующая поведение света в естественных условиях». В целом понятно, но давайте копнём поглубже.
Рейтрейсинг существует с шестидесятых годов двадцатого века, но лишь несколько лет назад технология стала доступна широкому кругу пользователей в результате роста вычислительных мощностей. До распространения трассировки лучей в реальном времени в играх использовалась растеризация.
Разницу между двумя подходами наглядно показывает специалист из NVIDIA Эрик Хейнс в этом видео. В упрощённом виде его мысль звучит так: «При растеризации мы натягиваем объекты на пиксели и отсекаем то, что не вписалось в сетку. В случае с рейтрейсингом лучи проходят через объекты, и по такому принципу составляется цельное изображение». Сразу скажем, что речь идёт не обязательно о лучах света, а об эдакой «умной» геометрической сущности.
Чем больше моделей нужно проанализировать, тем эффективнее себя проявляет трассировка. Если луч обнаружит, что один объект целиком закрывает другой, то и в плане освещения обрабатывать последний не станет. А вот во времена растеризации требовалось прописать свойства каждого из таких объектов.
Как трассировка лучей используется в играх
Ни одна современная видеоигра не обходится без воссоздания реалистичного освещения. Свет отражается, искажается, проходит через декорации, поглощается. В ходе своих «путешествий» умный луч собирает информацию о поверхностях, с которыми взаимодействует, и доносит её до наших глаз. Лучше всех это объясняют художники Disney в соответствующем видео (напоминаем, что на YouTube можно включить автоперевод субтитров).
На канале NVIDIA GeForce компания выложила короткий информативный ролик, где Тони Тамаси, вице-президент отдела технического маркетинга, вполне доступно рассказывает о практическом применении трассировки лучей. При желании можете посмотреть видео целиком, мы же пройдёмся по ключевым фрагментам.
Благодаря рейтрейсингу, графический процессор учится справляться с ранее невыполнимыми (опять же, в реальном времени) задачами. Он сам «понимает», как себя ведёт луч при взаимодействии с той или иной поверхностью, исключает из вычислений объекты, не участвующие в осветительных процессах, и в качестве финального штриха очищает картинку от образовавшихся шумов.
Всё это требует существенных затрат производительности. Например, Shadow of the Tomb Raider, в которой полно сцен с большим количеством источников света, весьма требовательна к железу.
Однако разработчики постоянно придумывают новые способы оптимизации ресурсоёмких процессов. Это заметно на примере Battlefield V, где все типы поверхностей наделили разной степенью рефлективности и ограничили число лучей, поступающих на каждую из них. В результате нагрузка на систему значительно снижается, а картинка остаётся зрелищной.
С трассировкой лучей друг на друга влияют даже те объекты, что в данный момент находятся вне зоны видимости игрока. Это демонстрирует тестовый уровень NVIDIA Hall of Mirrors. В нём зеркала и лучи делают своё дело вне зависимости от позиции зрителя и образуют реалистичный эффект с бесконечными отражениями.
На странице сайта об Unreal Engine приведено несколько интерактивных изображений — двигая слайдер, вы сможете убедиться, насколько сильно трассировка влияет на мелкие детали.
Что такое RTX Remix
В теории «вкрутить» рейтрейсинг в любимую ретроигру сейчас может любой пользователь — всё благодаря утилите RTX Remix. Она состоит из двух компонентов: один умеет сканировать локации и заменять старые текстуры новыми, второй целиком посвящён созданию освещения. «Прокачать» можно любую игру на восьмой или девятой версии DirectX при наличии усидчивости и большого количества свободного времени. Первые завершённые проекты уже начинают появляться, например, рендерер для Deus Ex. Это, конечно, не полноценный ремастер, и игроку нужно самому копаться в файле конфигурации, но классика действительно становится привлекательнее.
Где еще используется трассировка лучей
Трассировка лучей применяется во многих формах цифрового искусства. По ссылке, например, вы обнаружите англоязычный материал о том, как рейтрейсинг помог с производством мультика «Тачки». Pixar использовала технологию для создания реалистичных теней и отражений.
Трассировка лучей находит применение в методике физически корректного рендеринга. Он нужен, например, мебельным компаниям, чтобы создавать реалистичные «фото» интерьеров. Ниже приводим изображение из каталога IKEA, целиком сгенерированное на компьютере.
Вспомним слова Эрика Хейнса из начала статьи о том, как луч сам ищет объекты и определяет их свойства. Это помогает не только с визуализацией, но и с расчётом траекторий. Примеры — баллистика и акустическое моделирование, благодаря которому в поддерживаемых играх мы наслаждаемся бинауральным звуком.
Как трассировка лучей влияет на FPS
Как и любая развивающаяся технология, трассировка лучей имеет свои недостатки. За реализмом по-прежнему стоят серьёзные требования к системе. Чтобы создать максимально красивую картинку, свой путь, состоящий из множественных отражений с обязательной конечной точкой в виде источника света, должны проделать миллионы, а иногда и миллиарды лучей. Оптимизировать процессы помогает совмещение растеризации и рейтрейсинга, а также технология умного масштабирования DLSS.
Более того, в большинстве игр используется так называемая обратная трассировка лучей (когда лучи исходят не от источников света, а от камеры игрока). Она требует заметно меньше ресурсов, чем полноценная версия технологии, получившая название «трассировка пути» (Path Tracing). Увидеть ее можно, например, в Quake II RTX, Portal with RTX и Cyberpunk 2077. Именно поэтому эти игры такие требовательные к ресурсам системы.
Что в итоге
Даже сейчас рейтрейсинг — далеко не самая доступная технология. Чтобы выкрутить настройки на максимум и при этом не «уронить» FPS, потребуется дорогое железо. Однако ситуация улучшается с каждым новым поколением видеокарт. Достаточно сравнить, какой прирост получили младшие видеокарты NVIDIA в трассировке лучей за последние годы.
Важную роль играет и DLSS. Сейчас технология не только подтягивает разрешение, но также генерирует кадры и реконструирует лучи. Подробнее о DLSS можно прочитать в нашем материале.
Рейтрейсинг проникает даже в те сегменты, где, казалось бы, это невозможно. Так, едва ли кто-то мог предугадать, что на «Айфонах» будут доступны такие игры, как Resident Evil Village, да еще и с трассировкой.
Частые вопросы
Какая видеокарта нужна для трассировки лучей?
Для работы трассировки лучей нужна видеокарта NVIDIA GeForce RTX 20-й серии и выше или AMD Radeon RX 6000-й серии и выше. Также поддержка рейтрейсинга есть и у видеокарт Intel Arc. Важно отметить, что даже самые современные видеокарты AMD все еще плохо справляются с рейтрейсингом — частота кадров ощутимо падает. Что касается Intel, то у видеокарт компании еще много проблем с драйверами и совместимостью, поэтому это продукт не для всех. На текущий момент наилучший выбор для рейтрейсинга — видеокарта NVIDIA GeForce RTX 40-й серии.
Почему RTX лучше, чем GTX?
В настоящий момент видеокарты серии GTX можно признать устаревшими. Все новые видеокарты NVIDIA относятся к серии RTX. Они поддерживают DLSS и трассировку лучей — в этом их главное преимущество.