Java Android - OpenGl ES - Objekte sind durchsichtig

JetStre4m

Lieutenant
Registriert
Nov. 2007
Beiträge
578
Hallo zusammen, ich versuche mich gerade in der 3D-Programmierung für Android.

Dazu habe ich ein kleines Programm geschrieben, welches ein 3D-Model lädt und anzeigt - in meinem Fall ein primitives Motorrad :)

Das ganze lässt sich auch wunderbar ausführen, das Model wird angezeigt - aber der "Körper" des Motorrades ist "durchsichtig" - wenn man von oben auf das Objekt blickt, sieht man das Hinterrad, obwohl es eigentlich unter dem "Körper" ist und somit verdeckt werden müsste.

ich initialisiere OpenGl mit folgendem Code:
Code:
gl.glEnable(GL10.GL_CULL_FACE);
gl.glFrontFace(GL10.GL_CCW);
gl.glCullFace(GL10.GL_BACK);
gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL10.GL_COLOR_ARRAY);

Das Zeichnen selbst wird mit diesem Code durchgeführt:
Code:
gl.glClearColor(1f,1f,1f,1f);
gl.glLoadIdentity();
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

gl.glRotatef(xAngle, 1.0f, 0.0f, 0.0f);	//X
gl.glRotatef(yAngle, 0.0f, 1.0f, 0.0f);	//Y
gl.glRotatef(zAngle, 0.0f, 0.0f, 1.0f);	//Z
gl.glVertexPointer(3, GL10.GL_FLOAT, 0, _vertexBuffer);
gl.glColorPointer(4, GL10.GL_FLOAT, 0, _colorBuffer);
gl.glDrawElements(GL10.GL_TRIANGLES, _nrOfFaces*3, GL10.GL_UNSIGNED_SHORT, _indexBuffer);

So sieht das Bild von der Seite betrachtet aus:


...Und so schaut das Ganze von Vorne/Oben aus, wobei das schwarze Teil das Hinterrad ist, welches komplett verdeckt werden müsste:


Was mache ich hier falsch?

mfg,
JetStre4m
 
Zuletzt bearbeitet:
Für mich sieht das nach einem Blick von hinten/unten aus. Einfach nur genau falsch herum gedreht? :D
 
ich kenn mich zwar mit der programmierung von open gl nich aus, aber das sieht aus als wenn das rad ne andere priorität (weiß nich wie ichs ausdrücken soll) durch die schwarze farbe hat. bei der seitenansicht sind die speichen ja auch über die achse gelegt. gib den andern teilen doch auch mal ne "richtige" farbe
 
wie du schon sagst das motorad an sich ist durchsichtig und deshalb kannst du durch das objekt auf den reifen schauen.
 
@FreeX: Das ist das Problem... Aber was ist die Lösung? Wie krieg ich das ganze "deckend" hin? :)

Wenn die anderen Teile auch schwarz sind, lässt sich nicht mehr erkennen ob das Problem gelöst ist, oder nicht.
Ich versuche einfach mal, richtige Texturen draufzukriegen. Vielleicht löst sich das Problem dann von selbst...
 
Liegt evtl. daran dass das Hinterrad im Z-Buffer einen höheren Wert hat als der Body. Wird das Rad in deiner Renderingpipe vor oder nach dem Body gerendert?
 
Das weiß ich nicht genau, das Model wird aus einem .off-File geladen, das ich vorher in Blender erstellt hab. Ich komme mit den Koordinaten und dem Rendern seber quasi garnicht in Berührung, das macht mein Model-Loader für mich :).
 

Ähnliche Themen

Zurück
Oben