Для чего нужна трассировка лучей

Трассировка лучей. Современные возможности видеокарт

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Содержание

Содержание

Технология построения реалистичных сцен методом трассировки лучей (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, презентованной ранее.

Краткие итоги

С появлением трассировки лучей в игровом сегменте, в первую очередь реализация отражений стала значительно правдивей для пользователя и существенно проще для производителя контента. Во-вторых — появились довольно правдоподобные алгоритмы рассеивания отражений. В-третьих, улучшилось освещение сцен. Как бы не ограничивались и аппроксимировались расчеты освещенности сцены, все же созданные по технологии рейтрейсинга они более правдоподобны и наиболее приближены к реалиям. К тому же, тени созданные по этой технологии «умеют» окрашиваться в зависимости от расположенных поблизости источников света.

Источник

Трассировка лучей: что, как и почем

С самого первого своего публичного явления на Gamescom 2018 архитектура Nvidia Turing стала предметом всеобщего обсуждения. Этот метод рендеринга уже давно был недостижимой мечтой графических технологий и вот, наконец, видеокарты вроде Nvidia GeForce RTX 2080 научились с ним работать с приемлемой производительностью.

Трассировка лучей, пожалуй, самое значительное улучшение графики в игровом мире за последние годы. Во всяком случае, в ПК-гейминге.

Так что же такое рейтрейсинг (ray tracing)? Это продвинутый и очень реалистичный способ рендеринга света и теней, благодаря которому компьютерная графика в фильмах и сериалах выглядит столь правдоподобно. Но есть одно «но» (на самом деле, конечно же, не одно): поскольку трассировка работает посредством симуляции и отслеживания каждого луча света от источника, технология крайне требовательна к мощности железа. В этом кроется главная причина, по которой мы не видели настоящего рейтрейсинга в играх. До сих пор.

В наши дни трассировка уже доступна на ПК, хотя пока лишь самые крупные тайтлы рискуют пользоваться ей, и то в ограниченном виде, довольствуясь лишь реалистичными отражениями или тенями. Игр, созданных при полной поддержке ray tracing, еще не существует.

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

Что такое трассировка лучей?

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

В последние годы мы наблюдали, как внутриигровое освещение становится все более и более правдоподобным, но преимущества новой технологии касаются больше не самого света, а того, каким образом он применяется в игровом мире.

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

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

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

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

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

Игры с поддержкой трассировки лучей

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Прямо сейчас достаточно много игр поддерживают технологию трассировки лучей, а скоро их станет еще больше: даже в инди-игры теперь добавляют эффекты реалистичного освещения. А пока вот список нынешних игр с поддержкой RTX на ПК:

В списке будущих хитов с поддержкой трассировки лучей в реальном времени находятся:

Видеокарты с поддержкой трассировки лучей

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

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

Само собой получается, что для получения удовольствия от трассировки лучей вы должны быть обладателем как минимум Nvidia GeForce RTX 2060. Если же у вас найдутся дополнительные деньги на RTX 2080 Ti, то вы не будете разочарованы картинкой. Правда, эта видеокарта пробьет в вашем кошельке огромную дыру.

Ниже вы найдете список всех современных видеокарт, аппаратно поддерживающих рейтрейсинг. Спойлер: все они носят гордое «RTX» в названии.

Кроме того, трассировка лучей в реальном времени программно поддерживается на видеокартах поколения Pascal (GTX 10xx), начиная от GTX 1060 6 GB, но, ввиду отсутствия RT ядер включение RTX в настройках приведет к существенному падению производительности — вплоть до полной неиграбельности.

Консоли с поддержкой трассировки лучей

Платформы предыдущего поколения не были способны воспроизводить актуальные игры с трассировкой лучей в реальном времени. Однако современным консолям — PlayStation 5 и Xbox Series X|S — эта задача вполне по плечу. Но с некоторыми оговорками: эти консоли слабее топовых ПК, поэтому трассировка лучей реализуется частично, жертвуя некоторыми другими эффектами — например, максимальным разрешением изображения или частотой кадров.

В некоторых играх, таких как Metro Exodus Enchansed Edition, страдает дальность прорисовки, а консоль Xbox Series S и вовсе практически не способна выдавать комфортный fps с трассировкой лучей. С другой стороны, это оправдано для бюджетных (а консоли именно таковыми и являются в сравнении с компьютерами) игровых устройств.

Производительность

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

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

К примеру, Metro Exodus, запущенная в разрешении 3440х1440 с «экстремальными» настройками графики, выдает на RTX 2080 Ti в среднем 41 кадр в секунду. Однако, стоит только включить трассировку лучей, как fps падает до среднего значения в 23 кадра. Разумеется, играть можно, но… вы понимаете.

К счастью, эта игра поддерживает технологию DLSS, использующую интеллектуальный апскейл разрешения. С ней вы сможете выжать из игры больше: к примеру, во время теста Metro Exodus с «экстремальной» графикой и «ультра» рейтрейсингом показала в среднем 44 кадра в секунду. Впрочем, это уже тема для отдельной статьи.

Следовательно, в погоне за трассировкой лучей вам придется быть более консервативным в выборе разрешения, ведь для более или менее комфортной игры в 4K вам определенно не обойтись без RTX 2080 Ti. Для привычного же 1080р с рейтрейсингом вполне будет достаточно RTX 2060.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Геймер со стажем. Люблю читать, спать и Бога-Императора.

Источник

Мнение: трассировка лучей – ещё одна бесполезная технология

Как говаривал бессменный глава Nvidia Дженсен Хуанг: «Покупка видеокарты без трассировки лучей – это просто безумие». Мне кажется, что он и сейчас так говорит, просто всем уже надоело слушать одно и то же. С появлением видеокарты Radeon RX 5700 ХТ никому не придёт в голову шальная мысль взять зелёную видеокарту, которая будет показывать в играх – 10 fps, но дороже и с лучиками. Хотя, находятся ещё такие индивиды, считающие точно так же, как великий Дженсен Хуанг. Давайте об этом поговорим.

реклама

Когда компания Nvidia рекламировала свою невероятно крутую технологию трассировки лучей, мелким шрифтом в одном из отдалённых уголков рекламного поста маркетологи написали, что лучики будут доступны только в 1080р. Мало того, эта информация верна только для дорогих видеокарт, таких как GeForce RTX 2080 и выше. На дешёвых GeForce RTX 2060 играть в лучи можно исключительно на средних настройках графики. Лично мне такая ситуация кажется странной. Мо моему мнению, видеокарты за 500 долларов покупают те, кто может себе позволить дорогой монитор с разрешением 2К или 4К.

И снова приведу в пример себя: в былые времена я часто и много играл, всякий раз я старался взять наиболее дорогую видеокарту и монитор, который мог себе позволить. Что же это получается, я покупаю 2К монитор за 500 долларов, видеокарту с лучами за 700 и не могу всем этим воспользоваться? Мне говорят, что я должен выбрать: или 2К на максималкках, но без лучей, или 1080р на средне-высоких, но с лучами. Выглядит очень странно. Вот представьте себе: я купил булку хлеба, заплатил за неё свои собственные деньги, но продавец мне говорит, что я должен выбрать: или кушать хлеб с колбасой или с сыром. Вместе никак. Как же так, ведь сыр и колбаса созданы друг для друга! Как прекрасно, что продавцы в магазинах не так жестоки, как Nvidia.

реклама

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

Источник

Лучи счастья — просто о трассировке лучей

Анонс игровых видеокарт от NVIDIA на базе архитектуры Turing вызвал немало вопросов, и даже спустя некоторое время после выхода «старших» моделей многие из тех вопросов остаются актуальными. Бюджетные видеокарты этой серии ещё не анонсированы, а цены на RTX 2080 Ti, 2080 и 2070 остаются крайне высокими. При этом большинство игр, которые могли бы наглядно продемонстрировать главную особенность нового поколения видеокарт, ещё не вышли (Atomic Heart), или поддержка в них должна появиться лишь в будущем (Shadow of the Tomb Raider).

В этом материале мы попробуем разобраться, почему такой шум в контексте новых видеокарт вызвала именно поддержка трассировки лучей, а не прочие нововведения — память GDDR6, VirtualLink, NVLink и 8K HEVC.

В чём идея трассировки лучей?

Суть технологии звучит достаточно просто: она отслеживает взаимодействие лучей с поверхностями, на которые эти лучи падают. Соответственно, они могут отражаться, преломляться или проходить насквозь.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Как видим, главное отличие — появились отражения огня на других объектах. Эти отражения возникли в результате выстрела из танкового орудия. Иначе говоря, добавился новый источник света, и лучи, исходящие от него, были отражены в глянцевом кузове машины, в диске оставшегося колеса и луже. И каким бы странным ни был такой огонь даже на фоне прошлых частей Battlefield, сами эффекты трассировки были показаны очень наглядно и зрелищно.

Но чтобы лучше понять масштаб нововведений, которые могут нас ждать в будущем, проведём небольшой экскурс в историю.

Как родилась технология?

Сама идея трассировки лучей далеко не нова и вполне успешно применялась в области моделирования, а если точнее, в визуализации и рендеринге.

Началось всё с метода «бросания лучей» (ray casting), который был создан для вычисления гамма-лучей, то есть для изучения радиации. Первый вариант для рендеринга был представлен в 1968 году учёным Артуром Аппелем (Arthur Appel). Суть метода заключалась в генерации луча из точки наблюдения (один луч на один пиксель) и поиске самого близкого объекта, который блокирует его дальнейшее распространение. На основе этих данных с помощью алгоритмов компьютерной графики можно было определить затенение данного объекта. Сам термин ray casting появился лишь в 1982 году.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Следующий важный этап начался в 1979-м. Дело в том, что алгоритмы бросания лучей прослеживали путь луча от наблюдателя лишь до столкновения с объектом. Учёный Тёрнер Уиттед (Turner Whitted) продолжил этот процесс. В его алгоритме луч после попадания на поверхность мог создать три новых типа лучей: отражение, преломление и тень. Соответственно, можно понять, что трассировка лучей — это более сложная серия задач, которая не только использует ray casting для определения точки пересечения луча и объекта, но и вычисляет вторичные и третичные лучи, которые могут быть применены для сбора данных. Те, в свою очередь, нужны для расчёта отражённого или преломлённого света.

В начале 80-х в Осакском университете группа профессоров и студентов создала LINKS-1 — компьютер, работающий на 514 микропроцессорах. Устройство было предназначено для создания трёхмерной графики с использованием трассировки лучей. В 1985 году в павильоне Fujitsu на международной выставке в японском городе Цукуба был представлен первый видеоролик для планетарных залов, полностью смоделированный на LINKS-1.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

В 1984 году была продемонстрирована BRL-CAD — созданная Баллистической исследовательской лабораторией США система моделирования. Спустя три года для неё был представлен трассировщик (raytracer), особенностью которого была хорошая оптимизация. Общая производительность при рендере доходила до нескольких кадров в секунду, пусть и достигнута она была с помощью нескольких машин с разделяемой памятью. Сама BRL-CAD сегодня относится к программам с открытым исходным кодом и иногда обновляется.

Где трассировка оказалась полезной?

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

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

Но Walkie-Talkie — не единственное сооружение, доставившее проблемы из-за солнечных лучей. К таким зданиям относятся концертный зал Walt Disney в Лос-Анджелесе и отель Vdara в Лас-Вегасе. Подобный эффект получил название «лучи смерти» (death rays). В 2015 году NVIDIA приводила эти здания как примеры ошибки, которой можно было бы избежать с помощью её новой технологии физически корректного рендеринга.

Выходит, что трассировка уже применяется в 3D-моделировании, но за это время и «железо» стало мощнее, и задачи сложнее. О сложностях и поговорим.

Проблемы трассировки лучей

Главной проблемой трассировки лучей является производительность. Для вычислительной техники нет ничего сложного в том, чтобы просчитать поведение одного луча. Но даже если взять сцену, в которой присутствует один источник света и малое количество предметов, в пределах 10, то лучей будет огромное количество. После каждой смены положения камеры необходимо заново просчитывать все эти лучи.

Когда речь идёт о сложном моделировании важных для науки вещей или о создании фильмов (где используется pathtracing, но и каждое движение известно заранее), там есть время на то, чтобы компьютеры долгое время визуализировали каждую секунду.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Роль Unity, Microsoft и NVIDIA в том, что мы видим сегодня

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

В 2008 году Intel показала демонстрационные материалы исследовательского проекта Quake Wars: Ray Traced, основанного на контенте Enemy Territory: Quake Wars. Производительность была на уровне 14—29 кадров в секунду при использовании нескольких четырёхъядерных процессоров и 20—35 кадров с шестиядерными процессорами. Видеокарта была также от Intel, на архитектуре Larrabee, конечные продукты которой так и не поступили в продажу.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

В 2009 году NVIDIA анонсировала Optix — бесплатный пакет программного обеспечения для работы с трассировкой на видеокартах. Совместимыми программами стали Adobe After Effects, Autodesk Maya, 3ds Max и другие.

Новейшая история трассировки лучей в играх началась с Brigade, игрового движка, который смог продемонстрировать достойные результаты трассировки в реальном времени. Само собой, они были не такими красивыми, как картинка в Unreal Engine 4 со статическим освещением, но в Brigade можно было менять количество и характеристики источников света и результат был виден сразу. А в UE4 для полноценного итога требовался рендер с помощью актуальной версии V-Ray.

Само собой, такие результаты не могли остаться незамеченными, и Brigade стала частью графического движка OctaneRender, который вошёл в известный вам Unity. В свою очередь, Unreal Engine принял в себя наработки GPUOpen — пакета программного обеспечения, предлагающего расширенные визуальные эффекты.

Microsoft сделала дополнение к API DirectX 12 в виде DXR (DirectX Raytracing). Позже AMD (создатель GPUOpen) ввела поддержку рейтрейсинга в свой API Vulkan.

А уже в этом году NVIDIA анонсировала и выпустила игровые видеокарты на архитектуре Turing, подразумевающей наличие RT-ядер для работы именно над трассировкой лучей и тензорных ядер (Tensor cores). Последний тип ядер достался в наследство от предыдущей архитектуры — Volta, на базе которой существует всего две разновидности продуктов (Titan V и Quadro GV100), и стоят они очень дорого. Тензорные ядра предназначены для более быстрого решения задач глубинного обучения.

О производительности

Как мы помним, при любом движении камеры все лучи в сцене приходится просчитывать заново. Если же в один момент просто замереть, просчёт, скажем так, этого кадра не остановится и будет бесконечно уточнять то, что мы и так уже видим после пары минут простоя. Даже на более слабых в сравнении с RTX картах спустя несколько секунд можно понять, как будет выглядеть итоговая картинка, только на ней будет присутствовать большое количество «шумов».

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

И здесь мы вспоминаем про Optix, в котором с версии 5.0 используется AI-Accelerated Denoiser. Это технология, призванная с помощью натренированных нейронных сетей рисовать картинку, похожую на то, что создавалось с помощью трассировки. В плане затрат мощности такой подход намного проще, но итоговый результат будет хуже, чем полученный с помощью «честной» трассировки.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Что имеем сегодня?

В играх, где нет трассировки лучей, производительность серии Turing дала стандартный прирост производительности для смены поколения в пределах 20% (хоть и не без неожиданностей).

Из игр с трассировкой лучей имеем только Battlefield V. Стоит заметить, что при включении настроек RTX производительность сильно падает. В плане картинки лучше самостоятельно сравнивать то, что получилось, с тем, что показывали на презентации.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

В профессиональном софте, как и ожидалось, изменения дали результат в лучшую сторону. Но при выборе помните, что прирост одинаковый не во всех программах: где-то он составляет до 20 % (может и выше), а где-то — десятую долю процента. Например, в OctaneRender сцена Spaceships обработалась на RTX 2080 быстрее на 12 % в сравнении с GTX 1080 Ti.

Больше примеров

В Atomic Heart кроме более мягкой тени можно заметить, что в варианте без RTX справа от робота в стену будто кто-то бросил пакет кефира. Cо включёнными настройками RTX свет от источников в той области более-менее ровный.

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

В «Метро: Исход» трассировка лучей смогла повлиять даже на атмосферу. Лично мне новый облик кажется слишком жизнерадостным, но это заметно только при сравнении «до» и «после».

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Для чего нужна трассировка лучей. Смотреть фото Для чего нужна трассировка лучей. Смотреть картинку Для чего нужна трассировка лучей. Картинка про Для чего нужна трассировка лучей. Фото Для чего нужна трассировка лучей

Определённо, трассировка лучей в реальном времени может стать важной ступенью на пути игр к фотореалистичной картинке. Но мы надеемся на скорый приход реалистичных теней, отражений в зеркалах и возможности разглядеть противника за спиной, уставившись на отполированную поверхность.

Текущие результаты слишком ранние, чтобы полноценно говорить о том, стоило ли отложить внедрение трассировки в реальном времени ещё на несколько лет, до появления готовых продуктов со стороны видеокарт, софта и игр. Многое зависит от того, заинтересованы ли в технологии AMD и Intel, — конкуренция дала бы больше уверенности в том, что про текущие наработки не забудут с выходом PlayStation 5 и видеокарт от Intel.

В любом случае Unity в своём докладе упомянула подходящий к концу 2018 год как этап, когда в играх только начала появляться трассировка лучей в реальном времени. По словам компании, широкое распространение технология получит лишь в 2020 году.

Технология интересная, красивая. BF V в некоторых сценах с DXR показывает достаточно красивую и реалистичную картинку, но все это просаживает FPS в 1080p на карточке за 1000$.
Я это к тому, что надо дождаться выхода новых дров и обновлений, может они исправят ситуацию с FPS в BF V, ну и конечно больше игр с данной технологией, что бы оценить ее полностью и ответа AMD в виде карт с поддержкой лучей для потребительского рынка.

Потанцевал технологии пока не раскрыт

пиксель) само по себе увеличилось из-за этих их гигалучей, да. И увеличилось кратно. Но не это самое страшное. А то, что при таком увеличении мы больше не можем использовать никакие ухищрения, которые позволили бы сократить количество самих этих просчётов (фрагментов).
Просто чтоб был понятен масштаб проблемы:
сам стандарт рендеринга (графический конвейер) предполагает целый ряд этапов, на которых часть отрисовываемой геометрии отбрасывается.
Сперва отработал вертексный шейдер. После этого позиции треугольников оказались в экранном пространстве и видеокарта должна отбросить те из них, которые вылетели за экран. Следом она проверяет, а полученный полигон вообще смотрит на нас лицевой стороной или обратной — и если обратной, то, опять же, выкидываем.
Потом треугольники растеризовались в пиксели (фрагменты) и видеокарта — опять же, должна отбросить те фрагменты, которые либо вылетели за экран, либо уже закрыты теми треугольниками, которые ближе.
Следом отрабатывает пиксельный шейдер. И — опять же — зачастую он на раннем этапе отказывается от вычислений пикселя, если видит, что тот в любом случае не будет записан в буфер (т.н. alpha-clip).
Именно это позволяет нам в современных играх получать такой красивый графен. Без этих базовых ускорений никакой Крузис с Баттлой были бы невозможны, ну вот правда.

