OpenGL - Sierpinski Tetraeder - Verdeckung nicht korrekt
-
Hallo zusammen,
ich kann mir absolut nicht erklären warum ich folgendes Bild erhalte.
http://pixload.org/?v=unbenahnh.pngDie Statemachine sieht so aus:
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); gl.glFrontFace(GL10.GL_CCW); gl.glEnable(GL10.GL_CULL_FACE); gl.glCullFace(GL10.GL_BACK); gl.glEnable(GL10.GL_DEPTH_TEST); gl.glEnableClientState(GL10.GL_COLOR_ARRAY); gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
Die Indizes werden gegen den Uhrzeigersinn in die Indexliste eingetragen und dann so gezeichnet:
gl.glColorPointer(4, GL10.GL_FLOAT, 0, m_color_buffer); gl.glVertexPointer(3, GL10.GL_FLOAT, 0, m_float_buffer); gl.glDrawElements(GL10.GL_TRIANGLES, 12, GL10.GL_UNSIGNED_SHORT, m_index_buffer)
Der Hintere Tetraeder müßte eigtl. vorne erscheinen.
Was kann das für Ursachen haben?Braucht ihr noch mehr Daten?
-
Hat dein Fenster überhaupt einen Depth Buffer?
-
Hallo,
Was meinst Du mit "ob das Fenster einen depth-buffer hat"?
Ich dachte, dass der z-Buffer durch
gl.glEnable(GL10.GL_DEPTH_TEST);
aktiviert wird.
Mittlerweile wird die Verdeckung richtig berechnet. Ich hatte am Ende eines jeden "DrawFrame()" ein
gl.glDisable(GL10.GL_DEPTH_TEST)
.
Wenn ich das auskommentiere gehts. Ich verstehe aber nicht wieso, denn ich hatte es vor jedem Rendern auch wieder eingeschaltet.
Hat jemand ne Idee?