Dreieck-Lüfter (Direct3D 9)
Ein Dreieckfächer ähnelt einem Dreiecksstreifen, mit der Ausnahme, dass alle Dreiecke einen Scheitelpunkt teilen, wie in der folgenden Abbildung dargestellt.
Das System verwendet die Scheitelpunkte v2, v3 und v1, um das erste Dreieck zu zeichnen. v3, v4 und v1, um das zweite Dreieck zu zeichnen; v4, v5 und v1, um das dritte Dreieck zu zeichnen; Und so weiter. Wenn die flache Schattierung aktiviert ist, schattiert das System das Dreieck mit der Farbe vom ersten Scheitelpunkt.
Die folgende Abbildung zeigt einen gerenderten Dreiecksfächer.
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 mithilfe von IDirect3DDevice9::D rawPrimitive rendern.
//
// It is assumed that d3dDevice is a valid
// pointer to a IDirect3DDevice9 interface.
//
d3dDevice->DrawPrimitive( D3DPT_TRIANGLEFAN, 0, 4 );
Dreieck-Lüfter werden in Direct3D 10 oder höher nicht unterstützt.
Zugehörige Themen