Ошибки при загрузке файла obj с помощью c++ и opengl.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Ошибки при загрузке файла obj с помощью c++ и opengl.

Сообщение Anonymous »

Я написал загрузчик obj и получил следующее:
Изображение


Это желтый орел, но, как вы видите, у него есть дополнительные треугольники, идущие от ноги к крылу. Код, который я использовал:

Код: Выделить всё

{....
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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»