Обновление DirectX: прорыв в трассировке лучей и экономия VRAM до 90%
Microsoft представила Clustered Geometry и PTLAS — технологии, которые радикально ускоряют трассировку лучей и снижают нагрузку на видеопамять.
Microsoft представила превью новых функций для API DirectX Raytracing (DXR): Clustered Geometry и Partitioned Top-Level Acceleration Structures (PTLAS). Эти технологии нацелены на снижение вычислительной нагрузки и потребления памяти при использовании трассировки лучей, и, что важно, они должны поддерживаться уже существующими видеокартами через обновления драйверов.
Традиционно трассировка лучей в играх опирается на иерархию объемов (BVH). Процесс разделен на два уровня: Bottom-Level (BLAS), описывающий геометрию отдельных объектов, и Top-Level (TLAS), определяющий их положение в мире. Проблема в том, что в современных открытых мирах обновление TLAS требует огромных ресурсов GPU и видеопамяти, так как системе приходится пересчитывать данные при движении объектов.
Как работают новые функции
Технология PTLAS (Partitioned TLAS) решает проблему масштабируемости, разделяя игровой мир на зоны. Теперь при изменениях в конкретной области GPU нужно пересчитывать данные только для этой зоны, не затрагивая остальной мир. Вторая новинка, Clustered Geometry, работает с BLAS. Она позволяет движку повторно использовать готовые кластеры геометрии вместо дублирования данных для разных уровней детализации (LOD). По заявлениям Microsoft, это может снизить потребление видеопамяти, выделяемой именно под нужды трассировки лучей, на внушительные 90%.
Результаты тестов и совместимость
В демонстрационном тесте на базе AMD Radeon RX 9070 использование обеих технологий показало колоссальный прирост. Время построения структур сократилось с 788 мс до 3,11 мс, а частота кадров подскочила с 1,2 до 79 FPS. При этом потребление VRAM в рамках трассировки упало на 89,7% (с 774 МБ до 7,5 ГБ — стоит отметить, что в тесте объем данных в контексте структуры вырос, но эффективность использования ресурсов в рамках сценария показала резкое изменение нагрузки).
Важно отметить, что эти функции могут работать как вместе, так и по отдельности. Поддержка новых возможностей обеспечат следующие архитектуры после выхода соответствующих драйверов: