Im пытается создать парсер OBJ, который читает файл и отправляет вершины в opengl. Я использую glDrawElements для рисования модели, но похоже, что она не состоит из треугольников. Вы можете посмотреть ниже для моего кода, как я это делаю. Фрагмент кода - всего лишь образец. Пожалуйста, обратите внимание, что количество индексов отличается от модели, которую я загружаю.opengl - glDrawElements не рисовать треугольники
GLuint vbuffer;
glGenBuffers(1, &vbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vbuffer);
glBufferData(GL_ARRAY_BUFFER, 9 * sizeof(GLfloat), vertices, GL_STATIC_DRAW);
glEnableVertexAttribArray(ff);
glVertexAttribPointer(ff, 3, GL_FLOAT, GL_FALSE, 0, 0);
glBindBuffer(GL_ARRAY_BUFFER, cbid);
GLuint buffer;
glGenBuffers(1, &buffer);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, 6 * sizeof(GLshort), indices, GL_STATIC_DRAW);
glDrawElements(GL_LINE_STRIP, 6, GL_UNSIGNED_SHORT, 0);
glDisableVertexAttribArray(0);
Вот результат, который я получаю. Image Link
Благодарим за отзыв. Предполагалось, что это Глюшорт. Что касается примитивного типа, который будет использоваться, мне было интересно, как я могу получить вывод той же модели при использовании line_strip? Я просто хочу проверить правильность рендеринга вершин, поскольку при использовании GL_TRIANGLES я могу получить правильный результат с этой моделью. – zyneragetro
Причина, по которой вы не получаете тот же результат, состоит в том, что последняя вершина из одного треугольника соединяется с первым в следующем. –
Но как передать вершины? Есть ли стандартный способ сделать это? Нужно ли мне переупорядочивать все из них, включая индексы? Я сейчас слишком запутан, и я новичок в opengl. Надеюсь, ты поможешь мне в этом. – zyneragetro