
Es ist ein gelber Adler, aber wie Sie sehen, hat er einige zusätzliche Dreiecke, die von seinem Bein bis zu seinen Flügeln reichen. Der Code, den ich verwendet habe:
Code: Select all
{....
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);
}
Wenn ich Daten und Indizes im OBJ-Format nehme und speichere und die resultierende Datei im 3D-Editor öffne, sieht Eagle gut aus und hat diese zusätzlichen Dreiecke nicht (das bedeutet, dass beide Daten und Indizes sind in Ordnung).
Ich habe Stunden damit verbracht, Code zu reparieren und Eagle normal aussehen zu lassen, aber jetzt gehen mir die Ideen aus. Wenn Sie also Ideen haben, wie man Eagle normal machen kann, teilen Sie sie mir bitte mit.
Für diejenigen, die denken, dass das Problem im Loader liegt, ist hier ein Bildschirm des erstellten Obj-Modells Keine Daten vom Loader (aus Daten[] und Indizes[])
