Freigeben über


Dreiecksfächer (Direct3D 9)

Ein Dreiecksfächer ähnelt einem Dreiecksstreifen, mit der Ausnahme, dass alle Dreiecke einen Scheitelpunkt teilen, wie in der folgenden Abbildung dargestellt.

Abbildung eines Dreiecksfächers

Das System verwendet Scheitelpunkte v2, v3 und v1, um das erste Dreieck zu zeichnen; v3, v4 und v1 zum Zeichnen des zweiten Dreiecks; v4, v5 und v1, um das dritte Dreieck zu zeichnen; Und so weiter. Wenn flache Schattierung aktiviert ist, schattiert das System das Dreieck mit der Farbe vom ersten Scheitelpunkt.

Die folgende Abbildung zeigt einen gerenderten Dreiecksfächer.

Abbildung eines gerenderten Dreiecksfächers

Der folgende Code zeigt, wie Scheitelpunkte für diesen Dreiecksfächer erstellt werden.

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

CUSTOMVERTEX Vertices[] = 
{
    { 0.0, 0.0, 0.0},
    {-5.0, 5.0, 0.0},
    {-3.0,  7.0, 0.0},
    { 0.0, 10.0, 0.0},
    { 3.0,  7.0, 0.0},
    { 5.0,  5.0, 0.0},
};

Im folgenden Codebeispiel wird gezeigt, wie Sie diesen Dreiecksfächer in Direct3D 9 mit IDirect3DDevice9::D rawPrimitiverendern.

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

Dreiecksfächer werden in Direct3D 10 oder höher nicht unterstützt.

Grundtypen