changeset 2:9216a2b217e6

*** empty log message ***
author gongo
date Mon, 24 Mar 2008 03:22:50 +0900
parents b6cb037260ce
children 2ef36d40ee96
files cerium-manager.tex cerium-rendering.tex cerium-scene_graph.tex cerium.tex cerium_dev.tex figure/scene_graph.bb figure/scene_graph.graffle figure/scene_graph.pdf introduction.tex sigos.bib sigos.tex
diffstat 11 files changed, 107 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cerium-manager.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,6 @@
+\subsection{Task Manager}
+%% タスクの管理 (依存関係とか)
+%% コードのロード、必要性 (256しかないからとか)
+%% TaskManager の API
+%% PPE 側と SPE 側、二つとも説明。PPE は上のでいいかな
+%% SPE 側はパイプラインとか
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cerium-rendering.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,5 @@
+\subsection{Rendering Engine}
+%% SPAN とはなんぞや
+%% データ構造 (PolygonPack, SpanPack) とはなんぞや
+%% ぐらいを説明すればおkのはず
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cerium-scene_graph.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,40 @@
+\subsection{Scene Graph}
+本稿では、ゲーム中の一つの場面 (Scene) を構成するオブジェクトやその振る舞い、
+ゲームのルールの集合を Scene Graph とする。Scene Graph のノードは
+親子関係を持つ木構造で構成される (\figref{fig-scene_graph}) 。
+
+\begin{figure}[tb]
+  \begin{center}
+    \includegraphics[scale=0.35]{figure/scene_graph.pdf}
+    \caption{Scene Graph Structure}
+    \label{fig-scene_graph}
+  \end{center}
+\end{figure}
+
+Scene Graph Node は以下のようなデータと動作を持つ。
+
+\begin{itemize}
+  \item データ
+    \begin{itemize}
+      \item Vervatim : ポリゴンオブジェクトの頂点座標
+      \item Texture : ポリゴンオブジェクトのテクスチャ座標
+      \item TextureImage : テクスチャイメージ
+      \item TransMatrix : ポリゴンオブジェクトの変換行列
+      \item Coordinates : オブジェクトの座標
+      \item Angle : オブジェクトの角度
+    \end{itemize}
+  \item 動作
+    \begin{itemize}
+    \item Move : 自律的なオブジェクトの動き
+    \item Collision : 他ノードと衝突したときの動き
+    \end{itemize}
+\end{itemize}
+
+Scene Graph の親子関係に沿って TransMatrix を計算し、Move(), Collision() を
+実行することで Scene Graph 内のオブジェクトが変化する。
+Collision() によって Move() が変更され、Move() によって Coordinates や
+Angle が変更される。これらをどのように変化させるかがゲームのルールとなる。
+
+今回は Scene Graph の作成に、オープンソースの 3D モデリングツールである
+Blender \cite{blender}  を用いる。Blender でオブジェクトを作成し、
+ポリゴン情報やテクスチャ情報が記述された xml ファイルを出力する。
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cerium.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,9 @@
+\section{Cerium}
+Cerium は Scene Graph, Rendering Engine, Task Manager から構成される。
+Scene Graph と Rendering Engine が結合して初めて
+画面上に描画が可能となり、その二つを Task Manager が
+SPE 上で実行させる仕様となっている。
+
+\input{cerium-scene_graph} % Scene Graph
+\input{cerium-rendering}   % Rendering Engine
+\input{cerium-manager}     % Task Manager
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cerium_dev.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,26 @@
+\section{開発過程}
+Cerium を作るために、以下の手順にそれぞれ実装とテストを行う。
+
+\begin{enumerate}
+  \item C によるシーケンシャルな実装 \label{list_dev_1}
+  \item SPE を考慮したデータ構造 (PolygonPack, SpanPack) を持つ実装 \label{list_dev_2}
+  \item コードをタスクに分割し、FIFO キューでシーケンシャルに実行する実装
+  \item タスクを SPE に割り当て並列実行する実装
+\end{enumerate}
+
+(\ref{list_dev_1}) の実装は Task Manager を用いず、プログラムのアルゴリズムの
+信頼性を確認するために用いる。
+この段階では、入力に対して出力が一意に決まる状況であり、テストは容易である。
+シーケンシャルな実装であるため、デバッグも二分法により容易に行うことが出来る。
+
+(\ref{list_dev_2}) における SPE を考慮したデータ構造とは、
+SPE が持つ 256KB という非常に小さなメモリ領域に収まり且つ必要な情報が
+効率よく格納されているデータ構造体である。
+今回は PolygonPack, SpanPack というデータ構造を定義した。
+
+\begin{itemize}
+  \item PolygonPack : Scene Graph から得られた、三角形ポリゴンの頂点の座標、
+    テクスチャの情報、光源の情報から構成される。
+  \item SpanPack : 
+
+\end{itemize}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/figure/scene_graph.bb	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,5 @@
+%%Title: ./scene_graph.pdf
+%%Creator: ebb Version 0.5.2 (+ArtBox)
+%%BoundingBox: 0 0 542 288
+%%CreationDate: Mon Mar 24 02:27:40 2008
+
Binary file figure/scene_graph.graffle has changed
Binary file figure/scene_graph.pdf has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/introduction.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -0,0 +1,3 @@
+\section{はじめに}
+%% シーケンシャルな実装ではマルチコアの力は引き出せないとか
+%% Cell の並列ほげほげは簡単じゃないとか(簡単って書いたらアウトだが)
--- a/sigos.bib	Mon Mar 24 01:30:34 2008 +0900
+++ b/sigos.bib	Mon Mar 24 03:22:50 2008 +0900
@@ -1,4 +1,9 @@
-@manial{cell,
-author = "Sony Corporation.",
+@manual{cell,
+author = "{Sony Corporation.}",
 title  = "Cell broadband engine architecture",
-year   = 2005}
\ No newline at end of file
+year   = 2005}
+
+@misc{blender,
+author = "{Satoshi Yamasaki.}",
+title  = "Blender.jp - Blender Japanese Website",
+howpublished = "\url{http://blender.jp/}"}
\ No newline at end of file
--- a/sigos.tex	Mon Mar 24 01:30:34 2008 +0900
+++ b/sigos.tex	Mon Mar 24 03:22:50 2008 +0900
@@ -1,5 +1,6 @@
 \documentclass[techrep]{ipsjpapers}
 \usepackage[dvipdfm]{graphicx}
+\usepackage{url}
 
 % ユーザが定義したマクロなど.
 \makeatletter
@@ -65,15 +66,11 @@
 
 % 本文はここから始まる
 
-\input{cell}
-%\input{introduction.tex}
-%\input{cbc.tex}
-%\input{description_semantics.tex}
-%\input{main.tex}
-%\input{simulation.tex}
-%\input{level.tex}
+\input{introduction} % はじめに
+\input{cell}             % Cell
+\input{cerium}           % Cerium
+\input{cerium_dev}       % 開発過程
 %\input{conclusion.tex}
-%\input{bib.tex}
 
 \bibliographystyle{ipsjunsrt}
 \bibliography{sigos}