Но и это не всё. Концепция RTX противоречит самой архитектуре видеокарты. Дело в том, что эта железка во главу угла ставит один-единственный принцип: «разделяй и властвуй».
Вся работа дробится на хренову тучу мелких и не зависящих друг от друга задач. Этот концепт пронизывает буквально всю архитектуру GPU. На рассчёт каждой вершины поступают только её данные. При обработке каждого пикселя на каждое ядро отсылается только тот кусочек текстуры, который нужен конкретно этому ядру. Именно это позволяет обрабатывать пиксели так быстро, ведь все необходимые данные целиком влазят в крохотный, но очень шустрый кэш ядер.

Очевидно, что в случае с RTX — буквально каждому пикселю требуется работать чуть ли не со всей сценой разом.
Решения есть, да. Но и тут не всё так радужно. По факту, лучшее, что может сделать нвидия для ускорения процесса — это адаптировать те оптимизации рейтрейсинга, которые использовались в киношном рендере лет 10 назад. Вот тут-то и кроется загвоздка:
1. далеко не все эти оптимизации в принципе можно перенести на GPU, с её уровнем параллелизации.
2. большинство из этих оптимизаций очень плохо дружит с концепцией «много мелких ядер, решающих свою маленькую задачу». Попросту невозможно аналитически предсказать, какие конкретно данные потребуется при расчёте конкретного пикселя.

Что мы имеем в сухом остатке.
RTX — это технология не для геймеров, а для киноделов.
Да, с точки зрения классического рендера — это просто невероятный рывок. Но конкретно в реалтайм-графике из-за всех этих проблем (большинство из которых неустранимы фундаментально) получается, что если просто делать игры старым образом, пользуясь старыми технологиями — картинка выйдет лучше и будет жрать меньше ресурсов.
Да, эти технологии надо знать игроделу. Да, надо пошаманить, чтоб их правильно задействовать. Но по итогу правильно приготовленная игра с «классическим» current-gen рендером выдаст лучший результат, чем RTX. Если смотреть на игру в целом, а не на отдельно тени или отдельно отражения.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *