Zaurus GA 3D Engine マニュアル【3D Engine 解説 基礎知識編】 Copyright 1999-2000 小笠原博之 3D ライブラリ galib を使うにあたって必要となる用語や概念を簡単に説明します。 ●描画手順 画面に描画すべき画像は、すべてバックバッファに作成します。バックバッファに 作成した画像は最後に実際の画面(プライマリバッファ)に転送し、1コマ分の描画が 完了します。 このバックバッファ、プライマリバッファのことをフレームバッファと呼びます。 (1) フレームバッファのクリア (2) 必要個数分のオブジェクト描画 (ジオメトリ演算、レンダリング) (3) バックバッファの描画 この一連の描画の流れを 1秒間に何コマも行うことで、リアルタイムに映像が動い ている様に見えます。この 1コマのことをフレームと呼びます。 1秒間に何回画面の更新ができるかを、速度の単位として用いることがあります。 30fps は、1秒間に 30フレーム分描画を行うことを意味しています。 一般の TV 映像は、30枚の絵を 1秒間に60回描画することで映像を表現しています。 家庭用のゲーム機の場合、1秒間に 20〜60回の描画更新を行っているのが普通です。 ●ジオメトリ演算とレンダリング ポリゴンを使ったレンダリングシステムでは、物体をすべて多角形の平面の組み合わ せで表現します。この多角形のことをポリゴンと呼びます。多角形といっても、処理 の都合上、多くの場合三角形だけが使われます。 3D 空間にある物体(ポリゴン)は、X, Y, Z の 3つの座標値を持っています。この座標 を動かすことで、物体の位置や向きを変更することができます。また、空間上に配置 された物体を三次らしく見せるには、遠くのものを小さく描かなければなりません。 ポリゴンで作られた平面の集まりが、より立体らしく見えるためには、光のあたり具 合によって各面の明るさを変更しなければなりません。 このような、一連の座標変換、透視変換、光源計算などの処理を、ジオメトリ演算と 呼びます。 計算によって変換されたポリゴンは、最終的にバックバッファに書き込まなければな りません。実際に描画を行い、映像として見ることができる形に変換することをレン ダリングと呼びます。 ●ポリゴンと頂点 ポリゴン(多角形)は、頂点の組み合わせで表現します。三角形の場合 3つの頂点が必 要です。 GA 3D Engine では、ポリゴンの各頂点に位置座標と向きのベクトルを与えます。テ クスチャを貼る場合は、各頂点に対応するテクスチャ画像上の座標値も必要です。 ・1つの頂点情報 (x, y, z) 座標 (nx, ny, nz) 頂点の向き(法線ベクトル) (tu, tv) 対応するテクスチャ上の座標(uv座標) 頂点に向きがあるのは、グーローシェーディングを行うためです。テクスチャを貼ら ない場合、tu, tv は無視されます。 ●ポリゴンの描画と表と裏面 ポリゴンを描画する場合、各頂点が画面から見たとき時計周りに並んでいる場合を 「表面」、半時計周りに並んでいる場合を「裏面」と定義します。 GA 3D Engine では、裏面になっているポリゴンは見えないものとして描画しません。 このように、描画すべきポリゴンを選別する処理のことを Culling と呼びます。 ●マテリアル マテリアルは、物質の質感を表現するためのパラメータです。主に光の反射具合を表 し、物体の色(拡散光)やテクスチャもマテリアルに含まれます。 ●シェーディングとテクスチャ ポリゴンに、光のあたり具合によって陰を付けることをシェーディングと呼びます。 ポリゴンの面単位で明るさを変えると、ポリゴンの角が際立った映像になります。最 もポリゴンらしい表示になりますが、これがフラットシェーディングです。 隣り合ったポリゴン同士で明るさにグラデーションを付けを行うと、ポリゴンの角が 目立たなくなります。このように陰影を滑らかに見せることをスムーズシェーディン グと呼びます。GA 3D Engine が実装しているグーローシェーディングは、スムーズ シェーディングの一種です。 グーローシェーディングを行うと、少ないポリゴンでも丸みを帯びた表現を行うこと ができます。 ポリゴンの各面には、あらかじめ用意した画像を貼り付けることができます。この画 像をテクスチャと呼び、ポリゴンに貼り付けることをテクスチャマッピングと呼びま す。 2000/01/15 作成 小笠原博之 oga@art.udn.ne.jp http://www.vector.co.jp/authors/VA004474/