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