[Gelöst][OpenGL] Wie funktioniert DrawElements?



  • Hi,
    ich versuche gerade mit WebGL eine Fläche mit einer Textur darzustellen. Leider ohne Erfolg.
    Ich habe 2/3 Buffer. Ein Vertexbuffer, ein UV Koordinatenbuffer und gegebenenfalls ein Indexbuffer. Wenn ich die DrawElements Funktion benutze wird das Model richtig angezeigt aber die Textur ist vollkommen falsch auf dem Model. Wenn ich anstatt DrawElements die Funktion DrawArrays benutze und den Buffer mit allen Vertices richtig befülle schaut alles so aus wie gewollt. Für beide Funktionen benutz ich die gleichen UV Koordinaten in der gleichen Reihenfolge. Ich habe auch die Indizien für den Elementbuffer überprüft, aber die waren auch in der richtigen Reihenfolge.
    Meine Frage ist deshalb, sind die Indizien im Elementbuffer für alle Buffer gültig oder woher weiß DrawElements welcher Buffer mit den Indexbuffer benutz werden soll?



  • 7by schrieb:

    Hi,
    Meine Frage ist deshalb, sind die Indizien im Elementbuffer für alle Buffer gültig oder woher weiß DrawElements welcher Buffer mit den Indexbuffer benutz werden soll?

    Die Indizien des Elementbuffers sind für alle Buffer gültig. Soll heißen: steht im Indexbuffer eine 0, so wird das erste Element des Vertexbuffers und des Buffers, der die UV Koordinaten enthält an den Shader übergeben.

    Am besten zeigst du mal Code, ohne den kann man sonst nur spekulieren, denn irgendwie ist bei allen (mir inklusive) immer die allwissende Glaskugel kaputt 😉 😉



  • Hi,
    wenn OpenGL den Indexbuffer für alle Buffer benutzt weiß ich wo das Problem liegt. Ich bin halt davon ausgegangen das DrawElements nur für ein bestimmten Buffer benutzt wird.
    Danke für die Hilfe 👍 .


Anmelden zum Antworten