Frage

Ich habe einen Sprit als Textur geladen und ich brauche es zu animieren, so dass es zu „Gesicht“ nach links oder rechts - im Wesentlichen manchmal muß ich „Flip“ es. Ich weiß, dass OpenGL eine glTranslate hat, die ein Objekt neu positioniert, und glRotate, die es sich dreht. Gibt es eine Methode, die einfach klappt es über eine Achse? Wenn nicht, wie würden Sie das erreichen?

War es hilfreich?

Lösung

Ich habe nicht mit Punkt Sprites messed herum, aber ich glaube, dass sie Texturen sind. Texturen Textur Matrizen, was bedeutet, können Sie glTranslatef(), glScalef() und glRotatef() auf sie verwenden.

Ich würde etwas entlang der Linien von glScalef(-1,1,1); auszuprobieren, die die Texturkoordinaten durch die X-Achse drehen würde.

Wie gesagt, ich habe nicht mit Punkt Sprites gespielt, aber ich habe nicht mit Zohan an Textur Matrizen entweder. Sie scheinen sehr nützlich, aber.

Update: Ich habe mit Textur Matrizen in der Zwischenzeit gespielt. Auf die gleiche Art und Weise, die Sie zwischen Model-View und Projektionsmatrizen wechseln, können Sie auf die Texturmatrix wechseln; etwa:. glMatrixMode(GL_TEXTURE); nach dem Sie die oben genannten Operationen ausführen

Sie können auch malen nur ein Quad / zwei Dreiecken und mit ihm getan werden:)

Andere Tipps

Sie können dies nicht mit OpenGL Punkt-Sprites; obwohl Sie das Zentrum des Sprites können sich frei bewegen, ist die Form der es immer die gleiche Art und Weise ausgerichtet sind.

Was Sie können zu tun ist Ihre Sprites als Quads zeichnen, was können Sie drehen, spiegeln und Chaos mit ihnen, wie Sie wollen. Es gibt Anleitungen zum manuellen Zeichnen von Sprites (auch bekannt als Plakatwand) auf NeHe

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