Трассировка лучей 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
С появлением DXR в октябре в API DirectX 12 были добавлены четыре новые функции:[2]
- Структура ускорения представляет собой представление трехмерной среды, эффективно отформатированной для графического процессора. Эта среда - плоскость, которая используется для создания начальных точек. Структура позволяет вносить изменения и имеет оптимизированный обход лучей.
- Список команд DispatchRays, это начало лучей, которые используются для создания графики отражения. Они используются графическим процессором для запуска процесса трассировки лучей.
- Новый HLSL шейдеры, генерация лучей, ближайшее попадание, любое попадание, и скучать , которые используются, описывают в вычислительном отношении, что делает DXR при рендеринге трассировки лучей. Эти шейдеры используют TraceRay функция HLSL для отслеживания лучей в окружающей среде. Когда луч взаимодействует с сгенерированной плоскостью, он может вызывать один из многих выбранных шейдеров попаданий или промахов. Вариация шейдеров попаданий и промахов создает разные текстуры.
- Состояние конвейера трассировки лучей, аналог текущих объектов состояния конвейера Graphics и Compute. Объекты состояния конвейера - это параметры оборудования, которые определяют, как графический процессор интерпретирует и отображает информацию.[3]
Технические подробности
DXR начинается с отправки луча из каждого пикселя в заданной плоскости и вычисляет, какие объекты на плоскости попадают под луч в первую очередь. Далее DXR алгоритм оценивает количество света там, где луч пересекает объект, и прикрепляет это вычисление к объекту. Объекты могут иметь разные свойства, которые будут поглощать или отражать свет с разной скоростью. Чтобы предотвратить бесконечные отскоки луча, DXR остановит вычисления после определенного количества пересечений. Лучи, которые никогда не взаимодействуют с объектом, отслеживаются по тому, как далеко они ушли. Это делается для того, чтобы алгоритм понимал, когда лучи зашли слишком далеко.[2]
Игры
Текущие игровые движки, поддерживающие DXR:[2]
В настоящее время только 14 видеоигр используют DXR, в том числе:[4]
- Среди зла
- Battlefield 5
- Яркая память
- Call of Duty: Modern Warfare
- Контроль
- Избавь нас на Луну
- Fortnite
- MechWarrior 5: Наемники
- Метро: исход
- Шахтерское ремесло
- Quake II RTX
- Тень Расхитительницы гробниц
- Оставайся в свете
- Wolfenstein: Youngblood
Обновления
DXR был выпущен для широкой публики 10 октября 2018 г. с октябрьским обновлением Windows 10 (версия 1809).[1]
Первое крупное обновление для DXR было сделано 27 мая 2020 года с обновлением Windows 10 May (версия 2004). В майском обновлении реализован DXR Tier 1.1, который позволяет игровым движкам производить расчеты в реальном времени, что делает графику трассировки лучей более быстрой и эффективной.[5][6]
использованная литература
- ^ а б «Трассировка лучей DirectX и обновление Windows 10 October 2018 Update». Блог разработчиков DirectX. 2018-10-02. Получено 2020-10-27.
- ^ а б c d "Представляем Microsoft DirectX Raytracing!". Блог разработчиков DirectX. 2018-03-19. Получено 2020-10-27.
- ^ Стивуимс. «Управление состоянием графического конвейера в Direct3D 12 - приложения Win32». docs.microsoft.com. Получено 2020-11-16.
- ^ 50 игр с RTX и DLSS - IGN, получено 2020-10-27
- ^ «Windows 10 May 2020 v2004 20H1 Feature Update Packs DirectX 12 Ultimate, улучшенная поддержка трассировки лучей, DirectX Mesh Shader и многие другие функции для компьютерных игр». Appuals.com. 2020-05-12. Получено 2020-10-27.
- ^ "DirectX Raytracing (DXR) Tier 1.1". Блог разработчиков DirectX. 2019-11-06. Получено 2020-10-27.