Наткнулся на разбор для тех, кто упирался в CPU на толпах людей в разработке игр. Техарт Yeonju Cho собрала стадион на 6072 зрителя, и весь этот муравейник стоит игровому потоку 0,66 миллисекунды. До оптимизации те же агенты ели 34,15 мс — в 50 раз больше.
Рецепт такой: Houdini процедурно расставляет места и запекает анимации в VAT (vertex animation textures), а в Unreal вся толпа рисуется через HISM, и шейдер целиком гоняет анимацию на GPU. Процессор больше не трогает скелеты вообще: ни скиннинга, ни тиков анимации. Draw calls упали с 21369 до 276, FPS вырос вдвое.
Самое ценное в статье даже не цифры, а подробный пайплайн со всеми граблями: как организовать варианты персонажей, чтобы толпа не выглядела клонами, как переключать состояния болельщиков (сидят, встают, ликуют) через текстуры, и где у VAT-подхода границы применимости.
Подход переносится на любые массовые сцены: стадионы, баталии, городские NPC в опенворлде. Если в вашем проекте толпа пока что десяток скелетал-мешей с LOD'ами — вот направление, куда копать.
Полная статья: https://80.lv/articles/6-000-agents-on-one-game-thread-novel-high-performance-framework-for-gpu-driven-crowd-systems
@make_game
Post #1921
2.33K