Новые технологии Clustered Geometry и Partitioned TLAS позволят видеокартам эффективнее обрабатывать сложную геометрию в играх. В отдельных тестах Microsoft производительность трассировки лучей выросла более чем в 65 раз, а потребление памяти сократилось почти на 90%. При этом обновление не требует покупки нового оборудования.

Трассировка лучей (Ray Tracing) позволяет создавать в компьютерных играх реалистичное освещение, отражения и тени. Однако за высокое качество изображения приходится платить значительными вычислительными затратами и повышенным потреблением видеопамяти. Особенно сложно приходится графическим процессорам, когда в виртуальном мире одновременно движется множество объектов, меняется геометрия моделей и появляются новые детали окружения.
Microsoft намерена существенно упростить эту задачу. Компания представила два новых механизма для DirectX Raytracing — Clustered Geometry и Partitioned TLAS. По замыслу разработчиков, они позволят значительно ускорить обработку геометрии и сократить объем памяти, необходимый для трассировки лучей. Причем воспользоваться преимуществами новых технологий смогут существующие видеокарты.
Почему трассировка лучей требует так много ресурсов?
Чтобы понять значение нововведения, стоит разобраться в том, как современные видеокарты обрабатывают трассировку лучей.
При использовании этой технологии графический процессор рассчитывает траектории световых лучей, определяет точки их столкновения с поверхностями и моделирует дальнейшее распространение света. Для ускорения вычислений GPU использует специальные структуры данных — структуры ускорения (Acceleration Structures).
Они представляют собой своего рода пространственную карту виртуального мира, позволяющую быстро определить, с какими объектами пересекается тот или иной луч. Без таких структур видеокарте пришлось бы проверять огромное количество геометрических элементов по отдельности, что сделало бы трассировку лучей практически непосильной задачей.
Проблема заключается в том, что игровое окружение постоянно меняется. Персонажи двигаются, деревья раскачиваются на ветру, разрушаются объекты, а модели постепенно приобретают дополнительные детали по мере приближения камеры.
При каждом существенном изменении геометрии графическому процессору приходится обновлять соответствующие структуры ускорения. В традиционной реализации это может означать практически полную перестройку структуры для конкретного объекта. Такие операции отнимают время и требуют дополнительной видеопамяти.
Поэтому разработчики нередко используют упрощенные копии игровых моделей с уменьшенным количеством полигонов. Они позволяют снизить вычислительную нагрузку, но одновременно ограничивают точность трассировки лучей.
Clustered Geometry: повторное использование готовых элементов
Первое нововведение Microsoft называется Clustered Geometry. Его основная идея заключается в том, чтобы отказаться от постоянного пересоздания структур ускорения и научить графический процессор повторно использовать уже подготовленные элементы геометрии.
Технология разбивает трехмерные модели на небольшие фрагменты — кластеры, каждый из которых может содержать до 256 треугольников. Такие кластеры создаются заранее и сохраняются для дальнейшего использования.
Когда объект изменяется, видеокарте больше не обязательно перестраивать всю его структуру с нуля. Вместо этого она может повторно собрать модель из уже существующих кластеров или обновить только те фрагменты, которые действительно изменились.
Это особенно полезно для динамических сцен, в которых множество объектов постоянно меняют свое положение или форму. Например, если в игре раскачиваются деревья, нет необходимости каждый раз заново обрабатывать всю их геометрию. Достаточно обновить соответствующие элементы.
В результате сокращается объем повторяющихся вычислений, ускоряется подготовка данных для трассировки лучей и уменьшается нагрузка на видеопамять.
Partitioned TLAS: обновление только изменившихся участков мира
Второй механизм получил название Partitioned TLAS. Он решает похожую задачу, но работает на более высоком уровне — с пространственной структурой всей игровой сцены.
TLAS (Top-Level Acceleration Structure) — это структура ускорения верхнего уровня. Она содержит информацию о расположении объектов в виртуальном мире и помогает графическому процессору быстро определять, какие из них могут пересекаться с конкретным лучом.
В традиционной системе изменение объектов может потребовать обновления значительной части этой структуры. Partitioned TLAS предлагает другой подход: разбить виртуальный мир на отдельные пространственные области.
Теперь при каждом кадре видеокарта может обновлять только те участки, в которых действительно произошло движение или изменение объектов. Остальные области сохраняют прежнее состояние и не требуют повторной обработки.
В сочетании с Clustered Geometry этот механизм должен существенно уменьшить объем работы, которую графический процессор выполняет при подготовке сцены к трассировке лучей.
Результаты тестирования: производительность выросла более чем в 65 раз
Microsoft продемонстрировала возможности новых технологий на собственном тестовом примере с использованием видеокарты AMD Radeon RX 9070.
Результаты оказались впечатляющими. При переходе от традиционной перестройки структур ускорения к кластерной геометрии частота кадров увеличилась с 1,2 до 79 кадров в секунду.
Еще заметнее оказалась разница во времени подготовки данных для трассировки лучей. Если раньше на эту операцию уходило около 788 миллисекунд на кадр, то с использованием новой технологии показатель сократился до немногим более 3 миллисекунд.
Изменилась и потребность в видеопамяти. Объем памяти, необходимый для хранения соответствующих структур ускорения, уменьшился примерно с 7,5 ГБ до 774 МБ. Это сокращение приблизительно на 90%.
Впрочем, Microsoft отдельно предупреждает, что не стоит воспринимать эти цифры как обещание аналогичного ускорения во всех компьютерных играх. Речь идет о результатах конкретного демонстрационного теста, а реальные показатели будут зависеть от особенностей игрового движка, сложности сцены и реализации технологии.
Есть и дополнительный нюанс: кластерная обработка требует значительно большего объема временной рабочей памяти (scratch memory). Разработчикам придется учитывать эту особенность при проектировании игр и распределении ресурсов видеокарты.
Nvidia уже использует похожую технологию
Интересно, что сама идея кластерной обработки геометрии не является совершенно новой. Компания Nvidia еще в прошлом году представила собственную технологию RTX Mega Geometry, основанную на схожем принципе.
Она уже применялась в таких проектах, как Alan Wake 2, где позволила улучшить одновременно производительность и качество изображения.
Еще один показательный пример — Gears of War: E-Day. В этой игре технология используется для трассировки лучей на основе полноценной геометрии Nanite из Unreal Engine 5, вместо упрощенных статичных моделей, к которым движок обычно прибегает для снижения нагрузки.
Главное отличие решения Microsoft заключается в том, что теперь подобный механизм становится частью DirectX. Это означает, что разработчики смогут использовать единую программную реализацию для видеокарт разных производителей, а не создавать отдельные решения под конкретные графические архитектуры.
Какие видеокарты получат поддержку?
Одно из главных преимуществ нововведения — отсутствие необходимости покупать новое оборудование.
Согласно информации Microsoft, технология поддерживается следующими графическими решениями:
- Nvidia: все видеокарты семейства GeForce RTX.
- Intel: видеокарты Arc серии B, а также современные процессоры Core Ultra со встроенной графикой.
- AMD: на данный момент в список включена серия Radeon RX 9000.
Таким образом, обновление DirectX потенциально способно принести пользу довольно широкому кругу пользователей. Однако конкретные возможности и производительность будут зависеть от поддержки со стороны драйверов, игровых движков и самих разработчиков.
Когда технология появится в компьютерных играх?
Пока торопиться с ожиданиями не стоит. Clustered Geometry и Partitioned TLAS находятся на стадии предварительной версии (Preview). Для активации новых возможностей требуется включить режим разработчика Windows (Windows Developer Mode).
Это означает, что массовое появление игр с поддержкой обновленной системы трассировки лучей произойдет еще не скоро. Разработчикам предстоит интегрировать новые механизмы в игровые движки, адаптировать обработку геометрии и оптимизировать использование памяти.
Кроме того, даже существующая реализация Nvidia RTX Mega Geometry предъявляет определенные требования к оборудованию. Например, для ее использования в Gears of War: E-Day необходима видеокарта GeForce с объемом видеопамяти не менее 12 ГБ.
Новый этап развития трассировки лучей
Предстоящие изменения в DirectX Raytracing могут оказаться одним из наиболее значимых шагов в развитии технологии со времени ее появления в 2018 году.
Вместо простого увеличения вычислительной мощности видеокарт Microsoft предлагает более рационально использовать уже имеющиеся ресурсы. Если новая архитектура обработки геометрии получит широкое распространение, разработчики смогут создавать более детализированные игровые миры с реалистичным освещением, не сталкиваясь с прежними ограничениями по производительности и объему видеопамяти.
Особенно важно, что речь идет не о технологии, требующей исключительно нового поколения GPU. При достаточной поддержке со стороны производителей и разработчиков игр преимущества обновления смогут получить владельцы уже существующих видеокарт.
