Mercurial > hg > Papers > 2009 > tkaito-sigos
view paper/cerium.tex @ 7:3aab00763c40
chapter "cerium" add
author | admin@e055734.st.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 18 Mar 2009 14:54:51 +0900 |
parents | e7da353fafe2 |
children | 60d0beada50d |
line wrap: on
line source
\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 上にロード されていることが望ましい。