Как стать автором
Обновить
135.04
Группа компаний X-Com
X-Com — крупный российский ИТ-холдинг

Что такое трассировка лучей, как она устроена и так ли нужна на самом деле

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров6.9K
Трассировка лучей делает картинку лучше и реалистичнее, но не всегда это критически важно
Трассировка лучей делает картинку лучше и реалистичнее, но не всегда это критически важно

Что самое главное в изображении? Конечно, его качество. Чем ближе к реальности выглядит объект на картинке, тем визуально привлекательнее он нам кажется. Во многом на восприятие изображения влияет освещение и затенение, которого в компьютерной графике помогает добиться трассировка лучей. О ней мы сегодня и поговорим.

Трассировка лучей (Ray Tracing) - это технология рендеринга изображений, которая позволяет достичь высокого уровня реалистичности благодаря имитации физики поведения света и теней. Именно благодаря трассировке компьютерная графика получается более сочной и натуральной, даже если изначально создавалась не в стиле реализма.

Ray Tracing поддерживают почти все современные видеокарты, но иногда не требуется даже их присутствие. Например, новые компьютеры Apple на базе процессоров M3 и новее поддерживают RT на уровне встроенного видеочипа.

Основы Ray Tracing: что дает трассировка лучей

Несмотря на то что в контексте трассировки лучей речь идет об освещении, те самые лучи, которые определяют название технологии, - это всего лишь математическая абстракция, представляющая собой прямые линии, которые могут использоваться для симуляции различных оптических явлений:

  • Первичные лучи (primary rays)

  • Теневые лучи (shadow rays)

  • Вторичные лучи (secondary rays), включая отражение и преломление

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

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

Как работает трассировка лучей

С глубинной точки зрения трассировка ближе к физике, чем к творчеству
С глубинной точки зрения трассировка ближе к физике, чем к творчеству

Процесс трассировки лучей можно разделить на несколько ключевых этапов:

  1. Генерация лучей:

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

  • Направление лучей определяется в соответствии с полем зрения камеры и разрешением изображения.

  • Дополнительные лучи могут быть сгенерированы для сглаживания (антиалиасинга) или расчета эффектов глубины резкости.

  1. Поиск пересечений:

  • Каждый луч проверяется на пересечение с объектами 3D-сцены.

  • В точке пересечения луча и объекта вычисляются параметры: координаты, нормаль поверхности, материал и т.д.

  1. Расчет освещения:

  • В точке пересечения определяется освещенность поверхности на основе свойств материала и источников света.

  • Для этого могут использоваться локальные модели освещения (например, модель Фонга) или глобальные методы (например, фотонные карты).

  • Учитываются эффекты прямого освещения, отражений, преломлений и затенения.

  1. Вторичные лучи:

  • Для симуляции отражений и преломлений света генерируются вторичные лучи из точек пересечения.

  • Направление вторичных лучей определяется законами отражения и преломления света.

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

  1. Затенение и освещение:

  • Для расчета теней испускаются тестовые лучи из точки пересечения к источникам света.

  • Если тестовый луч блокируется другими объектами сцены, точка считается затененной.

  • Мягкие тени достигаются путем испускания множества тестовых лучей к площадным источникам света.

  1. Интеграция цвета:

  • Финальный цвет пикселя вычисляется путем интеграции (усреднения) цветовых вкладов всех лучей, прошедших через этот пиксель.

  • При необходимости применяются пост-эффекты, такие как тональная компрессия, размытие или глубина резкости.

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

Что такое трассировка лучей и какие эффекты она дает

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

Аппаратное ускорение преодолевает ограничения производительности трассировки лучей несколькими способами:

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

  • Во-вторых, аппаратная поддержка быстро создает и обрабатывает специальные структуры данных, такие как BVH, значительно ускоряя поиск пересечений. Это сокращает ресурсозатраты, связанные с трассировкой лучей, и повышает общую производительность.

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

Где используется трассировка лучей

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

Кино

В киноиндустрии трассировка лучей внесла значительные изменения в процесс создания визуальных эффектов. Один из примеров — фильм "Мстители: Война бесконечности", где данная технология использовалась для визуализации Таноса. Трассировка лучей позволила создать высокодетализированные и реалистичные отражения на его броне и коже, а также точно воссоздать игру света и теней на его лице и фигуре в различных сценах. Это значительно усилило визуальное восприятие персонажа и повысило эмоциональное воздействие его присутствия в фильме.

