Microsoft DirectX 8.0 (C++)

三角形ストリップ

三角形ストリップとは、一連の結合された三角形である。三角形は結合されているため、各三角形に対して 3 つの頂点すべてをアプリケーションで繰り返し指定する必要はない。たとえば、次の三角形ストリップを定義する場合、必要となるのは 7 つの頂点だけである。

システムでは、頂点の v1、v2、v3 を使用して最初の三角形を、v2、v4、v3 を使用して 2 番目の三角形を、v3、v4、v5 を使用して 3 番目の三角形を、v4、v6、v5 を使用して 4 番目の三角形を、という手順で描画していく。2 番目と 4 番目の三角形の頂点が順序どおりでないことに注意する。これは、すべての三角形が時計回りの向きに描画されることを保証するために必要である。

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_TRIANGLESTRIP, 0, 5 );