2006年度 システム情報科学特別演習(イントロダクトリセミナー)関連技術調査レポート
ハードウェアによるCGの高速化技術
3次元グラフィックスの処理の流れ
上図は、一般的な3次元グラフィックスの処理の流れを示している。各段階の処理の内容は次の通りである。
(1) シーンデータ作成
表示するモデルデータなどの作成やカメラおよびライトの設定。
(2) トラバーサル
シーンデータを解釈して必要な描画オブジェクトと描画命令を次段階へ渡す。
(3) ジオメトリ処理
モデルの座標変換、光源計算、投影変換、クリッピング処理などを行う。
(4) ラスタライズ
ジオメトリデータのラスタ化やシェーディング処理、Zバッファ処理、テクスチャ処理などを行う。
(5) 表示
ビデオメモリの値を読み出し表示する
ラスタライズと表示の部分は、初期のグラフィックカードからハードウェアで実装されている。現在の3次元グラフィックカードでは、特にジオメトリ処理の部分をハードウェアで実装し、高速描画を実現している。
3次元グラフィックスの描画の高速化は、さまざまなアプローチがある。
ジオメトリ処理の高速化
ジオメトリ処理には、CPUで行う方法(ソフトウェアによるアプローチ)と、グラフィックプロセッサで行う方法(ハードウェアによるアプローチ)がある。
ハードウェアによるアプローチとしては、ジオメトリエンジンと呼ばれるジオメトリ処理を専用に行うチップがハードウェアとして実装され、最近の3次元グラフィックボードのほとんどに搭載されるまでになっている。
CPUの演算速度が十分速ければ、ジオメトリエンジンは不要であるが、現状ではジオメトリエンジンの処理能力がCPUを上回っている。
プロセッサの並列化
グラフィックプロセッサを並列搭載して描画性能を向上させる手法であり、ハイエンドのOpenGL用グラフィックアクセラレータのほとんどが採用している。
ラスタライズの分散処理では、ラスタライズプロセッサの数だけ画面を細分割して、各スレッドの処理を割り当てている。
データ転送の高速化
上図に示すように、一般的にCPUで処理されたモデルのデータは、PCのメインメモリに保存されてからグラフィックプロセッサに転送される。
そこで、メインメモリにデータを転送せずに、CPUから直接グラフィックプロセッサにデータを転送すれば、データ転送の高速化が可能になる。
家庭用ビデオゲームの現状
初めての家庭用ビデオゲーム機「オデッセイ」(Magnavox社)が登場したのが、札幌冬季オリンピックの開催された1972年であった。
その後30年の年月を経た家庭用ビデオゲーム機の現状を本節で簡単に述べる。
家庭用ビデオゲーム機の世代交代
任天堂の「ファミリーコンピュータ」が登場(1983年)する以前から、いくつかの家庭用ゲーム機が発売されていた。
家庭用ゲーム機の世代交代を表 3.10-1にまとめたが、この分類はハードウェアのモデルチェンジにあわせたものである。
後述するが、ゲームの外見の質が劇的に変わったのは、3次元グラフィックス機能が搭載され、ゲームの提供に大容量の補助記憶メディアが使われるようになった、第3世代のビデオゲーム機である。
PS2・ゲームキューブ・XBOX
現在の家庭用ビデオゲーム機は、PS2(ソニー、1999年)、ゲームキューブ(任天堂、2001年)、XBOX(マイクロソフト、2001年)の3つが主流と考えられている。
主要な機能の比較を表 3.10-2に挙げる。
3機種の中では、XBOXがいちばんPCに近いアーキテクチャとなっており、ハードディスクやLANポートまで備えている。
PS2では、コアとなるEmotion Engineにジオメトリエンジンが含まれており、このメディアプロセッサを中心に構成されたアーキテクチャとなっている。
一方ゲームキューブでは、CPUとメインメモリ以外の要素は、ほぼFlipperと呼ばれる1チップに集積されている。
XBOXでは、グラフィックスのAPIにDirectXを用いており、PCゲームの開発者が移植しやすいようになっている。
一方、PS2では、LINUXによる開発環境をとっており、ミドルウェアの開発が重要な位置を占めている。
描画性能は後発のXBOXが3機種の中でいちばん優れており、毎秒125メガポリゴン、すなわち30フレーム/秒の場合に、1画面約400万ポリゴンで構成されるシーンを表示できる。
関連用語
ビデオカード
ビデオカード(グラフィックスカード)は、コンピュータ(主にパソコン)で、映像を信号として出力または入力する機能をカード(電子基板)として独立させたもの。
カードに搭載されているチップやメモリによって描画速度、解像度、3D性能などが異なる。
自作組み立て式のPC/AT互換機では表示回路がマザーボード上に実装されていなかったため、ビデオカードは別途必須であった。
しかし近年は、標準的な作業を行うには支障のない程度の性能を備えた表示回路を組み込んだチップセットと、それを搭載したマザーボードが増えており、安価なPCではビデオカードを搭載していないものが増えている。
NVIDIA:http://jp.nvidia.com/page/home.html
ATI:http://www.ati.com/jp/
GPU
GPU(Graphics Processing Unit)又はVPU(Visual Processing Unit)とは、ジオメトリエンジンなどのハードウェアによる演算能力を備えているグラフィックスプロセッサを指す言葉である。
GPUは、 NVIDIA Corporation (nVIDIA) 、VPUは ATI Technologies Inc. によってそれぞれ命名された。
パーソナルコンピュータ及びワークステーション用のグラフィック処理用のチップがCPUと同じように高性能化されてきたので、CPUに代わるコンピュータの中心的なチップになるという意味を持つ。
GPUの場合、 GeForce 256 シリーズ以降のグラフィックスプロセッサを指す語として使われている。
最近では、チップセット内にGPUの機能を統合したものが増えてきた為、GPU単体の製品は比較的高価で高性能なものへとシフトしている。
グラフィックアクセラレーター
グラフィックアクセラレータ (Graphics Accelerator) は、フレームバッファやコンピュータに搭載されているグラフィックス表示機能を高速化する仕組を指す。
また、その仕組みを組み込んだフレームバッファ自身を示す。
昔は、DOS上のCADでの使用を目的として、線や円、曲線の高速描画やその拡大縮小に関する処理の高速化に重点がおかれて開発された物を指していたが、今日では、CADソフトウェアのWindowsやUNIXへの移植に伴い、OpenGLによる描画をハードウェア的に高速化する機能を備えたものを指すようになっている。
出展・参考文献
人間主体の知的情報技術に関する調査研究V
http://www.icot.or.jp/FTS/REPORTS/H13-reports/H1403-AITEC-Report3/AITEC0203R3-html/AITEC0203R4-ch3-10.htm
wikipedia
http://ja.wikipedia.org/
調査担当: システム制御情報学研究室 佐藤 悠太 (提出年月日:2006年5月23日)