Mercurial > hg > Papers > 2010 > hiroki-thesis
comparison resume/A-6-1-065746.tex @ 12:0786f5b33f5f
fix resume
author | aaa |
---|---|
date | Tue, 16 Feb 2010 10:25:46 +0900 |
parents | 074431e5471a |
children | 6fe1db0ee07c |
comparison
equal
deleted
inserted
replaced
11:aac2e16af8c4 | 12:0786f5b33f5f |
---|---|
19 \setlength{\textheight}{261mm} | 19 \setlength{\textheight}{261mm} |
20 \setlength{\footskip}{0mm} | 20 \setlength{\footskip}{0mm} |
21 \pagestyle{empty} | 21 \pagestyle{empty} |
22 | 22 |
23 \begin{document} | 23 \begin{document} |
24 \title{SceneGraph を用いた\\マルチコア CPU 向けゲームの処理} | 24 \title{マルチコア CPU における\\ SceneGraph を用いたゲームの作成} |
25 \author{065746J 仲宗根広樹 指導教員 : 河野真治} | 25 \author{065746J 仲宗根広樹 指導教員 : 河野真治} |
26 \date{\today} | 26 \date{\today} |
27 \maketitle | 27 \maketitle |
28 \thispagestyle{fancy} | 28 \thispagestyle{fancy} |
29 | 29 |
110 | 110 |
111 現在、Cerium では SceneGraph の Move, Collision を PPE でシーケンシャルに処理しているので、この部分の処理を SPE を用いて並列に処理するように変更する。 | 111 現在、Cerium では SceneGraph の Move, Collision を PPE でシーケンシャルに処理しているので、この部分の処理を SPE を用いて並列に処理するように変更する。 |
112 | 112 |
113 \section{SceneGraph の並列処理} | 113 \section{SceneGraph の並列処理} |
114 \subsection{Property} | 114 \subsection{Property} |
115 オブジェクトの動作や衝突判定に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこでゲームに必要なオブジェクトの内部状態を持った Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係なども含める。一方の tree を Rendering で使用し、もう一方を Move, Collision で使用し、両方の処理が終わったら、相互にバッファを切り替える。切替える時に二つのタスクは同期する必要がある。 | 115 オブジェクトの動作(move, collision) に必要になるのは Coordinates や Angle であり、Polygon や Texture のデータは不要になる。そこで、ゲームに必要なオブジェクトの内部状態を持った配列 Property を用いる。Property には Coordinates, Angle の他に、tree を再生成する時に必要な親子関係、オブジェクト生成消滅のパラメータなどが含まれる。\\ |
116 | 116 Move, Collsion の処理をする際は Property を SPE に送り、変更されて返された Updated Property を元に PPE 側で SceneGraphTree を構成する。 (図\ref{fig:sgtask})\\ |
117 \begin{figure}[htb] | |
118 \begin{center} | |
119 \includegraphics[scale=0.7]{image/SceneGraphTask.pdf} | |
120 \caption{SceneGraphTree の生成} | |
121 \label{fig:sgtask} | |
122 \end{center} | |
123 \end{figure} | |
117 \subsection{chain} | 124 \subsection{chain} |
118 例題作成中 | 125 SceneGraph の処理の例題として、学生実験で作成された鎖のシミュレーション chain を使用する。 |
126 この例題では、動作は Move の処理のみ行い、処理に使用する SPE は1基となっている。 | |
127 \begin{figure}[htb] | |
128 \begin{center} | |
129 \includegraphics[scale=0.3]{image/chain.png} | |
130 \caption{chain の画面} | |
131 \label{fig:chain} | |
132 \end{center} | |
133 \end{figure} | |
134 | |
135 [Move] chain のオブジェクトの値は一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。 | |
136 \\ | |
137 Move の処理を SPE で行った場合と PPE で行った場合の FPS の比較を以下に示す。 | |
138 \begin{center} | |
139 \begin{tabular}{|l|l|} | |
140 \hline | |
141 & FPS(Frame Per Scecond) \\ \hline | |
142 PPE & 2.708696 \\ \hline | |
143 SPE & 2.893348 \\ | |
144 \hline | |
145 \end{tabular} | |
146 \end{center} | |
147 PPE よりも SPE で処理した方の FPS が若干向上した。 | |
119 \if 0 | 148 \if 0 |
120 \subsection{vacuum} | 149 \subsection{vacuum} |
121 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 | 150 SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 |
122 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。 | 151 vacuum には自機と吸収ブロック、敵ブロックの3種類のオブジェクトがあり、自機を上下左右に移動させ、ボタンを押している間は自機の周りのブロックを引き寄せ、うまく吸収ブロックだけを自機と衝突させるゲームである。このゲームのMoveとCollisionは以下のようになる。 |
123 | 152 |
159 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。 | 188 PPE 側では返されてきた Property を元に SceneGraph を作成し Tree を再構成して Rendering に渡す。 |
160 \fi | 189 \fi |
161 | 190 |
162 \section{まとめと今後の課題} | 191 \section{まとめと今後の課題} |
163 \begin{itemize} | 192 \begin{itemize} |
164 \item 現在は SPE 1基で SceneGraph を処理する例題の作成途中なので、複数 SPE に均等に処理を割り振る例題の作成。 | 193 \item SPE 1基で SceneGraph を処理する例題はできたので、複数 SPE に均等に処理を割り振る例題の作成および、SPE での演算の SIMD 化。 |
165 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。 | 194 \item Property から SceneGraph を生成し tree を構築する部分において、SceneGraph の新規生成と削除を考慮した設計を行う。 |
166 \item xml から作成された SceneGraph はオリジナルとして配列に順次格納されている。現在は SceneGraph を create する場合はオリジナルの配列をリニアサーチしてきた物をコピーしている。このオリジナルの配列を Texture を管理している hash テーブルを用いてまとめて管理できるようにする。 | |
167 \end{itemize} | 195 \end{itemize} |
168 | 196 |
169 \thispagestyle{fancy} | 197 \thispagestyle{fancy} |
170 \begin{thebibliography}{9} | 198 \begin{thebibliography}{9} |
171 | 199 |
172 \bibitem{cell}Sony Corporation. | 200 \bibitem{cell}Sony Corporation. |
173 | 201 |
174 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 | 202 Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 |
175 | 203 |
176 \if 0 | |
177 \bibitem{spursengine}TOSHIBA: SpursEngine | 204 \bibitem{spursengine}TOSHIBA: SpursEngine |
178 | 205 |
179 \verb|http://www.semicon.toshiba.co.jp|\\ | 206 \verb|http://www.semicon.toshiba.co.jp|\\ |
180 \verb|/product/assp/selection/spursengine/index.html| | 207 \verb|/product/assp/selection/spursengine/index.html| |
181 | 208 |
184 \verb|https//sourceforge.jp/projects/cerium/| | 211 \verb|https//sourceforge.jp/projects/cerium/| |
185 | 212 |
186 \bibitem{opencl} OpenCL | 213 \bibitem{opencl} OpenCL |
187 | 214 |
188 \verb|http://www.khronos.org/opencl/| | 215 \verb|http://www.khronos.org/opencl/| |
189 \fi | |
190 | 216 |
191 \bibitem{wataru} Wataru MIYAGUNI. | 217 \bibitem{wataru} Wataru MIYAGUNI. |
192 | 218 |
193 Cell 用の Fine-Grain Task Manager の実装, 2009 | 219 Cell 用の Fine-Grain Task Manager の実装, 2009 |
194 | 220 |