Megosztás a következőn keresztül:


Háromszögcsíkok

A háromszögcsík összekapcsolt háromszögek sorozata. Mivel a háromszögek csatlakoztatva vannak, az alkalmazásnak nem kell minden egyes háromszög mindhárom csúcsát ismételten megadnia. Például csak hét csúcsra van szüksége a következő háromszögsáv definiálásához.

háromszögcsík ábrája hét csúcsponttal

A rendszer v1, v2 és v3 csúcsokat használ az első háromszög rajzolásához; v2, v4 és v3 a második háromszög rajzolásához; v3, v4 és v5 a harmadik rajzolásához; v4, v6 és v5 a negyedik rajzolásához; és így tovább. Figyelje meg, hogy a második és negyedik háromszög csúcsai sorrenden kívül vannak; ez annak biztosításához szükséges, hogy az összes háromszög óramutató járásával megegyező irányban legyen rajzolva.

A térhatású jelenetek legtöbb objektuma háromszögcsíkokból áll. Ennek az az oka, hogy a háromszögcsíkok olyan összetett objektumok megadására használhatók, amelyek hatékonyan használják a memóriát és a feldolgozási időt.

Az alábbi ábra egy renderelt háromszögcsíkot ábrázol.

renderelt háromszögcsík ábrája

Az alábbi kód bemutatja, hogyan hozhatók létre csúcspontok ehhez a háromszögsávhoz.

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

Az alábbi kód példája bemutatja, hogyan jelenítheti meg ezt a háromszögcsíkot a Direct3D 9-ben IDirect3DDevice9::D rawPrimitivehasználatával.

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

Háromszögcsík használatával jeleníthet meg olyan háromszögeket, amelyek nem kapcsolódnak egymáshoz. Ehhez adjon meg egy elfajult háromszöget (azaz egy háromszöget, amelynek területe nulla) a háromszöglistában. Ez létrehoz egy vonalat a két háromszög között, amely nem jelenik meg. Ha csak az előző példában szereplő első és utolsó háromszögeket szeretné megjeleníteni, módosítsa a csúcspuffert az itt látható módon:

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

Primitívek