共用方式為


三角形清單

三角形清單是隔離的三角形清單。 它們可能或可能不會彼此接近。 三角形清單必須至少有三個頂點,而且頂點總數必須以三個分隔。

使用三角形清單來建立由脫離片段組成的物件。 例如,在 3D 遊戲中建立強制場牆的其中一種方式,就是指定一個大型的小型未連接三角形清單。 然後套用材質和紋理,該材質和紋理會發出光線到三角形清單。 牆中的每個三角形都顯得發光。 牆後面的場景在三角形之間的縫隙中變得部分可見,因為玩家在看力場時可能會期待。

三角形清單也可用於建立具有尖銳邊緣且使用 Gouraud 底紋著色的基本類型。 請參閱 臉部和頂點法向量 (Direct3D 9)

下圖描述轉譯的三角形清單。

轉譯三角形清單的 圖例

下列程式代碼示範如何為此三角形清單建立頂點。

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}

};

下列程式代碼範例示範如何使用 IDirect3DDevice9::D rawPrimitive,在 Direct3D 9 中轉譯此三角形清單。

//
// It is assumed that d3dDevice is a valid
// pointer to a IDirect3DDevice9 interface.
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

您也可以使用三角形帶來呈現未彼此連接的三角形。 若要這樣做,請在清單中指定變質的三角形(也就是大小為零的三角形;這會建立兩個三角形之間的線條,這不會在轉譯期間出現。 例如,若要只轉譯上一個範例中的第一個和最後一個三角形,請使用下列頂點初始化頂點緩衝區:

CUSTOMVERTEX Vertices[] =
{
    {-5.0, -5.0, 0.0},
    { 0.0,  5.0, 0.0},
    { 5.0, -5.0, 0.0},
    { 5.0, -5.0, 0.0}, // degenerate triangle
    {10.0,  5.0, 0.0}, // degenerate triangle
    {10.0,  5.0, 0.0},
    {15.0, -5.0, 0.0},
    {20.0,  5.0, 0.0}
};

基本類型