
Это желтый орел, но, как вы видите, у него есть дополнительные треугольники, идущие от ноги к крылу. Код, который я использовал:
Код: Выделить всё
{....
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glBufferData(GL_ARRAY_BUFFER,sizeof(data),data,GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ibo);
glBufferData(GL_ELEMENT_ARRAY_BUFFER,numOfIndices*sizeof(GLuint),indices,GL_STATIC_DRAW);
}
void Mesh::draw( )
{
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER,vbo);
glVertexAttribPointer(
0, // attribute 0. No particular reason for 0, but must match the layout in the shader.
3, // size
GL_FLOAT, // type
GL_FALSE, // normalized?
0, // stride
(void*)0 // array buffer offset
);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER,ibo);
glDrawElements(GL_TRIANGLES,numOfIndices,GL_UNSIGNED_INT,(void*)0 );
glDisableVertexAttribArray(0);
}
Когда я беру и сохраняю данные и индексы в формате obj и открываю полученный файл в 3D-редакторе, орел выглядит нормально и не имеет этих дополнительных треугольников (это означает, что оба данных и индексы в порядке).
Я потратил часы, пытаясь исправить код и сделать орла нормальным, но теперь у меня закончились идеи. Поэтому, пожалуйста, если у вас есть идеи, как сделать орла нормальным, поделитесь ими со мной.
Для тех, кто думает, что проблема в загрузчике, вот скрин созданной obj-модели. закончились данные из загрузчика (из данных[] и индексов[])

Подробнее здесь: https://stackoverflow.com/questions/365 ... and-opengl
Мобильная версия