Mercurial > hg > Papers > 2010 > hiroki-thesis
comparison resume/A-6-1-065746.tex @ 9:10bfacc0dc9a
fix
author | aaa |
---|---|
date | Sat, 13 Feb 2010 15:22:38 +0900 |
parents | 9066d4263380 |
children | 074431e5471a |
comparison
equal
deleted
inserted
replaced
8:9066d4263380 | 9:10bfacc0dc9a |
---|---|
34 必要がある。しかし、 | 34 必要がある。しかし、 |
35 データが処理される順番を把握することができないので出力結果などが特定しづらく、 | 35 データが処理される順番を把握することができないので出力結果などが特定しづらく、 |
36 逐次型に比べて難易度が高い | 36 逐次型に比べて難易度が高い |
37 データ転送やタスクの生成、管理等の技術が多く存在する。\\ | 37 データ転送やタスクの生成、管理等の技術が多く存在する。\\ |
38 現在、学生実験にて PlayStation 3(PS3) で動作するゲーム開発を行っている。 | 38 現在、学生実験にて PlayStation 3(PS3) で動作するゲーム開発を行っている。 |
39 短期間の学生実験では新しい技術を習得することに時間を割かれ、ゲームの完成度を上げることが難しくなる。 | 39 短期間の学生実験では新しい技術を習得することに時間を割かれ、ゲームの完成度を上げることが難しくなる。\\ |
40 | 40 そこで本研究では、 |
41 そこで本研究では、 | |
42 SceneGraph と言うゲーム中の1つの場面(Scene) を構成するオブジェクトやその振る舞い、ゲームのルールの集合を導入する。 | 41 SceneGraph と言うゲーム中の1つの場面(Scene) を構成するオブジェクトやその振る舞い、ゲームのルールの集合を導入する。 |
43 SceneGraph の処理を自動的に並列に行なうことにより、完成度の高いゲームの作成を可能とする。 | 42 SceneGraph の処理を並列に行なうことにより、完成度の高いゲームの作成を可能とする。 |
44 | 43 |
45 \section{SceneGraph を使ったゲーム作成} | 44 \section{SceneGraph を使ったゲーム作成} |
46 SceneGraph のノードは親子関係を持つ tree で構成される(図\ref{fig:SceneGraph})。 | 45 SceneGraph のノードは親子関係を持つ tree で構成される(図\ref{fig:SceneGraph})。 |
47 | 46 |
48 SceneGraph を使用すると、ゲーム内のオブジェクトは個別に SceneGraph ノードに分けられているので、ノードを別個に処理すると自然と並列度がでてくる。 | 47 SceneGraph を使用すると、ゲーム内のオブジェクトは個別に SceneGraph ノードに分けられているので、ノードを別個に処理すると自然と並列度がでてくる。 |
50 SceneGraph ノード は以下のようなデータと動作を持つ。 | 49 SceneGraph ノード は以下のようなデータと動作を持つ。 |
51 \\\\ | 50 \\\\ |
52 {\small | 51 {\small |
53 \begin{tabular}{|l|l|} | 52 \begin{tabular}{|l|l|} |
54 \hline | 53 \hline |
55 データ & \\ \hline | 54 データ & 説明 \\ \hline |
56 Vertex & ポリゴンオブジェクトの頂点座標 \\ \hline | 55 Vertex & ポリゴンオブジェクトの頂点座標 \\ \hline |
57 Texture & ポリゴンオブジェクトのテクスチャ座標 \\ \hline | 56 Texture & ポリゴンオブジェクトのテクスチャ座標 \\ \hline |
58 TextureImage & テクスチャイメージ \\ \hline | 57 TextureImage & テクスチャイメージ \\ \hline |
59 TransMatrix & ポリゴンオブジェクトの変換行列 \\ \hline | 58 TransMatrix & ポリゴンオブジェクトの変換行列 \\ \hline |
60 Coordinates & オブジェクトの座標 \\ \hline | 59 Coordinates & オブジェクトの座標 \\ \hline |
61 Angle & オブジェクトの角度 \\\hline | 60 Angle & オブジェクトの角度 \\\hline |
62 Property & オブジェクトのゲームに係わる内部状態 \\ | 61 Property & オブジェクトの内部状態 \\ |
63 \hline | 62 \hline |
64 \end{tabular} | 63 \end{tabular} |
65 \\\\\\ | 64 \\\\\\ |
66 \begin{tabular}{|l|l|} | 65 \begin{tabular}{|l|l|} |
67 \hline | 66 \hline |
68 動作 & \\ \hline | 67 動作 & 説明 \\ \hline |
69 Move & 自律的なオブジェクトの動く \\ \hline | 68 Move & 自律的なオブジェクトの動く \\ \hline |
70 Collision & 他のノードとの衝突判定をする \\ \hline | 69 Collision & 他のノードとの衝突判定をする \\ \hline |
71 \end{tabular} | 70 \end{tabular} |
72 } | 71 } |
73 \\\\ | 72 \\\\ |
113 | 112 |
114 \section{SceneGraph の並列処理} | 113 \section{SceneGraph の並列処理} |
115 \subsection{Property} | 114 \subsection{Property} |
116 オブジェクトの動作や衝突判定に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこでゲームに必要なオブジェクトの内部状態を持った Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係なども含める。一方の tree を Rendering で使用し、もう一方を Move, Collision で使用し、両方の処理が終わったら、相互にバッファを切り替える。切替える時に二つのタスクは同期する必要がある。 | 115 オブジェクトの動作や衝突判定に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこでゲームに必要なオブジェクトの内部状態を持った Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係なども含める。一方の tree を Rendering で使用し、もう一方を Move, Collision で使用し、両方の処理が終わったら、相互にバッファを切り替える。切替える時に二つのタスクは同期する必要がある。 |
117 | 116 |
117 \subsection{chain} | |
118 \if 0 | |
118 \subsection{vacuum} | 119 \subsection{vacuum} |
119 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 | 120 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 |
120 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。 | 121 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。 |
121 | 122 |
122 \begin{figure}[htb] | 123 \begin{figure}[htb] |
153 \end{figure} | 154 \end{figure} |
154 | 155 |
155 Move, Collision を SPE で処理する際に、SPE には SceneGraph ノードは送らない。代わりに vacuum の Move, Collision に必要な情報をまとめた Property を送る。 | 156 Move, Collision を SPE で処理する際に、SPE には SceneGraph ノードは送らない。代わりに vacuum の Move, Collision に必要な情報をまとめた Property を送る。 |
156 Property は SceneGraph ノードと1対1で対応しており、Coordinates, Angle, 親子関係の情報, ノードの生成消滅の情報を持つ。 | 157 Property は SceneGraph ノードと1対1で対応しており、Coordinates, Angle, 親子関係の情報, ノードの生成消滅の情報を持つ。 |
157 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。 | 158 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。 |
159 \fi | |
158 | 160 |
159 \section{まとめと今後の課題} | 161 \section{まとめと今後の課題} |
160 \begin{itemize} | 162 \begin{itemize} |
161 \item 現在は SPE 1基で SceneGraph を処理する例題の作成途中なので、複数 SPE に均等に処理を割り振る例題の作成。 | 163 \item 現在は SPE 1基で SceneGraph を処理する例題の作成途中なので、複数 SPE に均等に処理を割り振る例題の作成。 |
162 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。 | 164 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。 |
168 | 170 |
169 \bibitem{cell}Sony Corporation. | 171 \bibitem{cell}Sony Corporation. |
170 | 172 |
171 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 | 173 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 |
172 | 174 |
175 \if 0 | |
173 \bibitem{spursengine}TOSHIBA: SpursEngine | 176 \bibitem{spursengine}TOSHIBA: SpursEngine |
174 | 177 |
175 \verb|http://www.semicon.toshiba.co.jp|\\ | 178 \verb|http://www.semicon.toshiba.co.jp|\\ |
176 \verb|/product/assp/selection/spursengine/index.html| | 179 \verb|/product/assp/selection/spursengine/index.html| |
177 | 180 |
180 \verb|https//sourceforge.jp/projects/cerium/| | 183 \verb|https//sourceforge.jp/projects/cerium/| |
181 | 184 |
182 \bibitem{opencl} OpenCL | 185 \bibitem{opencl} OpenCL |
183 | 186 |
184 \verb|http://www.khronos.org/opencl/| | 187 \verb|http://www.khronos.org/opencl/| |
188 \fi | |
185 | 189 |
186 \bibitem{wataru} Wataru MIYAGUNI. | 190 \bibitem{wataru} Wataru MIYAGUNI. |
187 | 191 |
188 Cell 用の Fine-Grain Task Manager の実装, 2009 | 192 Cell 用の Fine-Grain Task Manager の実装, 2009 |
189 | 193 |