Ein Frage zu Index Buffer + UVs bei OpenGL



  • Ich arbeite jetzt seit einer Woche mit OpenGL und habe da mal eine Frage. Durch das Zeichnen über einen Index-Buffer kann ich ja Vertexe und Normals mehrfach nutzen, aber wie sieht es aus wenn ich jetzt noch UVs, also Textur-Koordinaten, dazu nehme, da gibt es ja mehr als ein Paar UV für jeden Vertex, je nachdem welche Fläche nun gerendert wird. Ich hätte also hier eine andere Index-Liste als für die Vertexe und die Normalen.

    Bei einem Cube habe ich z.B. 8 Vertexte/Normals/Colors etc. aber je nachdem wie ich die Texturemap gestalte 12 oder 14 UV-Punkte. Mir ist nicht ganz klar wie dann hier OpenGL klar kommt.

    Sorry für meine ungenaue und unvollständige Beschreibung und Terminus, aber ich hoffe der ein oder andere kommt damit klar und kann meinen Knoten im Kopf lösen.



  • OpenGL muss damit nicht klarkommen! Aber dein Shader muss es. Jetzt versuch mal einen Shader zu schreiben, der das was du vorhast machen kann.
    Und, fällt dir was auf 😉

    floorball



  • Ich bin mir nicht sicher, aber ich glaube es geht nur wenn wirklich jedes Vertex auch eine UV-Koordinate hat, aber woher soll der Shader wissen welche UV zu welchem Vertex gehört im Falle von IndexBuffer? Ich glaube das Vertexarray und UV-Array sollte schon dieselbe Mächtigkeit haben, um mal ein Mengenlehre zu sprechen, also die gleiche Anzahl Tupel haben.

    Ich denke daher, man kann nur mit dem Index-Buffer nur arbeiten, wenn es wirklich für jedes Vertex auch nur eine UV-Koordinate gibt.

    Ich bitte um Aufklärung, ich bin mir meiner Logik nicht mehr sicher^^



  • Ich glaube ich habe es, da in einem Vertex-Shader ja Berechnungen pro Vertex erledigt werden können und zu einem Vertex neben den reinen XYZ-Koordinaten auch die UV-Koordinaten gehören, handelt es sich um unterschiedliche Vertexe auch wenn ihre XYZ-Koordinaten gleich sind.

    Ich kann also nur mit Index-Buffer arbeiten, wenn wirklich alle Daten(XYZ, UV, Color, Normals etc.) gleich sind.


Anmelden zum Antworten