Трассировка лучей DirectX - DirectX Raytracing

Трассировка лучей DirectX (DXR) - это функция, представленная в Microsoft с DirectX 12 интерфейс прикладного программирования (API), который реализует трассировка лучей, для рендеринга видео графики. DXR был выпущен с Windows 10 Октябрьское обновление (версия 1809) от 10 октября 2018 г. Требуется AMD Radeon RX 6000 или NVIDIA RTX 20 - или 30 -серии видеокарта, который предназначен для обработки высокой вычислительной нагрузки, используемой для трассировки лучей. DXR в настоящее время является единственным общедоступным методом, который может включить трассировку лучей в реальном времени на компьютерах.[1][2]

Дополнения к DirectX 12

DirectX logo.png

С появлением DXR в октябре в API DirectX 12 были добавлены четыре новые функции:[2]

  1. Структура ускорения представляет собой представление трехмерной среды, эффективно отформатированной для графического процессора. Эта среда - плоскость, которая используется для создания начальных точек. Структура позволяет вносить изменения и имеет оптимизированный обход лучей.
  2. Список команд DispatchRays, это начало лучей, которые используются для создания графики отражения. Они используются графическим процессором для запуска процесса трассировки лучей.
  3. Новый HLSL шейдеры, генерация лучей, ближайшее попадание, любое попадание, и скучать , которые используются, описывают в вычислительном отношении, что делает DXR при рендеринге трассировки лучей. Эти шейдеры используют TraceRay функция HLSL для отслеживания лучей в окружающей среде. Когда луч взаимодействует с сгенерированной плоскостью, он может вызывать один из многих выбранных шейдеров попаданий или промахов. Вариация шейдеров попаданий и промахов создает разные текстуры.
  4. Состояние конвейера трассировки лучей, аналог текущих объектов состояния конвейера Graphics и Compute. Объекты состояния конвейера - это параметры оборудования, которые определяют, как графический процессор интерпретирует и отображает информацию.[3]

Технические подробности

Пример сцены, визуализированной с использованием трассировки лучей

DXR начинается с отправки луча из каждого пикселя в заданной плоскости и вычисляет, какие объекты на плоскости попадают под луч в первую очередь. Далее DXR алгоритм оценивает количество света там, где луч пересекает объект, и прикрепляет это вычисление к объекту. Объекты могут иметь разные свойства, которые будут поглощать или отражать свет с разной скоростью. Чтобы предотвратить бесконечные отскоки луча, DXR остановит вычисления после определенного количества пересечений. Лучи, которые никогда не взаимодействуют с объектом, отслеживаются по тому, как далеко они ушли. Это делается для того, чтобы алгоритм понимал, когда лучи зашли слишком далеко.[2]

Игры

Текущие игровые движки, поддерживающие DXR:[2]

Трассировка лучей в видеоигре Minecraft

В настоящее время только 14 видеоигр используют DXR, в том числе:[4]

Обновления

DXR был выпущен для широкой публики 10 октября 2018 г. с октябрьским обновлением Windows 10 (версия 1809).[1]

Первое крупное обновление для DXR было сделано 27 мая 2020 года с обновлением Windows 10 May (версия 2004). В майском обновлении реализован DXR Tier 1.1, который позволяет игровым движкам производить расчеты в реальном времени, что делает графику трассировки лучей более быстрой и эффективной.[5][6]

использованная литература

  1. ^ а б «Трассировка лучей DirectX и обновление Windows 10 October 2018 Update». Блог разработчиков DirectX. 2018-10-02. Получено 2020-10-27.
  2. ^ а б c d "Представляем Microsoft DirectX Raytracing!". Блог разработчиков DirectX. 2018-03-19. Получено 2020-10-27.
  3. ^ Стивуимс. «Управление состоянием графического конвейера в Direct3D 12 - приложения Win32». docs.microsoft.com. Получено 2020-11-16.
  4. ^ 50 игр с RTX и DLSS - IGN, получено 2020-10-27
  5. ^ «Windows 10 May 2020 v2004 20H1 Feature Update Packs DirectX 12 Ultimate, улучшенная поддержка трассировки лучей, DirectX Mesh Shader и многие другие функции для компьютерных игр». Appuals.com. 2020-05-12. Получено 2020-10-27.
  6. ^ "DirectX Raytracing (DXR) Tier 1.1". Блог разработчиков DirectX. 2019-11-06. Получено 2020-10-27.

внешние ссылки