# HG changeset patch # User aaa # Date 1266400822 -32400 # Node ID 7856523eef7ef845b05c244b9ca13195fcde7da2 # Parent 0c42cb2d1ae4e4dee1e9eedd393b2ab4f0f15c70 fix presen diff -r 0c42cb2d1ae4 -r 7856523eef7e paper/thesis_main.tex --- a/paper/thesis_main.tex Tue Feb 16 14:09:26 2010 +0900 +++ b/paper/thesis_main.tex Wed Feb 17 19:00:22 2010 +0900 @@ -5,7 +5,7 @@ \usepackage{master_paper} \pagestyle{fancy} %\usepackage{masterkit} -\title{SceneGraph を用いた\\マルチコア CPU 向けゲームの処理} +\title{マルチコア CPU における\\ SceneGraph を用いたゲームの作成} \year{平成21年度 卒業論文} \belongto{琉球大学工学部情報工学科} \author{065746J {} 仲宗根 広樹\\指導教官 {} 河野 真治} diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/Property.graffle Binary file presen/image/Property.graffle has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/Property.jpg Binary file presen/image/Property.jpg has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/SceneGraph.graffle Binary file presen/image/SceneGraph.graffle has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/SceneGraph.jpg Binary file presen/image/SceneGraph.jpg has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/SceneGraph.png Binary file presen/image/SceneGraph.png has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/image/chain.png Binary file presen/image/chain.png has changed diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/pre.html --- a/presen/pre.html Tue Feb 16 14:09:26 2010 +0900 +++ b/presen/pre.html Wed Feb 17 19:00:22 2010 +0900 @@ -48,14 +48,6 @@
本研究では SceneGraph を
複数 CPU を用いて並列処理することを目的とする
-
@@ -72,19 +64,132 @@

SceneGraph とは

+SceneGraph のノードは親子関係を持つ Tree で構成される。
+
+
+ +
+
+ゲーム内のオブジェクトは個別に SceneGraphNode に分けられているので、ノードを別個に処理すると自然と並列度がでてくる。 +
+ +
+

SceneGraph とは(Con't)

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

SceneGraph とは(Con't)

+ + + SceneGraph の親子関係に沿って TransMatrix を計算し、Move, Collision を実行することで SceneGraph 内のオブジェクトが変化する。
+ Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。 +
+
+
+
+ +現在、Cerium では画面の描画と Move, Collision の処理は
PPE で逐次的に行われている。
+
+
+Move, Collision をマルチメディア系の処理を得意とする SPE で処理し
Rendering と並列に実行する。 +
+ +
+

Property

+ +
+ + +SceneGraph の代わりにゲームに必要な内部状態を持った配列 Property を SPE に転送する。 + + +
+ +
+

Property の処理

+ +
+ +
+
+ +
+

Property を用いた例題

+Property を用いた例題として複雑な演算をする鎖のシミュレーション chain を使用した。
+※ chain は Move の処理のみ行い、使用する SPE は1基となっている。
+chain の各オブジェクトの値は、一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。 +
+
+
+ +
-

ゲーム作成

-Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。 -
- -
-

SceneGraph の並列化

+

結果

diff -r 0c42cb2d1ae4 -r 7856523eef7e presen/slidy.css --- a/presen/slidy.css Tue Feb 16 14:09:26 2010 +0900 +++ b/presen/slidy.css Wed Feb 17 19:00:22 2010 +0900 @@ -14,7 +14,8 @@ width: 100%; height: 100%; color: black; - background-color: white; + /* background-color: white;*/ + background-color: #EEEEEE; font-family: "Gill Sans MT", "Gill Sans", GillSans, sans-serif; font-size: 14pt; } @@ -144,7 +145,9 @@ blockquote { font-style: italic } -img { background-color: transparent } +img { background-color: transparent ; + border: 1px solid gray; +} p.copyright { font-size: smaller } diff -r 0c42cb2d1ae4 -r 7856523eef7e resume/A-6-1-065746.tex --- a/resume/A-6-1-065746.tex Tue Feb 16 14:09:26 2010 +0900 +++ b/resume/A-6-1-065746.tex Wed Feb 17 19:00:22 2010 +0900 @@ -113,7 +113,7 @@ Cell\cite{cell} は1基の PowerPC Processor Element (PPE) と8基の Synergistic Processor Element (SPE) で構成されるヘテロジニアスマルチコアプロセッサである。各プロセッサは高速バスで接続されている。本研究では6基の SPE が使用可能となっている。 \section{Cerium} -Cerium とは当研究室で開発した Cell 上で動作するゲームフレームワークである。 +Cerium\cite{wataru} とは当研究室で開発した Cell 上で動作するゲームフレームワークである。 Cerium は SceneGraph、OSMesa に代表される Rendering Engine、そしてそれらの実行単位を Task とし、動的に全てのコアが動作する様な割り振りを行うカーネル TaskManager で構成されている。 現在、Cerium では SceneGraph の Move, Collision を PPE でシーケンシャルに処理しているので、この部分の処理を SPE を用いて並列に処理するように変更する。 @@ -143,16 +143,25 @@ [Move] chain のオブジェクトの値は一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。 \\  Move の処理を SPE で行った場合と PPE で行った場合の FPS の比較を以下に示す。 -\begin{center} -\begin{tabular}{|l|l|} - \hline -   & FPS(Frame Per Scecond) \\ \hline - PPE & 2.708696 \\ \hline - SPE & 2.893348 \\ - \hline -\end{tabular} -\end{center} -PPE より、 SPE で処理した方の FPS が若干向上した。 +\vspace{3mm} +\begin{table}[htb] + \begin{center} + \vskip -\lastskip \vskip -20pt + \caption{SPE と PPE で FPS の比較} + \hbox to\hsize{\hfil + \begin{tabular}{|l|l|} + \hline +   & FPS(Frame Per Second) \\ \hline + PPE & 2.708696 \\ \hline + SPE & 2.893348 \\ + \hline + \end{tabular}\hfil} + \label{tb:fps} + \end{center} +\end{table} +\vspace{-5mm} +\\ +PPE より、SPE で処理した方の FPS が若干向上した。 \if 0 \subsection{vacuum} SceneGraph の処理の例題として、学生実験で作成されたゲーム vacuum を使用する。 @@ -210,18 +219,18 @@ Cell BroadbandEngine \texttrademark アーキテクチャ, 2006 -\bibitem{spursengine}TOSHIBA: SpursEngine +%\bibitem{spursengine}TOSHIBA: SpursEngine -\verb|http://www.semicon.toshiba.co.jp|\\ -\verb|/product/assp/selection/spursengine/index.html| +%\verb|http://www.semicon.toshiba.co.jp|\\ +%\verb|/product/assp/selection/spursengine/index.html| \bibitem{cerium} SourceForge.JP: Cerium Rendering Engine \verb|https//sourceforge.jp/projects/cerium/| -\bibitem{opencl} OpenCL +%\bibitem{opencl} OpenCL -\verb|http://www.khronos.org/opencl/| +%\verb|http://www.khronos.org/opencl/| \bibitem{wataru} Wataru MIYAGUNI.