← 全部概念
性能优化 / 32
分帧处理
把工作分摊到多帧
交互演示
交互演示 · 移动指针或点击画面,观察变化
分帧处理把开销较大的工作分摊到多帧,而不是每帧全部执行。这里把 192 个智能体分为 8 组,每帧只有其中一组重新选择目标,耗时条下方亮起的格子表示当前组;但所有智能体仍然每帧移动。在 60 fps 下,每个智能体重新决策的频率从每秒 60 次降为 7.5 次,使帧耗时重新降到 16.67 ms 的预算以内。
适用场景
对不需要每帧执行的决策使用分帧处理,例如远处 AI 的规划。即时反应和移动仍应按照玩法所需的频率更新。
实现示例
不依赖特定引擎的伪代码。请根据你使用的引擎调整函数和坐标约定。
bucket = frameIndex % bucketCount
for agent in agents:
if agent.id % bucketCount == bucket:
agent.chooseTarget()
agent.move(dt)常见错误
测量这种调度增加了多少响应延迟。为紧急任务单独分配预算,并避免把所有开销大的智能体集中到同一组。
内容原作 Nicolas Zullo · 中文整理与交互改编