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