В мире компьютерных игр в 2018 году произошло событие, которое многие эксперты отнесли к разряду революционных. Речь идет о внедрении в игры трассировки лучей.
По сути, это симуляция модели человеческого зрения, которая вплотную приближает компьютерную графику к кинематографическому уровню (см. примеры).
Эта информация доступна также в формате видео:
Трассировка лучей в компьютерной 3D-графике используется давно. Однако, раньше высокая сложность расчетов и недостаточное быстродействие видеокарт не позволяли с нужной скоростью рендерить картинку в компьютерных играх. Вместо трассировки использовались более простые и значительно менее требовательные к видеокартам алгоритмы.
Кое-кто пророчествовал начало игрового использования трассировки не ранее 2025 года. Однако, уже в 2018 году в графические чипы карт Nvidia Turing были внедрены специальные аппаратные блоки, включающие так называемые тензорные и RT-ядра. Они оптимизированы под расчеты трассировки и значительно ускоряют их. Новшество получило название Nvidia RTX. Видеокарты с наличием таких аппаратных средств не сложно отличить по аббревиатуре «RTX» в их названии. Это, например:
Nvidia RTX положила начало использованию трассировки лучей в компьютерных играх. Компания Microsoft дополнила DirectX 12 расширением DXR (DirectX Raytracing), а разработчики игровых приложений тут же взяли его на вооружение.
Рендеринг отдельных элементов графики с использованием трассировки появился в играх Metro Exodus, Shadow of the Tomb Raider, Battlefield V, Control. Таких игр пока не много. Но это не на долго. В дальнейшем трассировка лучей в той или иной степени будет использоваться в большинстве компьютерных игр.
В апреле 2019 года Nvidia выпустила специальный драйвер, добавляющий поддержку DirectX Raytracing также и в некоторые видеокарты архитектур Pascal и Turing, не обладающие специальными аппаратными средствами. Для расчетов в них используются универсальные шейдерные блоки, поэтому в список поддерживаемых попали только достаточно быстрые для этого модели. В частности:
В остальных видеокартах поддержки трассировки нет. Nvidia решила не добавлять ее в более старые линейки своих графических ускорителей, включая флагман GTX 980 Ti, который, вероятно, мог бы справиться с задачей не хуже, чем GTX 1060.
О намерении внедрить поддержку real-time трассировки лучей в свои продукты заявили и представители AMD. В картах Radeon появление соответствующих аппаратных средств (аналога Nvidia RTX) ожидается ближе к 2021 году. На программном же уровне поддержка графическими ускорителями AMD трассировки возможна уже сейчас (через Pro Renderer и Radeon Rays). Однако, в игровых приложениях ее пока нет.
Но есть ли в этом смысл? Многочисленные тесты свидетельствуют, что именно аппаратная поддержка трассировки лучей является ключевым условием комфортной игры. Ну, по крайней мере, на современном этапе эволюции графических карт и соответствующего программного обеспечения.
Например, в игре Metro Exodus при разрешении экрана Full HD с максимальными настройками графики, но без трассировки лучей, GeForce GTX 1080 Ti обеспечивает быстродействие на уровне 77 кадров в секунду. RTX 2060 при аналогичных условиях выдает только 56 кадров в секунду. Преимущество первой видеокарты
Если же в настройках игры включить трассировку лучей, расстановка сил кардинально меняется. GTX 1080 Ti, не имеющая аппаратной поддержки, выдает всего 25-26 кадров в секунду, а RTX 2060, у которой такая поддержка есть, – 40. Здесь уже не абы какое преимущество второй видеокарты (
37%). И это при том, что RTX 2060 является самой «медленной» картой с наличием аппартных средств трассировки.
Сложить более полное представление о влиянии трассировки на игровое быстродействие помогут размещенные ниже графики.
Выводы же напрашиваются следующие:
В компьютерных играх трассировка лучей в режиме реального времени с приемлемым уровнем быстродействия возможна при условии ее аппаратной поддержки видеокартой.
Программная ее поддержка пока-что выглядит не более, чем средством демонстрации широким массам преимуществ новой технологии. За счет использования для трассировки только универсальных шейдерных блоков обеспечить плавный игровой процесс не способны даже самые быстрые современные видеокарты.
Суть трассировки лучей состоит в отслеживании пути, который проходит каждый луч света от человеческого глаза до источника света. Как мы отметили выше, имеется несчетное количество лучей, одновременно «перескакивающих» с одних объектов на другие, и обработка такой информации – гигантская задача для компьютера. Например, расчет реалистичного освещения посредством трассировки лучей в анимационном фильме обычно занимает дни или даже месяцы. Вот почему этот метод нельзя было применять в компьютерных играх, ведь видеокарта должна выдавать в секунду до 60 кадров – и каждый кадр с идеальным освещением!
Благодаря развитию графических процессоров, примером чему является новейшая серия NVIDIA RTX, трассировка лучей со временем будет применяться во всем большем количестве игр. До этого момента 3D-рендеринг в основном осуществляется методом растеризации, который является более простым (впрочем, сам процесс рендеринга все равно остается достаточно сложным).
Что такое растеризация?
Что такое трассировка лучей?
При рендеринге методом трассировки лучей изображение получается путем отслеживания пути, который луч света проходит от окна просмотра (т.е. монитора) до каждого объекта, от которого он отражается, вплоть до источника этого луча. Во время отслеживания траектории лучей компьютер будет способен симулировать все эффекты их взаимодействия с различными поверхностями. Отражение, рефракция, тени на различных текстурах (гладких, грубых, прозрачных, цветных) – все это принимается в расчет. Результат – гораздо более реалистичное отображение света и тени по сравнению с растеризацией. Хотя существует множество приемов, которые применяются для искусственного повышения реализма игровых сцен, трассировка лучей продолжает оставаться самым полноценным решением.
Может возникнуть вопрос, почему путь, которым движутся световые лучи, отслеживается от окна просмотра до источника света, а не наоборот. Если цель 3D-рендеринга заключается в симуляции реального мира, не будет ли более реалистичным обсчитывать лучи, начиная с их источника? Причина состоит в эффективности. Источник света испускает бессчетное число лучей, и компьютеру пришлось бы обрабатывать такой объем данных в течение дней, а то и месяцев. При этом далеко не все лучи попадают в наше окно просмотра. Иными словами, мы их не увидим, а значит обсчитывать их было бы пустой тратой времени. Во время игры наше окно просмотра постоянно меняется, поскольку игровой персонаж постоянно перемещается, однако многие лучи света так никогда в него и не попадут. Таким образом, отслеживание лучей «задом наперед» из окна просмотра, чтобы обсчитывать лишь те, которые будут видны пользователю, является более эффективным с точки зрения использования ресурсов компьютера.
Как давно используется трассировка лучей?
Мониторы для технологии трассировки лучей Трассировка лучей – это свет и тени. Когда активируется данная технология, в игре часто возникают сцены с очень яркими и очень темными фрагментами, как в реальной жизни. Однако для монитора может оказаться затруднительным передать столь сильный контраст. Монитор с низкой динамической контрастностью зачастую жертвует детализацией темных участков, чтобы лучше отобразить самые яркие, и в результате вся сцена может выглядеть так, словно ее покрыли слоем серой краски, сделав все цвета менее сочными. Чтобы полностью раскрыть потенциал трассировки лучей, необходим монитор с отличной контрастностью. И это определяется исключительно типом его ЖК-панели. Для производства мониторов сейчас используются панели трех типов: VA, IPS и TN. Наилучшей контрастностью обладают VA-панели, в то время как IPS- и TN-панели попросту уничтожают все преимущества технологии трассировки лучей по отображению света и тени, выводя на экран сероватую картинку без глубокого черного цвета. Кроме того, VA-панели предлагают другие важные для игр преимущества, в том числе низкое время отклика (1 мс), широкие углы обзора и отличную цветопередачу. Они доступны в виде мониторов с эргономичным изогнутым экраном. Поэтому, чтобы испытать все преимущества технологии трассировки лучей, мы настоятельно рекомендуем вам приобрести монитор именно с VA-панелью.
Трассировка лучей: Что это такое и как включить трассировку лучей?
Трассировка лучей: От А до Я
Когда NVIDIA представила новаторское поколение видеокарт GeForce RTX 20 во второй половине 2018 года, это фактически напомнило нам о существовании технологии, так называемая — трассировка лучей. Почему его давно не используют в играх? Неужели это революционное решение в области компьютерной графики? И какое оборудование для этого нужно?
Что такое трассировка лучей?
Трассировка лучей — это сложный метод, который использует отслеживание лучей в зависимости от положения наблюдателя для расчета изображения. Благодаря этому можно очень точно моделировать физически правильные отражения, преломление света и общее освещение данной сцены. Много лет область компьютерной графики ждала настоящего шага вперед. И это произошло с появлением архитектуры NVIDIA Turing, которая первой включала специальные модули для вычислений трассировки лучей.
Однако с точки зрения истории в трассировке лучей нет ничего нового, но до сих пор она использовалась только там, где визуализированные изображения можно было долго ждать. Например, в случае неподвижных изображений или как часть трюков с фильмами. С точки зрения компьютерной графики, необходимо было изобрести оборудование, способное отслеживать лучи света в реальном времени.
Поэтому NVIDIA придумала уже упомянутую архитектуру Тьюринга, которая параллельно с растеризацией учитывает как трассировку RT, так и трассировку лучей. Затем качество вывода еще больше улучшается за счет массового развертывания искусственного интеллекта.
На этом этапе также необходимо указать, что трассировка лучей не входит в игры автоматически, но должна быть добавлена разработчиками игр, что особенно верно в случае старых игр. В предстоящих новостях с потенциально большой аудиторией трассировка лучей активна либо в день выпуска, либо через несколько недель после обновления.
Преимущества трассировки лучей — зачем мне это нужно?
Один из символов компьютерной игровой сцены — стремление к наилучшей графике. А благодаря трассировке лучей сцены выглядят более реалистично. Например, при игре с водой или во время взрывов. А если вы любите бояться, знайте, что даже сама зажженная лампа может придать ужасный оттенок практически любой комнате благодаря более реалистичной визуализации теней.
Обзор наиболее распространенных эффектов трассировки лучей
Понятно, что как только у вас будет подходящее оборудование, вы захотите попробовать трассировку лучей самостоятельно. Конечно, сначала необходимо убедиться, что выбранная игра поддерживает трассировку лучей (доступно на nvidia.com). Затем просто найдите настройки графики в меню игры и выберите один из уровней трассировки лучей.
Обычно доступно три уровня: минимальный, высокий и ультра. Конечно, с выбранным режимом сложность HW возрастает. Например, для популярного Cyberpunk 2077 RTX 2060 рекомендуется для игры в Full HD с включенным минимальным уровнем трассировки лучей. Конечно, для максимального уровня желательно иметь в наличии RTX 3080, что является огромной разницей с финансовой точки зрения.
Однако, если вы не хотите вручную настраивать определенные параметры, мы настоятельно рекомендуем вам использовать приложение GeForce Experience, которое является частью установочного пакета драйвера. GeForce Experience избавляет от хлопот в компьютерных играх, адаптируя графические настройки игры к вашему оборудованию.
NVIDIA использует возможности облачного центра обработки данных для тестирования тысяч конфигураций компьютерного оборудования и поиска наилучшего баланса между производительностью и качеством изображения. Затем он автоматически настраивает персональные настройки графики в зависимости от видеокарты, процессора и монитора вашего ПК.
Влияние трассировки лучей на производительность
Конечно, с сенсационным изменением графики игр требования к используемому оборудованию также возрастут. Как только вы включаете современную игру с активной трассировкой лучей, частота кадров просто улетает. Даже 50%, что может привести к тому, что вы получите где-то 30 FPS, и игра будет неиграбельной.
Однако и здесь есть решение, потому что одновременно с трассировкой лучей у NVIDIA есть технология DLSS. Проще говоря, он вычисляет игровое изображение в более низком разрешении, а затем использует обученный искусственный интеллект для преобразования его в желаемое разрешение.
В случае с AMD вы можете попробовать трассировку лучей на последних картах серии Radeon RX 6000, но мы должны заранее указать, что AMD в этом отношении полностью отстает. Если вы хотите нырнуть на волне трассировки лучей, мы не можем с чистой совестью рекомендовать карты AMD.
Трассировка лучей на картах NVIDIA
Мы уже упоминали, что, несмотря на то, что трассировка лучей существует уже давно, ее реализация в игровой среде была запущена NVIDIA еще в 2018 году. И мы должны признать, что после трех лет упорной работы она пожинает плоды и это заслуженная награда.
Трассировка лучей поддерживает все больше и больше игр. В случае с типичной новой игрой AAA мы больше не можем представить, что она не будет поддерживать трассировку лучей. Благодаря своим продажам и тесному сотрудничеству с разработчиками игр трассировка лучей от NVIDIA стала стандартом в области игровой графики.
Трассировка лучей на картах AMD
Текущая доля AMD на рынке проданных видеокарт составляет 16%. AMD обычно продает более слабые графические процессоры по более низкой цене. Даже с этой точки зрения очевидно, что не хватило места для массового развертывания трассировки лучей. Однако это происходило постепенно, учитывая, что видеокарты AMD используются как в PlayStation 5, так и в новом Xbox SerisX / S.
Производительность видеокарт AMD с включенной трассировкой лучей значительно ниже с аналогичной конфигурацией, чем с NVIDIA. Поэтому летом 2021 года AMD официально запустила FidelityFX Super Resolution, ответ NVIDIA на DLSS. Опять же, это увеличит частоту кадров за счет изменения масштаба изображения от более низкого до более высокого разрешения. Интересно, однако, что функция FidelityFX Super Resolution может использоваться не только для графики от AMD (поддерживаются даже более старые Radeon RX 460), но и для чипов от NVIDIA.
Однако снова необходимо сотрудничество с разработчиками игр, которые должны сначала внедрить это технологически горячее новшество в свои игры. Пока это небольшие десятки игр, но ситуация будет постепенно улучшаться, в том числе и с последующим использованием десятков миллионов проданных игровых приставок нового поколения.
Трассировка лучей и DLSS — связь между ними
Даже если вы имеете честь владеть высококачественной графикой RTX GeForce 3080, в случае активной трассировки лучей у вас, скорее всего, также будет включен DLSS. Именно суперсэмплинг глубокого обучения является ключом к постепенному увеличению частоты кадров при сохранении высокой степени графической детализации.
Если немного заглянуть под прикрытие всей технологии DLSS, это чрезвычайно сложный вопрос, в котором участвуют тысячи разработчиков, математиков и ученых по всему миру. Фреймворк нейронной графики NGX обучает нейронную сеть десятками тысяч красивых изображений с высоким разрешением 16K (до 64 раз больше пикселей, чем разрешение Full HD), которые были визуализированы суперкомпьютером с очень низкой частотой кадров.
Основываясь на знаниях, полученных в результате многих и многих часов обучения, сеть может затем построить красивые изображения с высоким разрешением из входных данных с более низким разрешением. В результате расчетное изображение часто может быть лучше исходного.
К сожалению, это еще не общий ИИ, который можно применить ко всем играм. Мы можем увидеть это когда-нибудь в будущем, в конце концов, сама технология DLSS за три года своей жизни добилась огромного прогресса. Факт остается фактом: DLSS должна поддерживаться самой игрой. Его нельзя принудительно применить извне с помощью элементов управления в играх, которые его не поддерживают, или в более старых играх. Поэтому необходимо привлекать разработчиков отдельных игр.
Однако, например, интегрированная поддержка популярного игрового движка Unreal Engine 4 вселяет большие надежды на то, что DLSS будет распространяться быстрее и на большее количество игр, что также происходит постепенно.
Трассировка лучей. Современные возможности видеокарт
Содержание
Содержание
Технология построения реалистичных сцен методом трассировки лучей (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, презентованной ранее.
Краткие итоги
С появлением трассировки лучей в игровом сегменте, в первую очередь реализация отражений стала значительно правдивей для пользователя и существенно проще для производителя контента. Во-вторых — появились довольно правдоподобные алгоритмы рассеивания отражений. В-третьих, улучшилось освещение сцен. Как бы не ограничивались и аппроксимировались расчеты освещенности сцены, все же созданные по технологии рейтрейсинга они более правдоподобны и наиболее приближены к реалиям. К тому же, тени созданные по этой технологии «умеют» окрашиваться в зависимости от расположенных поблизости источников света.