# HG changeset patch # User admin@e055734.st.ie.u-ryukyu.ac.jp # Date 1237355691 -32400 # Node ID 3aab00763c405054ce043c1462b142c8d7693bfe # Parent e7c35212c0ae7546f52b803b0a05874793caf735 chapter "cerium" add diff -r e7c35212c0ae -r 3aab00763c40 paper/cerium.tex --- a/paper/cerium.tex Wed Mar 18 00:06:11 2009 +0900 +++ b/paper/cerium.tex Wed Mar 18 14:54:51 2009 +0900 @@ -1,1 +1,50 @@ \section{Cerium} + +本論文で示しているゲームフレームワークは学生実験での使用を目的としている。 +現在、学生実験では Playstation 3 を用いたゲームプログラミングを行っている。 + +これまでは Playstation 3 上での Linux 環境で SDL と OpenGL を用いて実験を行っていた。 +OpenGL とは Silicon Graphics 社が中心となって開発された、OS や ハードウェアに依存しない +グラフィック処理のためのプログラミングインターフェイスである。 + +しかしながら Playstation 3 の PowerPC シングルプロセッサ上では Playstation 3 の特徴である +Cell の性能は活かせない。 +そこで同研究室の神里晃が OSmesa に手を加え、一部の機能を SPE に +演算させることにより、高速化させた。OSMesa とは OS やハードウェアに依存しないオフスクリーン +レンダリングライブラリである。しかし、OSMesa は機能が豊富な反面、よけいな演算が増え、 +ソースコードは複雑で手を加えることが難しくなった。\cite{chiaki} + +そのような理由から、我々は独自の Rendering Engine を持つことにした。その Rendering Engine を +Cerium としている。Cerium は以下の 3 つの要素から構成されている。 + \\ +\begin{itemize} +\item SceneGraph +\item Rendering Engine +\item Task Manager +\end{itemize} + \\ +\subsection{SceneGraph} + +ゲームの中の一つの場面 (Scene) を構成するオブジェクトやその振る舞い、ゲームのルールの集合を SceneGraph +とする。SceneGraph の各ノードがゲームの一部であるオブジェクトの振る舞いやゲームのルールとなり、 +ノードをたどり実行することでゲームの中の一つの場面となる。SceneGraph はゲームプログラムとしての +条件を満たす物なので、一つの SceneGraph で小さなゲームと言える。 + +\subsection{Rendering Engine} + +Rendering Engine は Polygon から Span を生成する部分と Span に RGB を +マッピングし描画する部分と二つに分けることが出来る。 +Span とは、Polygon に対するある特定の Y 座標に関するデータを抜き出した +ものである。 + +\subsection{Task Manger} + +Task Manager は、Task と呼ばれる分割された各プログラムを +管理するライブラリである。Task 同士の依存関係を考慮しながら +メモリ上にマッピングし、SPE 上ではそのプログラムを +DMA 転送によりロードする。 +SPE は 256KB という小さなデータ量しか持てず、 +大量のプログラムを全て SPE 上に置いておくことはできない可能性がある。 +そのため、必要な時に必要な実行プログラムだけが SPE 上にロード +されていることが望ましい。 +