2010-12-01 7 views
0

Ich arbeite mit OpenGL ES 2 auf iphone und gerade jetzt versuche ich meine Texturen arbeiten auf meine Objekte zu bekommen. Ich verwende .obj-Dateien und alle darin enthaltenen Daten sind korrekt. Ich habe einen Parser selbst geschrieben, um alle Daten zu erhalten, ich wandle ihn in statische Arrays in C. Ich verwerfe die Materialeigenschaften für den Moment und erhalte nur den Bildpfad von den .mtl-Dateien manuell.Texturen in OpenGL ES 2 funktioniert nicht richtig

Ich habe ein Objekt mit 336 Dreiecken, so dass dies nicht trivial zu beobachten ist, mit zugehörigen Eckpunkten, Eckflächen und Texturkoordinaten (u, v).

Passing alle Daten in den Shadern, ist das resultierende Bild dazu:

http://img530.imageshack.us/img530/9637/pic1io.png

http://img404.imageshack.us/img404/7358/pic2pg.png

Aber es sollte so aussehen (es in einem Objekt-Viewer angezeigt). Bitte ignorieren Sie die Materialeigenschaften.

http://img16.imageshack.us/img16/1401/pic3cq.png

Mit diesem Bild als Textur:

http://img217.imageshack.us/img217/1300/shirtdiffuse.png

Ich denke, es könnte mit Textur zu tun haben Gesichter koordinieren? Es ist in meiner .obj-Datei definiert, und ich verwende sie überhaupt nicht. In Büchern und Tutorials habe ich dazu nichts gefunden.

Grüße Niclas

Antwort

0

Haben Sie versucht, sich vertikal um die Textur zu drehen? Manchmal, wenn eine Textur geladen wurde, ist sie im Speicher angeordnet, so dass die vertikalen Linien in die entgegengesetzte Richtung kommen, wie es in den Texkoorden beabsichtigt ist.

+0

Ja, ich habe :) Die Bilder, die Sie betrachten, sind tatsächlich vertikal umgedreht. Weißt du, was die Texturkoordinatenflächen sind? – tyuip

+0

@Adl macht die Textur "bewegen", wenn Sie das Modell drehen? Ich bin kein Shader-Experte, aber wenn das passiert, würde ich mir vorstellen, dass es einen Bug in Ihrem Texcoord-Shader gibt. – epatel

+0

Das Problem ist, dass ich verschiedene Indizes habe, abhängig davon, welche Attribute ich verwende. Vertices, Normals und TextureCoordinates haben alle unterschiedliche Indizes. Ich weiß nicht, wie man Vertices mit ihren entsprechenden Indizes zeichnet, wenn ich auch TextureCoords mit ihren Indizes zeichnen soll. – tyuip