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 );