マルチコア CPU における
SceneGraph を用いたゲームの作成





研究目的と背景

高度な並列性を持つゲームマシンの性能を生かすために
プログラムの並列度を向上させる
本研究では SceneGraph を
複数 CPU を用いて並列処理することを目的とする

発表の流れ


SceneGraph とは

SceneGraph とはゲーム中の全てのオブジェクトを表す Tree 構造である。

ゲーム内のオブジェクトは個別に SceneGraphNode に分けられているので、ノードを別個に処理すると自然と並列度がでてくる。

SceneGraph とは(Con't)

SceneGraph の内部構造
データ 説明
Vertex ポリゴンオブジェクトの頂点座標
Texture ポリゴンオブジェクトのテクスチャ座標
TextureImage テクスチャイメージ
TransMatrix ポリゴンオブジェクトの変換行列
Coordinates オブジェクトの座標
Angle オブジェクトの角度
Property オブジェクトの内部情報
動作 説明
Move 自律的なオブジェクトの動き
Collision 他のノードとの衝突判定

ゲームの流れ

オブジェクトが描画されるまでの流れ

動作と描画の処理

現在、画面の描画とオブジェクトの動作は逐次的に行われている。

そこで、オブジェクトの動作を SPE で行うことにより、画面の描画と並列に実行する。

Property の導入


SceneGraph の代わりにゲームに必要な内部状態を保持した構造体 Property を用いる。

Property の導入(Con't)

Property には以下のパラメータが含まれている
Property はゲームごとに定義されている

Property の処理

Property を用いた例題

Property を用いた例題として鎖のシミュレーション chain を使用した
この例題では Move の処理のみを行っており、Collision の処理は行っていない

実行速度比較

chain の Move を SPE で処理した場合と PPE で処理した場合の実行速度の比較を以下に示す。
FPS(Frame Par Second)
PPE 2.708696
SPE 2.893348

Move を SPE で処理したことで約7%の速度向上がみられた

Move は SPE 上にあるので、SIMD 演算を用いて、速度の向上が期待できる。

まとめと今後の課題

ご清聴ありがとうございました

Cellとは

Cellとはソニー、東芝、IBM社の3社が共同開発したマイクロプロセッサ。

Cellは1基の制御系のプロセッサコアPPEと、8基の演算系プロセッサコアSPEで構成される。 (Ceriumで扱えるSPEの数は6基)それぞれ高速なバスで接続されている

Ceriumとは

Ceriumとは当研究室で開発したゲーム開発用フレームワーク

Task Manager
 タスクと呼ばれる分割されたプログラムを管理する
Scene Graph
 ゲーム中のオブジェクトの振る舞いや、ルールを管理する。
Rendering Engine
 Cerium独自に開発した描画用のエンジン

の3つの要素から構成される。

Ceriumは PS3/Cell、linux, macosx 上で動作する。

SIMD 演算とは

SIMD 演算とは1つの命令で複数のデータに対して処理を行う演算方式
Cellでは、SPEに実装されている128ビットレジスタを用いてSIMDを行うことができる