NavData 生成システムは高速性を十分に考慮して設計されており、大きな地形であっても、生成時間がプロダクション ワークフローまたはパイプラインの問題になることはありません。ですが、更に高速に処理をすることもできます。そのために、システムには生成プロセスのさまざまな部分を複数のプロセッサで並列処理する機能が用意されています。
Gameware Navigation では、Intel のオープンソース ライブラリである Threading Building Blocks (TBB)を使用することにより、ホスト マシンの複数のコアで NavData を生成することができるようになっています。NavData 生成システムの API を独自のツールに統合する場合は、フレームワークを拡張して、並列計算を管理するための異なるサードパーティ ユーティリティを利用することもできます。
原理的には、生成プロセスを複数のコアに分割すると、使用できるコアの数に正比例して生成時間を短縮できます。ただし、NavData 生成の前処理フェーズと後処理フェーズは並列化できないため、実際に短縮される時間は、それほど長くないと感じるかもしれません。どのような場合でも、並列計算を使用すると速度が大幅に上昇します。特に、大きい地形の場合は顕著です。
複数プロセッサの使用に関する手順と考慮事項は、Navigation Lab または NavData 生成システムの API のどちらを使用するかにより若干異なります。
マルチプロセッサの生成は、Navigation Lab ではデフォルトで有効になっています。
Navigation Lab で複数のプロセッサでの NavData の生成を有効または無効にするには:
Navigation Lab は、TBB を内部的に使用して、NavData の生成をコンピュータで利用できるすべてのプロセッサに分散させます。
マルチコアの対応は、スタンドアロン ツールのリリース ビルドでのみ使用できることに注意してください。TBB のデバッグ ビルドは実行速度が非常に遅いことがわかっているため、スタンドアロン ツールのデバッグ ビルドは、常に、TBB を使用せず、単一のプロセッサで順番に NavData を生成します。
「統合フェーズ 6: NavData 生成 API を使用する」の NavData 生成システムの API を統合する手順を実行している場合は、既に TbbParallelForInterface クラスを介して TBB を使用するように設定されています。
詳細については、IParallelForInterface クラスの説明を参照してください。さらに、TbbParallelForInterface の実装の完全なソース コードが提供されているので、この実装をモデルとして独自のクラスを作成できます。