annotate conclusion.tex @ 10:887d57278cb6

*** empty log message ***
author gongo
date Wed, 26 Mar 2008 12:59:31 +0900
parents bd8574dedd1b
children 6c558cd2ac8b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
1 \section{まとめ}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
2 本研究では、Cell 上で動作する Task Manager を実装し、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
3 3D Graphics Renderer である Cerium を開発した。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
4 Cerium を用いることで、PlayStation 3 上という限られた環境だけでなく、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
5 Linux や Mac OS X でもテストやデバッグを行うことが出来る。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
6
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
7 また、 Task Manager の実装を進めれば、Cell 以外の
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
8 Multi Core Architecture に対しても使用できると考えている。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
9
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
10 \section{今後の課題}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
11
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
12 \subsection{Scene Graph}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
13 カメラや光源、コントローラ等からの入力に対応するノードが未実装である
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
14
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
15 また、ネットワークを管理するノードを実装すれば、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
16 Federated Linda \cite{fuchita} を用いた
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
17 ネットワークゲーム開発も可能である。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
18
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
19 \subsection{Rendering}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
20 必要最低限の機能は実装しているが、ゲームとしては
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
21
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
22 \begin{itemize}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
23 \item Shading
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
24 \item Alpha blending
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
25 \end{itemize}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
26
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
27 が欲しいところである。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
28
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
29 現在は描画時に Z Buffer を用いているが、Z sort を用いることにより、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
30 SPE 上に Z Buffer の領域は必要なくなる。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
31 Z sort とは、面に対してどちらが手前にあるかというのを判断し、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
32 おくにある面から描画していく手法である。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
33
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
34 \subsection{Task Manager}
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
35 プログラムを SPE 上にロードする機能は必須である。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
36
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
37 このライブラリを学生が使用する場合、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
38 並列化のためのデータとコードの分割は、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
39 並列プログラミングの経験がない学生には難しいため、
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
40 何らかのひな形を示す必要がある。
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
41
7
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
42 \figref{fig-pipeline} では、Task Exec の中で DMA の処理を
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
43 行うことを想定した実装にはなっていない。
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
44 Exec の中でアドレスの計算をし、それを元に DMA 転送をする、というのもありえる。
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
45 しかし、ユーザが勝手に DMA 命令を発効すると、DMA 完了待ちやデータ重複など、
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
46 パイプラインの流れが崩れてしまう恐れがある。
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
47 それを回避する実装が必要である。
bd8574dedd1b *** empty log message ***
gongo
parents: 6
diff changeset
48
6
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
49 現在は C++ で記述しているが、CbC に書き換えることで
a46c6f313a0b *** empty log message ***
gongo
parents:
diff changeset
50 モデル検査を行うことができ、高い信頼性を得られる。