2012-02-01 14 views
8

Mam macierz 4x4 dla transformacji obiektu.Jak zaktualizować macierz modelu OpenGL za pomocą własnej macierzy 4x4?

float mat44[16]; 

Ale nie wiem jak zaktualizować macierz OpenGL ModelView za pomocą mojej macierzy. czy powinienem użyć glTranslatef()/glRotatef() z odpowiednimi wartościami z mojej macierzy, czy też powinienem użyć glLoadMatrix(), glMultMatrix()? Pls pomóż. Dzięki.

+0

Jakiej wersji OpenGL używasz? –

Odpowiedz

20

Jeśli chcesz zastosować transformację do aktualnej transformacji już w OpenGL macierzy stosie, to należy napisać:

glMultMatrixf(mat44); 

Ale jeśli chcesz, aby odrzucić to, co jest obecnie na szczycie OpenGL macierzy stosu i używać własnego transformacja, to należy napisać:

glLoadMatrixf(mat44); 
2

Dla OpenGL 2.1 i wcześniej użyć glLoadMatrix lub glMultMatrix, w zależności od zadania.

Dla OpenGL-3 i późniejszych ustaw je jako prawy uniform dla modułu cieniującego, korzystając z jednego z wariantów glUniformMatrix.

Powiązane problemy