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
Ja, ich habe :) Die Bilder, die Sie betrachten, sind tatsächlich vertikal umgedreht. Weißt du, was die Texturkoordinatenflächen sind? – tyuip
@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
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