Видеоигры

Внедрение трассировки лучей в игровые движки, такие как Unreal Engine и Unity, позволило достичь беспрецедентного уровня реалистичности геймплея. Примером могут служить игры Watch Dogs: Legion и Cyberpunk 2077, где использование трассировки лучей значительно улучшило качество освещения, теней и отражений, делая игровой мир по-настоящему вовлекающим.

Тут трассировка лучей включена
Тут трассировка лучей включена
А здесь выключена
А здесь выключена

Архитектурная визуализация

С трассировкой лучей проект выглядит визуально красивее
С трассировкой лучей проект выглядит визуально красивее

Архитекторы используют трассировку лучей для создания реалистичных представлений будущих проектов. Это позволяет клиентам лучше понять и оценить архитектурные решения до начала строительства.

Дизайн

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

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

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

Nvidia является признанным лидером отрасли, который предложил выделенные RT-ядра в своих видеокартах, построенных на базе архитектуры Turing (серия RTX 20) в 2018 году. К настоящему времени было выпущено еще два поколения видеокарт, где технология трассировки лучей стала еще более зрелой, а также получила широкую оптимизацию под игры и приложения.

Принадлежность видеокарт к одному поколению и единая графическая архитектура не означают, что трассировка лучей в их случае работает одинаково. Например, RTX 4090 является одной из самых мощных моделей в линейке Nvidia, использующей архитектуру Ada Lovelace. Она обладает значительно большим количеством ядер RT (Ray Tracing) третьего поколения, чем, скажем, RTX 4060. Это позволяет старшей карточке обрабатывать трассировку лучей на высоких настройках графики в режиме реального времени без значительной потери в частоте кадров даже в самых требовательных играх и приложениях.

RTX в названии видеокарт Nvidia указывает на поддержку аппаратной трассировки лучей
RTX в названии видеокарт Nvidia указывает на поддержку аппаратной трассировки лучей

RTX 4060, хотя и принадлежит к тому же семейству Ada Lovelace, является более бюджетной моделью с меньшим количеством RT- и CUDA-ядер. Хотя она поддерживает трассировку лучей на аппаратном уровне и способна грамотно использовать ее потенциал в совместимых играх и приложениях, эффект от этого будет заметно ниже. По сравнению с RTX 4090 модели RTX 4060 может потребоваться снижение настроек графики или разрешения для поддержания высокой частоты кадров при включенной трассировке лучей.

У видеокарт AMD поддержка трассировки лучей появилась с переходом на архитектуру RDNA 2 с серии RX 6000. У них, в отличие от решений Nvidia, нет выделенных RT-ядер, только унифицированные вычислительные блоки. Из-за этого они вынуждены использовать больше ресурсов GPU, что может приводить к снижению производительности. Несмотря на значительные улучшения, которые произошли с картами AMD за последние годы, Nvidia все еще превосходит их в эффективности трассировки лучей.

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

Видеокарты Intel, вышедшие на рынок позже всех остальных, тоже предлагает аппаратную поддержку трассировки лучей. Это стало возможно благодаря архитектуре Xe HPG в Arc-серии, которая дебютировала в 2022 году. Как и карты Nvidia, линейка Intel Arc обладает выделенными RT-блоками. 

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

При выборе видеокарты для трассировки лучей следует учитывать бюджет и целевые характеристики, такие как разрешение и частота кадров. Высокопроизводительные карты обеспечат лучший результат в 4K, но будут стоить дороже. Также важно проверять совместимость с конкретными играми и приложениями и учитывать, что для профессионалов в области графики и визуализации есть специализированные видеокарты, такие как Nvidia Quadro или AMD Radeon Pro.

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

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

Если не видеть рядом картинку с трассировкой лучей, можно подумать, что так и надо
Если не видеть рядом картинку с трассировкой лучей, можно подумать, что так и надо

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

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

Что касается превосходства видеокарт Nvidia в трассировке лучей, то это не делает их безусловным эталоном. Каждый производитель имеет свои сильные стороны и предлагает различные функции и технологии. Например, видеокарты AMD отличаются хорошим соотношением цены и производительности, а также поддерживают технологии, такие как FidelityFX Super Resolution для повышения производительности.

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

Теги:
Хабы:
0
Комментарии14

Публикации

Информация

Сайт
www.xcom.ru
Дата регистрации
Дата основания
1994
Численность
201–500 человек
Местоположение
Россия
Представитель
Андрей Митрофанов