Nybörjarguide till OpenGL: Bygg din egen CAD-program (2 / 14 steg)
Steg 2: Matriser och vektorer
Vad är en matris? Behöver du ändra något i din scen? till exempel, måste du flytta din karaktär, matriser. Det finns ett rutnät av siffror som kan användas för att lagra eller definiera tillståndet i våra 3D-världen. Det finns två huvudsakliga matriser i OpenGL, modell Visa matris (GL_MODELVIEW) och projektion matrisen (GL_PROJECTION).
En typisk matris-
| 1 2 4 |
| 2 4 6 |
| 8 9 4 |
Detta är en 3 x 3-matris.
Mer information -http://www.mathsisfun.com/algebra/matrix-introduct...
Vad är en vektor? vektorer används för att representera punkter i 3D- eller 2D utrymme.
Vektor i 2d utrymme (x, y) koordinater-(2, 3)
Vektor i 3d space (x, y, z) koordinater-(2, 3, 4)
Mer information -https://www.mathsisfun.com/algebra/vectors.html
Så vad behöver vi matriser och vektorer för?
Lång historia kort, när vi behöver flytta objekt i 3D/2D utrymme, vi gör det med hjälp av vektorer och matriser. Alla operationer som att flytta din karaktär i Super Mario eller kalla av plikt etc. görs med dessa två.
Nedan listas några av de funktioner aka matriser i OpenGL för grundläggande omvandlingar
1) översättning (flytta)- glTranslatef (X, Y, Z);
2) skala (ändra storlek)- glScalef (X, Y, Z); avlagringar i olika axlar eller alla axlar
3) rotation -
X Axes- glRotatef (, 1, 0, 0);
Y-axlarna - glRotatef (, 0, 1, 0);
Z-axlarna - glRotatef (, 0, 0, 1);
endast parametern ändras, platsen för 1 avgör vilka koordinaten är lämnas oförändrade, d.v.s. När roterar kring Y-axeln, det finns ingen anledning att ändra Y-koordinaten eftersom under faktiska rotationen, vi gör någon förändring i Y-axeln.
Nu dessa funktioner repersent matriser. Den ordning i vilken vi använder dessa matriser frågor, rotation innan översättningen är inte samma som översättning innan rotation.
Två mer huvudsakliga matriser som du behöver veta om i OpenGL-
1) Modell Visa matris: Allt du gör med ditt objekt i din nuvarande scen lagras i modellen Visa matrisen. Du kan se det som en chef matris som andra matriser (som glRotatef, glTranslatef) multipliceras till, för att ändra scenen. Det är rätt, en matris dem eller närmare bestämt den aktuella scenen.
2) projektion matris: matrisen kommer att hantera syn på vår scen dvs om scenen i prespective eller i ortogonala och setup visningsområdet.
En vyport är i grunden ett område i ditt program som din scen återges till.