9 Stimmen

Wie zu aktualisieren opengl modelview Matrix mit meinem eigenen 4x4 Matrix?

Ich habe eine 4x4-Matrix für die Transformationen der Objekte.

float mat44[16];

Aber ich weiß nicht, wie man OpenGL ModelView Matrix mit meiner Matrix zu aktualisieren. sollte ich glTranslatef()/glRotatef() mit relavant Werte aus meiner Matrix verwenden oder sollte ich glLoadMatrix(), glMultMatrix() verwenden? Bitte helfen Sie. Danke!

20voto

Mārtiņš Možeiko Punkte 12597

Wenn Sie Ihre Transformation auf die aktuelle Transformation anwenden wollen, die sich bereits im OpenGL-Matrix-Stapel befindet, sollten Sie schreiben:

glMultMatrixf(mat44);

Aber wenn Sie verwerfen wollen, was derzeit auf OpenGL-Matrix-Stack und verwenden Sie Ihre eigene Transformation, dann sollten Sie schreiben:

glLoadMatrixf(mat44);

2voto

datenwolf Punkte 154484

Für OpenGL-2.1 und früher verwenden Sie glLoadMatrix oder glMultMatrix, je nach Aufgabenstellung.

Für OpenGL-3 und später setzen Sie sie als die richtige Uniform für Ihren Shader mit einem der glUniformMatrix Varianten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X