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


Полоски треугольников

Полоса треугольника представляет собой ряд подключенных треугольников. Так как треугольники подключены, приложению не нужно многократно указывать все три вершины для каждого треугольника. Например, для определения следующей полосы треугольника требуется только семь вершин.

Пример

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

Система использует вершины версии 1, v2 и v3 для рисования первого треугольника; v2, v4 и v3 для рисования второго треугольника; 3, v4 и v5 для рисования третьего; 4, v6 и v5, чтобы нарисовать четвертый; и т. д. Обратите внимание, что вершины второго и четвертого треугольников не упорядочены; Это необходимо, чтобы убедиться, что все треугольники рисуются в ориентации по часовой стрелке.

Большинство объектов в трехмерных сценах состоят из полос треугольников. Это связано с тем, что полосы треугольников можно использовать для указания сложных объектов таким образом, чтобы эффективно использовать память и время обработки.

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

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

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

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

В приведенном ниже примере кода показано, как отобразить эту полосу треугольника в Direct3D.

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

Полигоны

Часто полосы треугольников используются для построения многоугольников. Многоугольник является закрытой трехмерной фигурой, разделенной по крайней мере тремя вершинами. Самый простой многоугольник является треугольником. Microsoft Direct3D использует треугольники для создания большинства его многоугольников, так как все три вершины в треугольнике гарантированно являются coplanar. Отрисовка неплановых вершин неэффективна. Вы можете объединить треугольники для формирования больших многоугольников и сеток.

На следующем рисунке показан куб. Два треугольника образуют каждое лицо куба. Весь набор треугольников формирует один кубический примитив. Текстуры можно применить к поверхностям примитивов, чтобы сделать их похожей на одну сплошную форму. Дополнительные сведения см. в разделе "Текстуры".

иллюстрация куба с двумя треугольниками на каждой стороне

Вы также можете использовать треугольники для создания примитивов, поверхности которых, как представляется, гладкие кривые. На следующем рисунке показано, как можно имитировать сферу с помощью треугольников. После применения материала сферу можно сделать, чтобы выглядеть изогнутой при отрисовки.

иллюстрация сферы, имитируемой с помощью треугольников

Примитивы