Поделиться через


Вентиляторы треугольников (Direct3D 9)

Вентилятор треугольника похож на полосу треугольника, за исключением того, что все треугольники имеют одну вершину, как показано на следующем рисунке.

иллюстрация вентилятора треугольника

Система использует вершины версии 2, v3 и v1 для рисования первого треугольника; v3, v4 и v1 для рисования второго треугольника; v4, v5 и v1 для рисования третьего треугольника; и т. д. Если включена плоская заливка, система оттеняет треугольник с цветом от первой вершины.

На следующем рисунке показан отрисованный вентилятор треугольника.

иллюстрация отрисованного вентилятора треугольника

В следующем коде показано, как создать вершины для этого вентилятора треугольника.

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

В приведенном ниже примере кода показано, как отобразить этот вентилятор треугольника в Direct3D 9 с помощью IDirect3Device9::D rawPrimitive.

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

Вентиляторы треугольников не поддерживаются в Direct3D 10 или более поздней версии.

Примитивы