Список треугольников - это ряд связанных треугольников. Т.к. все трегольники связаны между собой, то не нужно определять три вершины для каждого треугольника. Например, Вы можете определить только семь вершин для следующего списка треугольников:
Система использует вершины v1, v2, и v3, чтобы нарисовать первый треугольник, v2, v4, и v3 - второй треугольник, v3, v4, и v5 - третий, v4, v6, и v5 - четвертый и так далее. Заметьте, что вершины второго и четвертого треугольника не по порядку. Это нужно, чтобы удостовериться, что все треугольники нарисованы по часовой стрелке.
Большинство объектов в 3D сценах составлены из списка треугольников. Потому что из списка трегольников можно создать сложные объекты, которые в свою очередь эффективно используют время обработки и память.
Следующий рисунок показывает один из примеров списка треугольников:
Ниже показан код, как создать вершины выше приведенного рисунка:
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} };
Дальше приведен код как использовать функцию IDirect3DDevice8::DrawPrimitive, чтобы отобразить все это на экране:
// Предполагается, что d3dDevice уже инициализирован // указатель на интерфейс IDirect3DDevice8 d3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 4);
См. раздел Direct3D: "Шаг 5 - Добавляем второй треугольник".