Шаг 34 - Список треугольников

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

34_1.gif (1303 b)

Система использует вершины v1, v2, и v3, чтобы нарисовать первый треугольник, v2, v4, и v3 - второй треугольник, v3, v4, и v5 - третий, v4, v6, и v5 - четвертый и так далее. Заметьте, что вершины второго и четвертого треугольника не по порядку. Это нужно, чтобы удостовериться, что все треугольники нарисованы по часовой стрелке.

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

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

34_2.gif (1927 b)

Ниже показан код, как создать вершины выше приведенного рисунка:

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 - Добавляем второй треугольник".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Хавов Евгений Валерьевич - 23.08.2002