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

Изображение: TweakTown
На презентации AMD показала демонстрацию с 25 000 отдельно анимированных растений. Сцена работала с полной трассировкой лучей на видеокарте Radeon RX 9070 XT при 1080p и выдавала более 60 кадров в секунду. Секрет — в новой структуре данных, которую назвали тетраэдральными клетками.
Традиционная трассировка лучей требует перестраивать иерархию ограничивающих объемов (BVH) при каждом изменении геометрии. Если растений много и они колышутся, это отнимает время и память. Вместо этого AMD помещает группу объектов в деформируемую клетку. Сама структура BVH остается статичной, а лучи сначала проверяются относительно клетки, а затем уточняются внутри. В результате стоимость анимации зависит только от сложности клетки, а не от числа треугольников.
Изображение: TweakTown
Цифры: количество треугольников на кадр падает с 2,8 млрд до 500 млн. Потребление видеопамяти — с 80 ГБ до 1,7 ГБ. Время обновления BVH — с 300 мс до 3,3 мс. Все это работает на существующей архитектуре RDNA 4.
Метод не подходит для сцен, где нужно анимировать каждую вершину отдельно, например для персонажей. Зато для лесов, полей травы и листвы он идеален. Технология совместима с Microsoft DirectX Raytracing, так что ее появление в играх и будущих консолях вполне возможно.

