Народный учебник по OpenGL



             

Урок 31. Визуализация моделей Milkshape 3D - часть 2


       float m_location[3];

};

// Используемые вершины

int m_numVertices;

Vertex *m_pVertices;

 

Сейчас вы можете не обращать на переменную m_boneID внимания - рассмотрим ее в следующих уроках! Массив m_location представляет собой координаты точек (X, Y, Z). Две переменные хранят количество вершин и сами вершины в динамическом массиве, который создается загрузчиком.

Дальше нам надо сгруппировать вершины в треугольники:

// Структура треугольника

struct Triangle

{

       float m_vertexNormals[3][3];

       float m_s[3], m_t[3];

       int m_vertexIndices[3];

};

// Используемые треугольники

int m_numTriangles;

Triangle *m_pTriangles;

 

Теперь 3 вершины составляют треугольник и хранятся в m_vertexIndices. Это смещения в массиве m_pVertices. При этом каждая вершина содержится в списке только один раз, что позволят сократить место в памяти (и в вычислениях, когда мы потом будем рассматривать анимацию). m_s и m_t - это координаты (s, t) в текстуре для каждой из 3-х вершин. Текстура используется только одна для данной сетки (которые будут описаны ниже). Наконец, у нас есть член m_vertexNormals, в котором хранится нормали к каждой из 3-х вершин. Каждая нормаль имеет 3 вещественные координаты, описывающие вектор.

Следующая структура, которую мы рассмотрим в модели, это сетка (mesh). Сетка - это группа треугольников, к которым применен одинаковый материал. Набор сеток составляет целую модель. Вот структура сетки:

// Сетка

struct Mesh

{

       int m_materialIndex;

       int m_numTriangles;

       int *m_pTriangleIndices;

};

// Используемые сетки

int m_numMeshes;

Mesh *m_pMeshes;

 

На этот раз у нас есть m_pTriangleIndices, в котором хранится треугольники в сетке, в точности так же, как треугольники хранят индексы своих вершин. Этот массив будет выделен динамически, потому что количество треугольников в сетке в начала не известно, и определяется из m_num_Triangles. Наконец, m_materialIndex - это индекс материала (текстура и коэффициент освещения) используемый для сетки. я покажу структуру материала ниже:




Содержание  Назад  Вперед