Привет знатокам.
Есть игровой мир, который состоит из отдельных стрим левелов. Представляет собой змейку из таких левелов 512х512 метров.
Когда персонаж находится на одной ячейке, то текущая и две соседние показываются. Остальные скрываются через SetVisibility у стримлевела. Столкнулся с проблемой, что и при показе (visibility true) стримлевела есть заметный фриз на 0.5 секунд. На левеле около 500 мешей.
Как можно оптимизировать или профилировать загрузку левелов?
1)
https://peterleontev.com/blog/level_streaming_optimization/Можно отсюда начать, тут кратко я постарался собрать инфу о различных твиках Level Streaming и Garbage Collection
2) Стоит посмотреть на PhysXTreeRebuildRate, особенно если при профайлинге вылезает вперед FetchResults
Консольная команда p.PhysXTreeRebuildRate <num of frames> или же в конфиге меняет параметр PhysXTreeRebuildRate.
Подробности в Engine/Source/Runtime/Engine/Private/PhysicsEngine/PhysScene_PhysX.cpp
3) Профилировать для начала лучше всего через stat startfile, stat stopfile, далее открываем стандартными средствами движка то, что получилось, и смотрим GameThread/RenderThread, находим те функции, которые попадают в пики.
4) Документация:
https://docs.unrealengine.com/en-US/Engine/Performance/index.html