# 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 @@
@@ -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
+
+ - SPE で処理するには PPE からデータを送り込む必要がある。
+
- SPE はの Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。
+
- Move, Collision には Polygon や Texture データは不要になる。
+
+
+
+
+SceneGraph の代わりにゲームに必要な内部状態を持った配列 Property を SPE に転送する。
+
+
+
+
+
+
Property の処理
+
+- Property を SPE に転送し、SPE 上で Move, Collision の処理を実行し Property を更新する。
+ - 更新されて返された Updated Property を元に SceneGraphTree を生成する。
+
+
+
+
+
+
+
+
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.