Я пытаюсь написать obj viewer с openGl. Эта программа должна рисовать только линии линий модели, поэтому мне нужно загрузить:Рисование модели из файла obj
- вершины: иногда в 3D, а иногда и в 4D;
- лица: индексные списки со случайными длинами;
Теперь я загрузить только OBJ файл, с 3 элемента в лицо, так что я могу сделать элемент в режиме GL_TRIANGLE, но я получаю Somes проблемы с некоторыми моделями:
http://people.sc.fsu.edu/~jburkardt/data/obj/icosahedron.obj
в фаза загрузки кажется работает хорошо, я думаю, что проблема в функции визуализации():
static void render(void)
{
glClearColor(0.0f, 0.0f, 0.0, 0.0f);
glClear(GL_COLOR_BUFFER_BIT);
glBindBuffer(GL_ARRAY_BUFFER, g_resources.vertex_buffer);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(
3, /* size */
GL_FLOAT, /* type */
3*sizeof(GLfloat), /* stride */
(void*)0 /* array buffer offset */
);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, g_resources.element_buffer);
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glDrawElements(
GL_TRIANGLES, /* mode */
theModel->face.size(), /* count */
GL_UNSIGNED_INT, /* type */
(void*)0 /* element array buffer offset */
);
glDisableClientState(GL_VERTEX_ARRAY);
glutSwapBuffers();
}
Я также некоторые вопросы:
- Осечки начинаются с 1 или 0?
- Что такое перечисление индексов? Это по часовой стрелке?
- Является ли это хорошим решением для триангуляции лиц с более чем 3-мя галочками?
+1 Короткие, но сладкие. :) – Bart