★ DirectX Class ★ * Chapter 07: 立体 *
< プリミティブの種類 >
DirectXではポリゴンのことを『プリミティブ』とよびます。
前章で三角形を表示しましたが、そのときに、『 DrawPrimitive 』の第一引数に『 D3DPT_TRIANGLESTRIP 』を指定しました。
しかし、ここで指定する引数を変えると、描画する三角形の種類を変更することができます。

前章では頂点を3つ使って1つのプリミティブを表示しましたが、4つ以上の頂点を使って複数のプリミティブを表示することができて便利です。
これは、複数のプリミティブを1つのLPDIRECT3DVERTEXBUFFER9クラスを使って管理できることになり、
これによって私たちは1つ1つのプリミティブ毎にLPDIRECT3DVERTEXBUFFER9クラスを生成しなければならないという苦役から開放されます。
但し、この恩恵を授かることができるのは、プリミティブを2つ以上描画する場合です

この章ではDirectXがサポートしている3つのプリミティブのタイプを解説していきます。
< Triangle Lists >
『 Triangle Lists 』は、独立したプリミティブです。
イメージは以下の通りです。

Triangle Lists
この描画方法では、独立したプリミティブを描画することができます。
独立したプリミティブを描画するため、『 (描画するプリミティブの数) × 3 』個の頂点情報を格納する必要があります。

このプリミティブを描画するには、『 DrawPrimitive 』の第一引数に『 D3DPT_TRIANGLELIST 』を指定します。
< Tiangle Strips >
『 Triangle Strips 』は、複数の繋がったプリミティブです。
ジグザグに描画していくのが特徴です。
イメージは以下の通りです。

Triangle Strips
前章のカリングの話を覚えておられる方は、「 2 - 3 - 4 」の三角形で、 「これって裏になるの?」
と思われるかもしれませんが、『 Triangle Strips 』のときに限ってはこれが表です。
同様に「 4 - 5 - 6 」も表になります。
『時計周り』『反時計周り』『時計回り』『反時計周り』・・・の順で繰り返すと表が維持されます。

このプリミティブには、『 (描画するプリミティブの数) + 2 』個の頂点情報が必要です。

また、このプリミティブを描画するには、『 DrawPrimitive 』の第一引数に『 D3DPT_TRIANGLESTRIP 』を指定します。
< Triangle Fans >
『 Triangle Fans 』は、複数の繋がったプリミティブです。
扇を描くように描画していくのが特徴です。
イメージは以下の通りです。

Triangle Fans
多角形や、多角錐を描くのに向いているような気がします。
最初の頂点を中心に、ぐるっと一周分頂点を打てば、円盤なんかも描けると思います。

このプリミティブには、『 (描画するプリミティブの数) + 2 』個の頂点情報が必要です。

また、このプリミティブを描画するには、『 DrawPrimitive 』の第一引数に『 D3DPT_TRIANGLEFAN 』を指定します。
< サンプル >
今回はサンプルなしです。
執筆: 2008/09/25 (THU)