Frage

Wort auf der Straße ist, dass glDrawElements ist viel schneller als glDrawArrays.

So will ich alles mit glDrawElements anzuzeigen. Das Problem, das ich habe ist, dass ich ein paar Bilder habe ich auf den Bildschirm, um Pop mag. Jedes Bild ist in einer anderen Textur.

Ist es möglich, glDrawElements zu verwenden, um dies zu tun?

Wie kann ich die Textur wechseln

War es hilfreich?

Lösung

Vertex Indizierung (das heißt glDrawElements) kann erheblich die Größe Ihrer Eckpunktpufferspeicher reduzieren, wenn Sie oft Ecken haben, die zwischen mehreren Grundelementen gemeinsam genutzt werden.

Zum Beispiel, wenn Sie ein Gitter mit GL_TRIANGLES sind zeichnen, würden Sie auf jeden Fall die Indizierung verwenden möchten. Wenn Sie einfach eine Reihe von disjunkten Dreiecke zeichnen, es gibt nicht viel Grund Indizierung zu verwenden.

Unabhängig davon, ob Sie glDrawElements oder glDrawArrays, es ist immer wünschenswert, die Anzahl von Zeichenaufrufen zu minimieren. eine Texturatlas ermöglicht es Ihnen, mehrere Zeichenaufrufen zu kombinieren, die sonst mit Anrufen getrennt werden würde glBindTexture.

Andere Tipps

Sie können nicht direkt.

Was Sie tun können, ist ein machen Texturatlas , um eine große Textur machen alle Ihre kleinen Texturen enthält, und dann passen Sie Ihre Texturkoordinaten entsprechend.

Auch wo haben Sie von dem Vergleich zwischen glDrawArrays und glDrawElements? Ich habe noch nie ein überzeugendes, alle-Fälle Inklusions Vergleich.

gesehen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top