changeset 16:7856523eef7e

fix presen
author aaa
date Wed, 17 Feb 2010 19:00:22 +0900
parents 0c42cb2d1ae4
children 5f9478510c44
files paper/thesis_main.tex presen/image/Property.graffle presen/image/Property.jpg presen/image/SceneGraph.graffle presen/image/SceneGraph.jpg presen/image/SceneGraph.png presen/image/chain.png presen/pre.html presen/slidy.css resume/A-6-1-065746.tex
diffstat 10 files changed, 150 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- 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 {} 仲宗根 広樹\\指導教官 {} 河野 真治}
Binary file presen/image/Property.graffle has changed
Binary file presen/image/Property.jpg has changed
Binary file presen/image/SceneGraph.graffle has changed
Binary file presen/image/SceneGraph.jpg has changed
Binary file presen/image/SceneGraph.png has changed
Binary file presen/image/chain.png has changed
--- 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 @@
 <center>
 <font size="6"><sup><b>本研究では SceneGraph を<br>複数 CPU を用いて並列処理することを目的とする</b></sup></font>
 </center>
-<!--
-<ul style="line-height: 1.2;">
-<ul>
-<li>近年のゲームマシンは高度な並列性を持つようになっており、その並列性を活かすためにゲームプログラムでの様々なレベルでの並列処理が必須となっている。
-<li>そこで SceneGraph というゲーム中の1つの場面(Scene) を構成するオブジェクトやその振る舞い、ゲームのルールの集合を導入する。
-<li>SceneGraph の処理を自動的に並列に行う事により、並列処理と、習得の早いゲームプログラミングの両立を可能にする。
-</ul>
--->
 </div>
 
 <div class="slide pre">
@@ -72,19 +64,132 @@
 
 <div class="slide pre">
 <h1>SceneGraph とは</h1>
+SceneGraph のノードは親子関係を持つ Tree で構成される。<br>
+<br>
+<center>
+<img src="image/SceneGraph.jpg" width="500">
+</center>
+<br>
+ゲーム内のオブジェクトは個別に SceneGraphNode に分けられているので、ノードを別個に処理すると自然と並列度がでてくる。
+</div>
+
+<div class="slide pre">
+<h1>SceneGraph とは(Con't)</h1>
+<!--
 <h3>ゲーム中の1つの場面(Scene)を構成するオブジェクトやその振る舞い、ゲームのルールの集合</h3>
 <center>
 <img src="image/SceneGraph.png" width="500">
 </center>
+-->
+<font size="4">
+<table>
+  <tr>
+    <td>データ</td>
+    <td>説明</td>
+  </tr>
+  <tr>
+    <td>Vertex</td>
+    <td>ポリゴンオブジェクトの頂点座標</td>
+  </tr>
+  <tr>
+    <td>Texture</td>
+    <td>ポリゴンオブジェクトのテクスチャ座標</td>
+  </tr>
+  <tr>
+    <td>TextureImage</td>
+    <td>テクスチャイメージ</td>
+  </tr>
+  <tr>
+    <td>TransMatrix</td>
+    <td>ポリゴンオブジェクトの変換行列</td>
+  </tr>
+  <tr>
+    <td>Coordinates</td>
+    <td>オブジェクトの座標</td>
+  </tr>
+  <tr>
+    <td>Angle</td>
+    <td>オブジェクトの角度</td>
+  </tr>
+  <tr>
+    <td>Property</td>
+    <td>オブジェクトの内部情報</td>
+  </tr>
+</table>
+<table>
+  <tr>
+    <td>動作</td>
+    <td>説明</td>
+  </tr>
+  <tr>
+    <td>Move</td>
+    <td>自律的なオブジェクトの動き</td>
+  </tr>
+  <tr>
+    <td>Collision</td>
+    <td>他のノードとの衝突判定をする</td>
+  </tr>
+</table>
+</font>
+</div>
+
+<div class="slide pre">
+<h1>SceneGraph とは(Con't)</h1>
+<font size="5">
+<sup>
+ SceneGraph の親子関係に沿って TransMatrix を計算し、Move, Collision を実行することで SceneGraph 内のオブジェクトが変化する。<br>
+ Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。
+</sup>
+</font>
+<br>
+<br>
+<font size="5"><sup>
+現在、Cerium では画面の描画と Move, Collision の処理は<br> PPE で逐次的に行われている。<br>
+</font></sup>
+<br>
+Move, Collision をマルチメディア系の処理を得意とする <font color=red>SPE</font> で処理し<br>Rendering と並列に実行する。
+</div>
+
+<div class="slide pre">
+<h1>Property</h1>
+<ul style="line-height: 1.2;">
+  <li>SPE で処理するには PPE からデータを送り込む必要がある。
+  <li>SPE はの Local Store は 256KB しかないので、SceneGraph を全て転送すると容量を超えてしまう可能性がある。
+  <li>Move, Collision には Polygon や Texture データは不要になる。
+</ul>
+<br>
+<font size="6">
+<sup>
+SceneGraph の代わりにゲームに必要な内部状態を持った配列 <font color=red>Property</font> を SPE に転送する。
+</sup>
+</font>
+</div>
+
+<div class="slide pre">
+<h1>Property の処理</h1>
+<ul style="line-height: 1.2;">
+<li>Property を SPE に転送し、SPE 上で Move, Collision の処理を実行し Property を更新する。<br>
+<li>更新されて返された Updated Property を元に SceneGraphTree を生成する。
+</ul>
+<center>
+<img src="image/Property.jpg" width="350">
+<center>
+</div>
+
+<div class="slide pre">
+<h1>Property を用いた例題</h1>
+Property を用いた例題として複雑な演算をする鎖のシミュレーション chain を使用した。<br>
+<font color="red" size="3">※ chain は Move の処理のみ行い、使用する SPE は1基となっている。</font><br>
+chain の各オブジェクトの値は、一つ前のオブジェクトの値から算出されるので、複数 SPE に分割して並列処理することができない。
+<br>
+<br>
+<center>
+<img src="image/chain.png" width="300">
+</center>
 </div>
 
 <div class="slide pre">
-<h1>ゲーム作成</h1>
-<font size="6"><sup><b>Collision によって Move が変更され、Move によって Coordinates, Angle が変更される。これらをどのように変更させていくかがゲームのルールとなる。</b></sup></font>
-</div>
-
-<div class="slide pre">
-<h1>SceneGraph の並列化</h1>
+<h1>結果</h1>
 </div>
 
 <div class="slide pre">
--- 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 }
 
--- 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.