Zeichnen eines Modells aus einer OBJ-DateiC++

Programme in C++. Entwicklerforum
Guest
 Zeichnen eines Modells aus einer OBJ-Datei

Post by Guest »

Ich versuche, einen OBJ-Viewer mit openGl zu schreiben. Dieses Programm muss nur Linien von Modellgesichtern zeichnen, daher muss ich Folgendes laden:
  • Scheitelpunkte: manchmal in 3D und manchmal in 4D;< /li>
    Gesichter: Indexlisten mit zufälligen Längen;
Jetzt lade ich nur noch die OBJ-Datei mit 3 Elemente pro Fläche, sodass ich das Element im GL_TRIANGLE-Modus zeichnen kann, aber ich bekomme einige Probleme mit einigen Modellen:

http://people.sc.fsu.edu/~jburkardt/dat ... hedron.obj

Die Ladephase scheint gut zu funktionieren, ich denke, das Problem liegt in der render()-Funktion:

Code: Select all

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();
}
Ich habe auch einige Fragen:
  • Die Indizes beginnen bei 1 oder 0 ?
  • Was ist mit der Indeces-Aufzählung? Ist es im Uhrzeigersinn?
  • Ist es eine gute Lösung, die Gesichter mit mehr als 3 Indizes zu triangulieren?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post