Macierz przekszta³cenia
Transkrypt
Macierz przekszta³cenia
Ćwiczenia bazować będą na pojęciach: 1) baza przestrzeni, baza ortonormalna, zmiana bazy, macierz przekształcenia z bazy do bazy 2) operacje na bazie: translacja, rotacja, skalowanie; problem przemienności tych operacji 3) kolor RGB, RGBA 4) rysowanie prymitywów: punkty, trójkąty, czworokąty 5) normalna (wektor normalny) do powierzchni, oświetlenie rozproszone Instrukcje OpenGL: ad.1) glLoadIdentity() – wstawienie macierzy identycznościowej do macierzy przekształcenia glPushMatrix() – odłożenie aktualnej macierzy przekształcenia na stos glPopMatrix() – zdjęcie macierzy ze stosu i wpisanie jej w macierz przekształcenia ad.2) glTranslatef(x,y,z) – translacja o wektor [x,y,z] glRotatef(a,x,y,z) – rotacja o kąt a wokół wektora [x,y,z] glScalef(x,y,z) – skalowanie ad.3) glColor3f(r,g,b) – ustawienie rejestru koloru OpenGL na kolor o danych składowych red, green, blue z zakresu 1-0 ad.4) glBegin(argument) – początek bloku z danymi wierzchołków, argument może przybrać wartości: GL_POINTS – rysowanie punktów GL_LINES – rysowanie linii GL_LINE_STRIP – rysowanie prostej łamanej GL_LINE_LOOP – rysowanie prostej łamanej zamkniętej GL_TRIANGLES – rysowanie trójkątów GL_TRIANGLE_STRIP – rysowanie pasków trójkątów GL_TRIANGLE_FAN – rysowanie wachlarza trójkątów GL_QUADS – rysowanie czworokątów GL_QUAD_STRIP – rysowanie pasków czworokątów glEnd() – koniec bloku z danymi wierzchołków glVertex3f(x,y,z) – dane o położeniu wierzchołka w x,y,z glVertex2f(x,y) – dane o położeniu wierzchołka przy z=0 ad.5) glNormal3f(x,y,z) – ustawienie normalnej glEnable(GL_LIGHTING) – włączenie oświetlenia glEnable(GL_LIGHT0) – włączenie pierwszego światła Literatura: http://nehe.gamedev.net/ http://www.eecs.tulane.edu/www/Terry/OpenGL/ http://www.opengl.org/ http://www.libsdl.org/index.php http://www.bloodshed.net/devcpp.html Richard S. Wright jr, Michael Sweet: OpenGL. Księga eksperta. Wydawnictwo Helion Kevin Hawkins, Dave Astle: OpenGL. Programowanie gier. Wydawnictwo Helion