Mercurial > hg > Papers > 2008 > gongo-sigos
view osmesa.tex @ 15:6c558cd2ac8b
*** empty log message ***
author | gongo |
---|---|
date | Sat, 29 Mar 2008 09:33:55 +0900 |
parents | 091d888f7729 |
children |
line wrap: on
line source
\section{OSMesa/SDL を用いた Cell 上でのゲームプログラミング} PS3 では、搭載された Linux を用いて、 PS3 上で動くゲーム開発することができる。 しかし、現在 GPU (Graphics Processing Unit) の API は 一般には公開されていないため、GPU を使った描画はできない。 Frame Buffer 上には直接描画することはできるため、 Cerium の先行研究 \cite{akira} では、 Frame Buffer Engine 用のレンダリングエンジンである OSMesa \cite{osmesa} と、マルチメディアライブラリの SDL \cite{sdl} の二つを用いて開発を行っている。 例題として、テクスチャを貼っていない一つの立方体を 回転させるというプログラムを用いた。 PPE のみを使用した場合の実行速度は約 18 FPS (Frame Per Second) という結果になった。 これは非常に遅い結果で、その理由は、SPE を使用していないため、 Cell の能力を十分発揮できていないからだと考えられる。 次に、OSMesa の一部の機能を SPE に演算させることにより 高速化を図っている。 その際の実行結果を \tabref{tab:osmesa} に示す。 \begin{table}[htbp] \caption{実行速度 (描画領域:1920x1080)} \label{tab:osmesa} \hbox to\hsize{\hfil \begin{tabular}{l|l} \hline \hline 実行環境 & 実行速度\\ \hline SDL(1.2)+OSMesa(6.5.2) & 18 FPS \\ SDL(1.2)+OSMesa(6.5.2) with SPE & 24 FPS \\ SDL(1.2.13)+OSMesa(7.0.2) with SPE & 43 FPS \\ \hline \end{tabular}\hfil} \end{table} \tabref{tab:osmesa}より、SPE に処理を任せれば実行速度は 速くなるということを示している。同時に、OSMesa を細分化し、 できるだけ SPE を使うような設計ができれば より速くなる可能性を示すものである。 しかし、OSMesa は巨大なマクロによるプログラム記述や コピーの多用、巨大な構造体等がある。 テクスチャに関しても、使用するテクスチャモードによって いくつものコードが呼び出される。 それら全てのコードに対しての細分化や、 後に拡張をすることは難しい。