Вышло крупнейшее обновление DirectX для трассировки лучей с 2018 года
Добавили три технологии:
- Clustered Geometry (CLAS) - разбивает геометрию объектов на небольшие повторно использовать блоки. Вместо того чтобы заново строить структуры для огромного количества треугольников, GPU использует уже подготовленные кластеры. - Partitioned TLAS (PTLAS) - делит сцену на отдельные области. Если дерево качнулось от ветра, не нужно перестраивать структуры трассировки для всего игрового мира. - GPU-driven acceleration structure builds - позволяет самой видеокарте управлять построением и обновлением структур трассировки, сокращая работу CPU.
Раньше при изменении объектов в игре видеокарте приходилось заново пересчитывать множество данных, необходимых для трассировки лучей. Это занимало много времени и требовало большого количества видеопамяти, особенно в играх с детализированными моделями, растительностью и анимацией. Теперь Microsoft внедрила новую кластерную систему обработки геометрии, которая позволяет повторно использовать уже подготовленные данные и не пересчитывать всё с нуля. Результаты впечатляют: в демонстрационном тесте время обработки сократилось с 788 до 3,11 мс, расход видеопамяти уменьшился почти на 90% (с 7,5 до 0,77 ГБ), а производительность выросла с 1,2 до 79 FPS. Трассировка лучей может стать гораздо менее требовательной к видеокарте, сохраняя при этом высокую детализацию изображения. Правда, для появления таких улучшений в реальных играх разработчикам ещё предстоит внедрить новую технологию.
В Microsoft подчеркивают, что этот синтетический тест смоделирован для условий, где кластеризация максимально эффективна, поэтому в реальных играх прирост будет "варьироваться".
Так же Microsoft подчеркивает, что кластеризованный пайплайн не требует новых аппаратных инструкций сверх уже реализованных в чипах с поддержкой DXR. Ранее похожие техники применялись вендорами изолированно - примером служит проприетарная технология RTX Mega Geometry от NVIDIA, показанная в Gears of War: E-Day. Текущее обновление стандартизирует подход на уровне API DirectX 12.