No Image

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

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

Трассировка лучей (англ. Ray tracing ; рейтрейсинг) — один из методов геометрической оптики — исследование оптических систем путём отслеживания взаимодействия отдельных лучей с поверхностями. В узком смысле — технология построения изображения трёхмерных моделей в компьютерных программах, при которых отслеживается обратная траектория распространения луча (от экрана к источнику).

Трассировка лучей в компьютерных играх — это решение для создания реалистичного освещения, отражений и теней, обеспечивающее более высокий уровень реализма по сравнению с традиционными способами рендеринга. Turing стала первой архитектурой, позволяющей проводить трассировку лучей в реальном времени на GPU. [1]

Содержание

Достоинства и недостатки текущих реализаций метода [ править | править код ]

Достоинства [ править | править код ]

  • возможность рендеринга гладких объектов без аппроксимации их полигональными поверхностями (например, треугольниками);
  • вычислительная сложность метода слабо зависит от сложности сцены;
  • высокая алгоритмическая распараллеливаемость вычислений — можно параллельно и независимо трассировать два и более лучей, разделять участки (зоны экрана) для трассирования на разных узлах кластера и т.д;
  • отсечение невидимых поверхностей, перспектива и корректное изменения поля зрения являются логическим следствием алгоритма.

Недостатки [ править | править код ]

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

Ray Tracing или трассировка лучей — одна из редких технологий компьютерной графики, принцип которой довольно просто объяснить. Достаточно посмотреть вокруг: все, что мы видим — это отраженные от объектов лучи света, улавливаемые нашими глазами. Даже сейчас, когда вы читаете этот текст, миллиарды фотонов достигают ваших зрительных органов, вся эта информация обрабатывается мозгом, и из нее и создается «изображение» в вашей голове.

В общем, да, можно даже сказать, что вся видимая нами реальность — это лишь отраженный свет.

Трассировка лучей — это технология рендеринга (то есть отрисовки, создания) трехмерной графики, где используется этот принцип. Специальный алгоритм отслеживает путь луча от объекта освещения, а затем создает симуляцию того, как он взаимодействует с объектами: отражается, преломляется и так далее.

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

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

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

В общем, если Ray Tracing — это симуляция, то растеризация — симуляция симуляции. Однако у трассировки лучей есть один гигантский недостаток — она невероятно, изуверски требовательно к ресурсам. Обсчитать такое количество лучей, отследить путь каждого из них, вычислить преломления, воссоздать эффект прозрачности, — все это для видеокарты очень непросто. При создании CGI-графики и трехмерных мультфильмов с этим мирятся — там один кадр может сутки рендериться, но вот в играх, где считаться все должно в реальном времени, да еще и при приемлемой частоте кадров… Именно поэтому трассировка лучей долгое время была «Священным Граалем» игрового 3D. И именно поэтому современные трехмерные мультфильмы такие красивые, а некоторые вообще выглядят так, словно кто-то поставил камеру в волшебный мир и заснял все прямо как есть.

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

Читайте также:  Что делает smart switch

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

Возьмем, к примеру, пару одинаковых сцен (первый снимок — с выключенной трассировкой лучей, второй — с включенной):

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К-разрешении и на максимальных графических настройках.

Читайте также:  Создание частной сети windows 10

«Но там, где стол был яств, там гроб стоит» — если первая проблема решается усердной работой над оптимизацией игр, то вторая проблема куда более глобальная – на сегодняшний день существует не так много игр с полной реализацией рейтрейсинга. Мы специально подчеркнули слово «полной» т.к. на сегодня есть всего пара игр, где трассировка лучей представлена по максимуму. Остальным повезло чуть меньше. К примеру, в Battlefield V реализованы только отражения и эффекты преломления, в Shadow of the Tomb Raider есть только реалистичные тени, обрабатывающиеся по технологии RTX, а в Metro: Exodus – глобальное освещение и затенение.

Та самые игры, где рейтрейсинг представлен полностью и во всей красе – 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 и др.

Quake II RTX также показал, что трассировка при возрождении классики имеет место быть, но мы бы не сильно надеялись на то, что разработчики массово побегут перевыпускать классические проекты, прикручивая к ним DXR. Всё-таки помимо рейтрейсинга, такие игры требуют куда большего обновления. Мы сейчас про графическую составляющую, где нужно полностью перерабатывать текстуры и модели. Эта работа по большей части «ручная» и требует достаточно много сил и времени. А вот, что действительно делается уже сейчас, так это пользовательские модификации для популярных игр, куда скажем так, «прикручивается» симуляция трассировки лучей. Моддеры и энтузиасты проделывают огромную работу. Взять, например, The Witcher 3: Wild Hunt и GTA 5, которые с помощью DXR и множества модов преобразились настолько, что от игр остался только костяк — геймплей, да сюжет.

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

Комментировать
0 просмотров
Комментариев нет, будьте первым кто его оставит

Это интересно
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
No Image Компьютеры
0 комментариев
Adblock detector