DirectX Raytracing (DXR) – это новая функция, представленная Microsoft для DirectX 12 в 2018 году – трассировка лучей в реальном времени. Версия 1.0 DXR является базовой. Можно сказать, что она была разработана вокруг аппаратной реализации архитектуры Тьюринга.
Версия 1.1 расширяет возможности программного обеспечения DirectX 12 в трассировке лучей, делая его более эффективным и более удобным для разработчиков. Есть три основных момента.
Разрешить GPU напрямую вызывать DXR.
Шейдер, работающий на графическом процессоре, может вызывать трассировку лучей напрямую, без повторного вызова процессора. Эта функция очень полезна для сцен с адаптивной трассировкой лучей, особенно при отбраковке, сортировке, классификации и прореживании на основе шейдеров. По сути, трассировка лучей может быть полностью подготовлена на GPU и генерироваться немедленно.
Загрузка raytraced шейдеров по запросу.
Когда игрок движется в игровом мире и новые объекты становятся видимыми, потоковый загрузчик может загружать новые шейдеры трассировки лучей, повышая эффективность процесса обработки.
Встроенная трассировка лучей.
Встроенная трассировка лучей – это альтернативная форма трассировки лучей, основанная на динамических шейдерах, которую можно понимать как упрощенную трассировку лучей. Разработчики будут иметь больший контроль над процессом трассировки и могут вызывать его на любом этапе затенения. Его можно смешать с традиционной динамической трассировкой лучей на основе шейдеров. Для простых сцен встроенная трассировка лучей обеспечит лучшую производительность, а в сложных сценах динамическая трассировка лучей отработает быстрее.
Эти функции DirectX 12 Ultimate, очевидно, преследуют две общие цели: одна заключается в улучшении контроля разработчика над аппаратным обеспечением, другая – в повышении общей вычислительной эффективности. Это также относится к консолям следующего поколения.
Источник: