Составленный из треугольников куб
Рисунок 2.5. Составленный из треугольников куб
<
Для решения этой проблемы мы добавим концепцию индексов (indices). Она действует следующим образом: мы создаем список вершин и список индексов. В списке вершин перечисляются все уникальные вершины, а список индексов содержит последовательность номеров (индексов) вершин из списка вершин, показывающую как объединяются вершины для формирования треугольников. Для примера с прямоугольником список вершин мог бы выглядеть так:
Vertex vertexList[4] = {v0, v1, v2, v3};
Тогда список индексов, описывающий как из имеющихся вершин формируются два треугольника, будет выглядеть так:
WORD indexList[6] = {0, 1, 2, // треугольник 0 0, 2, 3}; // треугольник 1
Если облечь код в слова, определение массива indexList говорит, что треугольник 0 образован нулевым (vertexList[0]), первым (vertexList[1]) и вторым (vertexList[2]) элементами списка вершин, а треугольник 1 образован нулевым (vertexList[0]), вторым (vertexList[2]) и третьим (vertexList[3]) элементами списка вершин.