Рейтрейсинг что это такое
Трассировка лучей. Современные возможности видеокарт
Содержание
Содержание
Технология построения реалистичных сцен методом трассировки лучей (ray tracing) известна уже несколько десятков лет, но только пару последних лет она полноправно заявляет свои права в сфере компьютерных игр. Тем самым переставая быть инструментом, применяемым сугубо в профессиональной сфере, постепенно становясь ближе простому обывателю.
Виртуальные фотоны
Технологии в сфере графики обычно сложно объяснить и максимально доступно разложить по полочкам, но в случае с трассировкой лучей — все довольно просто. Сама идея построения картинки, можно сказать, взята из реальной жизни, а в ее основе лежат процессы из школьного курса физики. Суть идеи — просчет поведения луча света при преломлении и отражении от моделируемого объекта. При этом в расчет берутся, как интенсивность виртуального луча (его освещенность), так и его взаимодействие с другими объектами, другими виртуальными лучами и источниками света. В результате чего, пользователь на экране монитора наблюдает изображение, максимально приближенное к тому, что он привык видеть в реальной жизни.
По сути, в цифровую среду перенесена работа света из реального мира. Виртуальный фотон движется из исходной точки и по пути взаимодействует с объектом. В точке соприкосновения с моделью его дальнейшее движение определяется свойствами самого объекта. Световой луч может быть полностью поглощен темным объектом, или отражен его зеркальной поверхностью.
Технология трассировки лучей пытается максимально реалистично отобразить объекты и их взаимодействие со светом так же, как это происходит в реальном мире.
Такое сходство рейтрейсинга с процессами, происходящими в реальном мире, делает его довольно успешной техникой 3D-рендеринга. Даже в «кубических» играх наподобие Minecraft, картинка выглядит довольно реалистично, насколько это конечно возможно.
Основная проблема — такая насыщенная среда довольно сложно поддается моделированию. Воссоздание процессов работы света в реальном мире — очень сложный и требовательный к вычислительным ресурсам процесс. Для примера, при расчете одного кадра с разрешением Full HD потребуется одновременно просчитать 2073600 виртуальных лучей, каждый их которых, прежде чем сформирует один пиксель на экране, по пути следования будет взаимодействовать не с одним десятком своих «сородичей». При этом не стоит забывать, что речь идет о динамичной сцене, а не о статичной картинке, поэтому количество вычислений, при комфортном значении FPS, как правило, составляющих 50–60 FPS, возрастает в разы! Понимание этого процесса объясняет наличие огромных серверных ферм для рендеринга на киностудиях и студиях визуализации, профессионально занимающихся созданием контента высокого качества.
Главная идея при продвижении трассировки лучей в массы, заключалась в том, что для качественного скачка необходимо было разработать алгоритм, который по сильно зашумленной картинке, полученной в результате всего нескольких проходов (итераций) определял основные параметры создаваемого изображения. А именно: характеристики освещенности сцены, расположение теней и отражений объектов. И, исходя из имеющихся данных, дорисовывал ее до удобоваримого вида.
Это и было ключевым новшеством. Все остальное — уже давно известно визуализаторам. Существует огромнее количество различных программ и плагинов к ним, ориентированных на удаление методом аппроксимации посторонних шумов изображения. Главное в технологии — определение начальных параметров сцены.
Трассировка лучей в игровом контенте
Из-за проблематики, озвученной выше, рядовому геймеру предоставляется урезанная версия технологии, которая не потребует внушительных затрат, но позволит насладиться сочной картинкой, максимально приближенно передающей игру света и теней.
Чтобы сделать рейтрейсинг ближе к народу, производители контента вынуждены идти на определенные компромиссы. Ведь кроме увлекательного сюжета и удобного геймплея, у игры должна быть отменная визуализация, которая полностью погрузит геймера в игровой процесс. Это достигается определенными «уловками» в сфере создания отражений, теней и реалистичного распределения света по игровой сцене.
Отражения
В большинстве игр с трассировкой лучей в настоящее время используется комбинация традиционных методов освещения, обычно называемых растеризацией, и рейтрейсинга на определенных поверхностях, таких как отражения от водной глади и металлоконструкций.
Для создания отражений, помимо стандартных полигонов игровой сцены, определенным ее частям присваивается свойство материала, с необходимым коэффициентом отражения. Встречаясь с такой поверхностью, условный фотон либо отражается под тем же углом (зеркальные поверхности), либо преломляется под заданным углом (другие поверхности). Причем, при использовании рейтрейсинга на матовых поверхностях, отражение сильно зависит от близости объекта к ней. Т. е., чем объект дальше от поверхности, тем более размытым он кажется.
Это важное свойство, которое большинство даже не замечает в реальной жизни, а в игровом процессе такая детализация существенно повышает качество картинки и ее восприятие.
Battlefield V — яркий представитель такого игрового контента. Пользователь во всей красе наблюдает отражения войск и техники на воде, отражение местности на плоскостях пролетающих самолетов, отражение вспышек от взрывов на поверхностях игрового мира.
Создание эффектов тени всегда вызывало у разработчиков кучу сложностей и нестыковок. Есть тени, которые являются просто проекциями объектов. Как правило, они имеют четко очерченные края. Есть более проработанные варианты, так называемые мягкие тени. Они имеют определенную линию перехода, отделяющую тень от полутени, но, к сожалению, в реальной жизни это так не работает.
При создании теней методом рейтрейсинга, виртуальные лучи, исходящие из источника света, при встрече с объектами, сами создадут необходимые области затенения. При этом учитывается не только интенсивность источника света, но и световые излучения, продуцируемые другими объектами. В итоге — наиболее соответствующий реальным условиям результат.
Наиболее интересно реализовать динамику и реализм теней на данный момент удалось разработчикам компьютерной игры Shadow of the Tomb Raider.
Освещенность
Если, что называется «по-честному», просчитывать всю освещенность сцены, то необходимо учитывать абсолютно все световые лучи присутствующие в ней. А это очень и очень ресурсоемкая задача!
Поэтому для трассировки лучей в играх, во-первых, используется определенное количество источников света, а во-вторых, количество итераций рейтрейсинга тоже строго ограничено. Этот трюк позволяет сделать картинку живой и реалистичной, но в то же время не перегружает графическую подсистему ПК.
Пока еще в редких играх используется полная трассировка лучей для просчета глобального освещения всей сцены. Это самый дорогой в вычислительном отношении способ. Для эффективной работы он нуждается в самой мощной из доступных в данный момент видеокарт. А вот результат вполне может разочаровать, поскольку топовая видеокарта справится с такой задачей в разрешении Full HD, хотя ей вполне по силам без использования рейтрейсинга выводить на экраны изображение 4К. Metro Exodus — пожалуй, единственная игрушка, использующая трассировку лучей для построения всей сцены, хотя в некоторых моментах ее реализация оставляет желать лучшего.
Аппаратная часть
Наиболее удачливой в коммерческом использовании технологии оказалась компания NVIDIA. Ее серия графических адаптеров GeForce RTX — безоговорочный лидер в работе с виртуальными фотонами. Ведь она была специально разработана для решения задач по трассировке лучей.
Компания AMD на данном этапе сохраняет завидное олимпийское спокойствие. Однако это затишье не должно расслаблять конкурентов. Скорее всего, в самом ближайшем будущем, игроманам будет презентована специализированная линейка видеоадаптеров на базе архитектуры RDNA 2, презентованной ранее.
Краткие итоги
С появлением трассировки лучей в игровом сегменте, в первую очередь реализация отражений стала значительно правдивей для пользователя и существенно проще для производителя контента. Во-вторых — появились довольно правдоподобные алгоритмы рассеивания отражений. В-третьих, улучшилось освещение сцен. Как бы не ограничивались и аппроксимировались расчеты освещенности сцены, все же созданные по технологии рейтрейсинга они более правдоподобны и наиболее приближены к реалиям. К тому же, тени созданные по этой технологии «умеют» окрашиваться в зависимости от расположенных поблизости источников света.
Что такое рейтрейсинг и как работает трассировка лучей в играх
Ray-Traycing (рейтрейсинг) или так называемая трассировка лучей (DXR), хоть и была известна до релиза видеокарт NVIDIA RTX, но после их выпуска на массовый рынок стала особо на слуху в игровом сообществе. NVIDIA удалось первой внедрить трассировку лучей в режиме реального времени в компьютерных играх, но разработчики этих самых игр не сильно-то и торопятся внедрять технологию RTX в свои проекты. Чтобы понять, кому и для чего нужна трассировка, для начала мы постараемся разъяснить, как работает рейтрейсинг, а также попробуем проанализировать рынок игр с поддержкой RTX и понять, стоит ли собирать игровой ПК для проектов с поддержкой DXR.
Что такое Ray-Traycing (рейтрейсинг)?
В теории, рейтрейсинг – простой процесс, корни которого идут из физики, а сама трассировка – далеко не новинка. Но всё просто только в теории. На практике, трассировка лучей – невероятно трудоемка с технической стороны, ведь часть лучей может не отразиться вообще, часть – отразиться всего пару раз, а некоторые лучи в рамках одной сцены могут отражаться бесконечное количество раз. И чтобы всё отражалось корректно, системе нужно обсчитать абсолютно каждый луч. Полностью точный и корректный рейтрейсинг требует очень высоких вычислительных мощностей железа, но даже в этом случае, это весьма длительный процесс.
К слову, «киношники» уже давно используют эту технологию при производстве фильмов. Вы могли видеть рейтрейсинг в кинематографе, к примеру, в фильме «Трон» 1982 года выпуска. Обычно, трассировка лучей в фильмах добавляется на стадии монтажа, поэтому создателям фильмов не нужно рассчитывать поведение источников света в реальном времени. Им достаточно это сделать один раз при рендеринге ленты. Но даже в таком случае, просчет лучей на одном кадре может занимать множество часов. А вот в играх разработчики никогда не смогут заранее предугадать, куда пойдет игрок и с какой стороны будет смотреть на объект, чтобы просчитать отражения и преломления лучей один раз, как это делают в кино. Поэтому в играх речь идет исключительно о трассировке лучей в реальном времени, а это невероятно трудоемкий процесс. Именно из-за сложности рейтрейсинга, его «приход» в игровую индустрию сильно задержался.
«Свет в конце тоннеля» или как NVIDIA принесла рейтрейсинг в игровую индустрию
Когда никто не ждал появления рейтрейсинга в играх ещё столько же, сколько его и не было, NVIDIA ворвалась на массовый потребительский рынок с видеокартами GeForce RTX на основе архитектуры Turing, которые помимо стандартного увеличения производительности в играх в рамках поколения привнесли технологию RTX в ряд совместимых игр. Видеокарты оснащены RT-ядрами, отвечающими за расчет трассировки лучей в режиме реального времени, и в дополнение поддерживают новую технологию сглаживания DLSS на основе машинного обучения. Итак, что произошло? NVIDIA первой внедрила аппаратную поддержку рейтрейсинга в компьютерных играх (RTX), а просчет лучей происходит в режиме реального времени с помощью специальных тензорных RT-ядер. Все новые карты основываются на архитектуре NVIDIA с кодовым названием Turing, созданной на 12-нм техническом процессе. Именно она позволяет в реальном времени обрабатывать отражения световых лучей, помогая сделать графику в играх в разы более реалистичной и кинематографичной.
Как работает трассировка лучей (DXR) в играх? На самом деле, немного по-хитрому. Трассирование лучей не предполагает применение на всю сцену, которая в теории может быть невероятно огромна. Поэтому здесь используется гибридный метод классических технологий освещения и непосредственно трассировки. Но когда рейтрейсинг активен, то отрабатывает он честно, выдавая шикарные эффекты отражений, теней и освещения. Также нельзя забывать, что графические настройки игры (низкие – средние – высокие – ультра) регулируют число проходов трассировщика и выбирают, где использовать обычные методы, а где DXR. Ну, и наконец, применяется такой прием, как сегментирование изображения. Он определяет, где нужно участие RT-ядер в обработке кадра. От этого зависит практически все, начиная от плотности лучей, заканчивая дальностью прорисовки отражений.
К слову, количество вышеупомянутых RT-ядер в видеокарте определяет производительность в играх при включенной трассировке. Логично, что RTX 2060, самая младшая видеокарта в линейке GeForce RTX, оснащена меньшим количеством RT-ядер, чем, например, RTX 2080, поэтому её производительность при включенной трассировке на тех же настройках и разрешении монитора заметно ниже. «Сгладить» этот момент призвана новая технология сглаживания NVIDIA DLSS, при включении которой можно повысить заветный fps (количество кадров в секунду).
Технология суперсэмплинга DLSS на основе машинного обучения
DLSS – это технология суперсэмплинга (сглаживания), которая работает и обучается при помощи нейросетей. Если и сейчас непонятно, то ничего страшного. Здесь всё очень просто. DLSS – это, по сути, самое обычное сглаживание краев на игровых объектах, но если обычное сглаживание использует мощности GPU (графического чипа) видеокарты, то для работы DLSS, NVIDIA выделила отдельный тензорный блок в чипе, оптимизированный для работы нейросетями. И чем больше данных доступно ИИ, тем лучше его производительность и результат в сглаживании. Разумеется, включение DLSS значительно уменьшает нагрузку с GPU видеокарты, поэтому он наиболее эффективен в играх на разрешении 4К, где обычное сглаживание потребляет невероятно много ресурсов видеочипа. Плюс, глубокое обучение нейросетей DLSS позволяет со временем еще больше увеличить производительность в играх, как при включенной трассировке лучей, так и без неё.
GeForce RTX SUPER – еще более производительная трассировка лучей в играх!
Недавно NVIDIA представила и выпустила на рынок новые видеокарты RTX с приставкой «SUPER» в названии. Обновление получили три модели – RTX 2060, RTX 2070 и RTX 2080. Все refresh-версии отличаются от «стандартных» более мощным графическим процессором, а также увеличенным количеством RT-ядер для обработки трассировки лучей. Всё это помогло увеличить производительность в играх в среднем на 15%, а в некоторых играх прирост доходит вплоть до 24%.
По всей видимости, NVIDIA, выпуская на рынок обычные GeForce RTX оставили скрытый запас мощности, который как раз-таки и пригодился для того, чтобы спустя определенное время полностью раскрыть видеокарты линейки RTX. К слову, компании AMD, главным конкурентам NVIDIA на рынке игровых видеокарт, не чем ответить на видеокарты GeForce RTX. NVIDIA первой удалось внедрить рейтрейсинг в массы, в то время как AMD только-только изучает возможности данной технологии. Именно поэтому игровые решения «красных» без поддержки RTX стоят дешевле, чем карты «зеленых», которые наделены тензорными RT-ядрами.
Главные проблемы рейтрейсинга в играх
Очень большая «нагрузка» на производительность.
Не так много игр с поддержкой трассировки лучей RTX
Рейтрейсинг, как мы уже упоминали ранее, требует больших вычислительных мощностей. Даже оптимизированные специально под эту задачу видеокарты GeForce RTX не всегда справляются с трассировкой в играх, особенно на высоких разрешениях. Разумеется, NVIDIA совместно с разработчиками игр регулярно выпускает обновления драйверов, улучшающих работу рейтрейсинга, но порой даже самая мощная видеокарта в линейке, RTX 2080 Ti, не всегда справляется с нагрузкой при включенном RTX, в 4К-разрешении и на максимальных графических настройках.
Та самые игры, где рейтрейсинг представлен полностью и во всей красе – Control и Quake II RTX, которую разработчики выпустили совместно с NVIDIA. И если с Control всё более-менее ясно, ведь это относительно недавняя новинка, то с Quake II RTX ситуация интереснее. В значительно улучшенном переиздании легендарной классики, были обновлены не только текстуры и перерисованы все модели (не без помощи пользовательских модификаций), со стороны трассировки здесь есть и реалистичные отражения, и преломления, и тени с глобальным освещением. Т.е. полный набор, какой и должен быть по умолчанию во всех играх с поддержкой рейтрейсинга. К сожалению, сейчас количество игр, оснащенных трассировкой лучей можно пересчитать по пальцам одной руки, разумеется, если не учитывать технодемки, созданные исключительно для демонстрации технологии публике.
Будущее трассировки лучей и какие игры будут поддерживать рейтрейсинг?
Что ждет рейтрейсинг в будущем и какие у него перспективы? На самом деле, кто бы что ни говорил про трассировку, и в частности, про видеокарты GeForce RTX, будущее у этой технологии определенно есть. Для примера, достаточно вспомнить аналогичную ситуацию, когда был релиз DirectX 10. Многие утверждали, что и на DX9 неплохо «живется», а все эти новинки от лукавого, но двигатель прогресса не остановить. Сейчас это происходит и с DXR. Как говорится, «Назад пути нет», а количество игр с поддержкой рейтрейсинга будет только увеличиваться.
Анонсы главной игровой выставки года E3 2019 показали, что сейчас и в последующих годах количество игр будет неустанно увеличиваться. Среди самых ожидаемых проектов с поддержкой DXR числятся: Cyberpunk 2077, Call of Duty: Modern Warfare, Watch Dogs: Legion, Bloodlines 2 и Wolfenstein: Young Blood (игра уже вышла, но поддержку трассировки в неё добавят чуть позже). Среди проектов меньшего масштаба: Final Fantasy XV, PUBG, Remnant: From the Ashers, Serious Sam 4, We Happy Few, Atomic Hearth, Ark: Survival Evolved, Dauntless, MechWarrior V и др.
Разглядываем «лучи».
реклама
реклама
Слепой тест. Методология и настройки.
Основные настройки игры на RTX 2070 super:
реклама
Основные настройки игры на RTX 3090:
реклама
Счетчик FPS и любой оверлей отключен, для большей объективности.
Методология слепых тестов:
Каждый человек проходит 10 тестов по 2-5 минут игры. Игра каждый раз начинается с одного и того же сохранения.
Перед началом серии 10 тестов все проходят стартовый (не зачетный) тест с отключенной трассировкой.
В каждом тесте 50% вероятность, что будет включена трассировка для освещения и теней.
Включение/выключение трассировки делает другой человек, а игрок ничего не знает о том, включена она или нет.
Заметим, что на 3й пункт сильно будет влиять производительность, но у нас получился +- адекватный фреймрейт для оценки визуального комфорта.
Так как включать или нет трассировку на каждом тесте выбирается случайно, то количество тестов для каждого игрока, в которых была включена трассировка разное и количество таких тестов будет указано в таблице результатов. Оценка впечатлений от трассировки идет через сравнение с предыдущим тестом, если он был без трассировки. Если предыдущий тест был также с трассировкой, то берется впечатление безотносительно него.
Принявшие участие в тестировании люди:
Результаты слепого тестирования
В таблице внизу подсчитаны ответы игроков на вопросы после каждого теста.






