
コンピュータゲーム用に作成された3Dオブジェクトの大部分は、ポリゴンで構成されています。ポリゴンは、線で定義された領域です。ポリゴンを作成するには、少なくとも3本の線が必要です。
線は、コンピューターが作成する3次元の「空間」内の一連の座標を接続します。線が接続する点は頂点と呼ばれます。各頂点には、X、Y、Z座標があります。
- Xは、仮想空間の右または左を基準にした位置を決定します
- Yは、仮想空間の上部または下部を基準にした位置を決定します
- Zは、仮想空間の前面または背面に対する相対的な位置を決定します
各ポリゴンにその形状を定義するための頂点のセットがあると、どのように見えるかを伝える情報が必要になります。これを行う一般的な方法は4つあります。
- フラットシェーディング
- グーローシェーディング
- フォンシェーディング
- テクスチャマッピング
フラットシェーディングは、ポリゴンに単一の色を割り当てるだけです。非常にシンプルで高速ですが、オブジェクトは非常に人工的に見えます。グーローシェーディングはより複雑です。各頂点に色が割り当てられ、ポリゴンの面全体に色がブレンドされます。通常、各頂点は少なくとも3つの異なるポリゴンに関連付けられているため、これにより、オブジェクトはファセットではなく自然に見えます。この例を見てください:

グーローシェーディングのあるボールは、フラットシェーディングのボールよりもはるかに滑らかに見えることに気付くでしょう。しかし、2つのボールの輪郭をよく見てください。ここで、両方のボールのポリゴン数がまったく同じであることがわかります。
より複雑なバージョンのシェーディングであるフォンは、ゲームで使用されることはめったにありません。グーローシェーディングが頂点間で平均化することによって色を補間する場合、フォンシェーディングは、隣接するピクセルの色に基づいて各ピクセルを平均化します。
ポリゴンの外観を決定するためのもう1つの一般的な手法は、テクスチャマッピングを使用することです。テクスチャマッピングは、プレゼントを包むようなものだと考えてください。ラップするボックスの各辺は空白のポリゴンです。箱をペイントすることはできますが、包装紙のすべてのデザインに一致させることは非常に困難です。しかし、包装紙を持って箱をしっかりと覆うと、ほんの少しの努力で箱が完全に変形します。
テクスチャマッピングは同じように機能します。マッピングには別の画像を使用する必要があります。この他の画像は、基本的にスキンのようにオブジェクト上に引き伸ばされます。ほとんどのビデオゲームコンソールとコンピュータグラフィックスアダプタには、テクスチャマッピングに使用される特別な画像を保存し、その場で各ポリゴンに適用する特別なチップと専用メモリが含まれています。これにより、トゥームレイダーなどのゲームは、リアルタイムで操作できる非常に詳細な3D環境を持つことができます。
ここにいくつかの興味深いリンクがあります:
- 3Dグラフィックスのしくみ
- インタラクティブシェーディングアプレット!
- テクスチャマッピングを使用したプログラミング
- テクスチャマッピングに関するSGIレポート
- 3DFXプログラミング