Stap 2: Matrices en vectoren
Wat is een matrix? Hebt u nodig om iets in je scène te veranderen? bijvoorbeeld, moet u vooruit uw karakter, matrices. Het is een raster van nummers die kan worden gebruikt om te slaan of het definiëren van de staat van onze 3D-wereld. Er zijn twee belangrijkste matrices in OpenGL, Model weergave matrix (GL_MODELVIEW) en de projectie matrix (GL_PROJECTION).
Een typische matrix-
| 1 2 4 |
| 2 4 6 |
| 8 9 4 |
Dit is een 3 x 3 matrix.
Meer informatie -http://www.mathsisfun.com/algebra/matrix-introduct...
Wat is een Vector? vectoren worden gebruikt om punten in de 3D- of 2D-ruimte te vertegenwoordigen.
Vector in 2d ruimte (x, y) coördinaten-(2, 3)
Vector in 3D-ruimte (x, y, z) coördinaten-(2, 3, 4)
Meer informatie -https://www.mathsisfun.com/algebra/vectors.html
Dus wat hebben we nodig matrices en vectoren voor?
Lang verhaal kort, wanneer wij nodig om objecten te verplaatsen in de 3D/2D-ruimte, wij doen dat met de hulp van vectoren en matrices. Alle handelingen zoals het verplaatsen van uw teken in Super Mario of bel van plicht etc. klaar bent met deze twee.
Hieronder zijn enkele van de functies aka matrices in OpenGL voor fundamentele transformaties
1) vertaling (verplaatsen)- glTranslatef (X, Y, Z);
2) schaal (de grootte wijzigen)- glScalef (X, Y, Z); schaling in verschillende assen of alle van de assen
3) rotatie -
X Axes- glRotatef (, 1, 0, 0);
Y assen - glRotatef (, 0, 1, 0);
Z assen - glRotatef (, 0, 0, 1);
alleen de parameter wordt gewijzigd, de locatie van de 1 bepaalt welke coördinaat is te blijven ongewijzigd, thats wanneer roteren rond de Y-as, er is geen behoefte om te wijzigen van de Y-coördinaat, omdat tijdens de eigenlijke rotatie, we geen verandering in de Y-as doen.
Nu deze functies repersent matrices. De volgorde waarin we deze matrices zaken gebruiken, rotatie voor de vertaling is niet hetzelfde als vertaling voordat rotatie.
Twee meer belangrijkste matrices die u weten moet over in OpenGL-
1) Model weergave matrix: Alles wat die je met uw objecten in uw huidige scène doet opgeslagen in de model-view-matrix. U kunt denken aan het als een chef matrix waarnaar andere matrices (zoals glRotatef, glTranslatef) worden vermenigvuldigd, wijzigen van de scène. Dat is recht, een matrix te sluiten ze allemaal, of meer in het bijzonder de huidige scène.
2) projectie matrix: deze matrix zal omgaan met de weergave van onze scène dat wil zeggen of de scène in prespective of orthogonale weergave en setup de viewport.
Een viewport is in feite een gebied in uw toepassing waarnaar je scène zal worden gemaakt aan.