Последние пару недель я бился головой об клавиатуру. Я пытаюсь загрузить массив с плавающей точкой (GLfloat) и массив шорт без знака (GLushort) из текстового файла в эквивалентные массивы в target-c, чтобы я мог визуализировать содержащиеся объекты. Я загрузил свои массивы в векторные объекты как
vector<float> vertices;
и
vector<GLushort> indices;
Но по какой-то причине я не могу понять, почему я не могу заставить их рендериться. Вот мой код для рендеринга выше:
glVertexPointer(3, GL_FLOAT, sizeof(vertices[0])*6, &vertices[0]);
glNormalPoitner(GL_FLOAT, sizeof(vertices[0])*6, &vertices[3]);
glDrawElements(GL_TRIANGLES, sizeof(indices)/sizeof(indices[0]), GL_UNSIGNED_SHORT, indices);
Примеры массивов ниже:
vertices: (Vx, Vy, Vz, Nx, Ny, Nz)
{10, 10, 0, 0, 0, 1,
-10, 10, 0, 0, 0, 1,
-10, -10, 0, 0, 0, 1,
10, -10, 0, 0, 0, 1};
indices: (v1, v2, v3)
{0, 1, 2,
0, 2, 3};
Текстовый файл, из которого я хочу загрузить эти массивы для рендеринга, выглядит следующим образом:
4 //Number of Vertices
###Vertices###
v 10 10 0 0 0 1
v -10 10 0 0 0 1
v -10 -10 0 0 0 1
v 10 -10 0 0 0 1
###Object1###
2 //Number of faces
f 0 1 2
f 3 4 5
Являются ли векторные объекты лучшим подходом? Если нет, то что? И что я делаю неправильно, что они не будут оказывать? Спасибо.