Microsoft DirectX 8.0 (C++)

三角形リスト

三角形リストとは、個々の三角形のリストである。三角形は互いに隣接していても離れていてもよい。三角形リストには、少なくとも 3 つの頂点が必要である。頂点の総数は 3 の倍数でなければならない。

独立した要素から構成されるオブジェクトの作成には、三角形リストを使用する。たとえば、3D ゲームで電磁力界壁を作成するには、単独の小さな三角形を多数集めたリストを指定する。次に、この三角形リストにマテリアルやテクスチャを適用して、光を発しているように見せる。壁の三角形それぞれが輝いて見えるようになる。プレーヤーが電磁力界とはこう見えるだろうと期待するとおりに、壁の背後のシーンが三角形の間の隙間を通して部分的に見えるようになる。

また、三角形リストは、グーロー シェーディングで陰影を付けた、鋭いエッジを持つプリミティブを作成するときに便利である。「面法線ベクトルと頂点法線ベクトル」を参照すること。

次の図は、レンダリングされる三角形リストを示している。

次のコードは、三角形リストに対して頂点を作成する方法を示している。

struct CUSTOMVERTEX
{
    float x,y,z;
};

CUSTOMVERTEX Vertices[] = 
{
    {-5.0, -5.0, 0.0},
    { 0.0,  5.0, 0.0},
    { 5.0, -5.0, 0.0},
    {10.0,  5.0, 0.0},
    {15.0, -5.0, 0.0},
    {20.0,  5.0, 0.0}

};

次のコードは、IDirect3DDevice8::DrawPrimitive を使用して、三角形リストをレンダリングする方法を示している。

//
// d3dDevice は、IDirect3DDevice8 インターフェイスへの
// 有効なポインタであると仮定している。
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );