NavData 生成系统设计得已足够快,即使在大型地形上,生成时间也不会导致生产工作流或管线出现问题。但是,没有最快,只有更快!为了实现这一目标,系统应提供在多个处理器上并行运行生成过程各个部分的能力。
Gameware Navigation 通过使用来自 Intel 的开源线程构建块 (TBB) 库,为在主机的多个核心上生成 NavData 提供内置支持。如果将 NavData 生成系统的 API 集成到您自己的工具中,还可以扩展框架以使用不同的第三方工具管理并行计算。
原则上,在多个核心上拆分生成过程可以缩短生成时间,缩短的时间量与可用核心数量成正比。实际上,由于 NavData 生成的预处理和后期处理阶段不能并行化,因此,实际缩短的时间略有减少。在任何情况下,使用并行计算时,都应该看到速度明显加快,对于大型地形尤为明显。
使用多个处理器时涉及的步骤和注意事项因使用 Navigation Lab 还是使用 NavData 生成系统的 API 而略有不同。
默认情况下会在 Navigation Lab 中启用多处理器生成。
在 Navigation Lab 中的多个处理器上启用或禁用 NavData 生成:
Navigation Lab 在内部使用 TBB,以便在计算机上的所有可用处理器之间分布 NavData 生成。
请注意,多核支持仅在独立工具的发布版本中可用。由于已发现 TBB 的调试内部版本运行非常慢,因此独立工具的调试内部版本始终在单个处理器上按顺序生成 NavData,而不使用 TBB。
如果您已按照集成阶段 6:使用 NavData 生成 API下有关集成 NavData 生成系统的 API 的说明执行操作,您应该已设置为通过 TbbParallelForInterface 类使用 TBB。
有关详细信息,请参见 IParallelForInterface 类描述。此外,提供了 TbbParallelForInterface 实现的完整源代码,以便您可以使用此实现作为自己的类模型。