AMD сократила объём потребляемой видеопамяти в 47 раз при включённой трассировке лучей

AMD показала довольно впечатляющую исследовательскую разработку, которая может заметно упростить жизнь разработчикам при работе с трассировкой лучей в сложных анимированных сценах. Речь идёт о методе с тетраэдрическими клетками (Tetrahedral Cages).

Суть в том, что плотную геометрию заключают в относительно простые деформируемые тетраэдрические клетки. Анимируется именно клетка, а сама геометрия и её BVH остаются статичными. Лучи перед проверкой пересечения просто преобразуются обратно в исходную систему координат.

В демонстрации использовалась большая сцена с примерно 25 тысячами независимо анимированных растений. В максимальном уровне детализации это около 2.8 миллиарда треугольников, а после отбора LOD в кадре обрабатывается порядка 500 миллионов анимированных треугольников. На видеокарте Radeon RX 9070 XT такая сцена стабильно держит больше 60 кадров в секунду в 1080p.

Обычный подход с отдельными BVH для каждого анимированного объекта легко раздувает потребление видеопамяти до 80 Гбайт и требует больше 300 миллисекунд на обновление структур каждый кадр. Новый метод AMD укладывается примерно в 1.7 Гбайта памяти и обновляет всё за 3.3 миллисекунды — то есть требует почти в 47 раз меньше памяти и работает более чем в 90 раз быстрее.

Не обошлось без нюансов. Технология плохо подходит для точной деформации отдельных вершин или изменения топологии сетки, поэтому лучше всего работает с густой растительностью, травой, толпой и дальними персонажами. Пока это всё ещё исследовательская демонстрация, а не готовая функция в играх, но AMD уже готовит примеры под DirectX Raytracing и библиотеку для разработчиков.