Kwadryki
Transkrypt
Kwadryki
Laboratorium nr 5 Instrukcja laboratoryjna 5 1) 1/3 Grafika Komputerowa 3D Temat: Kwadryki Przygotował: mgr inż. Maciej Lasota Kwadryki Kwadryką nazywamy zbiór punktów w przestrzeni tworzący określoną powierzchnię. Przykładami kwadryk są między innymi cylindry, dyski, sfery, walce oraz stożki itp. W OpenGL za rysowanie kwadryk odpowiada biblioteka pomocnicza GLU. Każda tworzona w OpenGL kwadryka ma pewien stan. Przed narysowaniem kwadryki musimy za pomocą funkcji gluNewQuadric stworzyć obiekt opisujący aktualny styl rysowania, orientację, tryb oświetlenia, tryb teksturowania oraz funkcję zwrotną. Funkcja ta zwraca wskaźnik na obiekt typu GLUquadricObj. UWAGA!!! Stan kwadryki nie określa kształtu geometrycznego, jaki zostanie utworzony. Opisuje jedynie jak rysować kształt Przykład : GLUquadricObj *obiekt; obiekt = gluNewQuadric(); UWAGA!!! Stworzony obiekt stanu kwadryki można usunąć za pomocą funkcji gluDeleteQuadric. Po stworzeniu obiektu opisującego stan kwadryki, można dostosować lub zmienić określone parametry stanu. Służą do tego specjalne funkcje biblioteki GLU. 1.1) Styl rysowania powierzchni gluQuadricDrawStyle(GLUquadricObj*obiekt, GLenum parametr) Laboratorium nr 5 2/3 Parametry Opis GLU_FILL Tworzone kwadryki będą wypełnione przy użyciu wielokątów i pasków prymitywów GLU_LINE Tworzone kwadryki będą rysowane w postaci siatki, za pomocą odcinków GLU_SILHOUETTE Tworzone kwadryki będą rysowane za pomocą odcinków, widoczne są jedynie zewnętrze krawędzie GLU_POINT Tworzone kwadryki będą rysowane jako zbiór punktów 1.2) Wektory normalne gluQuadricNormals(GLUquadricObj*obiekt, GLenum parametr) 1.3) Parametry Opis GLU_NONE Nie są generowane normalne GLU_FLAT Normalne są generowane dla wielokątów GLU_SMOOTH Normalne są generowane dla wierzchołków Orientacja gluQuadricOrientation(GLUquadricObj*obiekt, GLenum parametr) 1.4) Parametry Opis GLU_OUTSIDE Normalne skierowane są na zewnątrz GLU_INSIDE Normalne skierowane są do wewnątrz Teksturowanie gluQuadricTexture(GLUquadricObj*obiekt, GLenum parametr) Parametry Opis GLU_TRUE Współrzędne tekstury są tworzone GLU_FALSE Współrzędne tekstury nie są tworzone Laboratorium nr 5 2) 3/3 Rysowanie cylindrów Do rysowania cylindrów służy funkcja gluCylinder. Parametry baseRadius i topRadius określają promień cylindra przy dolnej i górnej podstawie. Parametr height określa wysokość (długość) cylindra. Parametry slices i stacks określają, z ilu części oraz z ilu segmentów będzie składał się cylinder. void gluCylinder(GLUquadricObj*obiekt, GLdouble baseRadius, GLdouble topRadius, GLdouble height, GLint slices, GLint stacks) 3) Rysowanie dysków Dyski to okrągłe płaskie kształty, które mogą wewnątrz zawierać otwory. Parametry outRadius i inRadius określają promień całego dysku, oraz zawartego w nim otworu. Parametr slices określa ilość ścianek dysku. Parametr loops określa ilość koncentrycznych okręgów tworzących dysk. void gluDisk(GLUquadricObj*obiekt, GLdouble inRadius, GLdouble outRadius, GLint slices, GLint loops) 4) Rysowanie sfer Do rysowania sfer służy funkcja gluSphere. Parametr radius określa promień sfery. Parametr slices reprezentuje ilość południków, zaś parametr stacks ilość równoleżników. void gluSphere(GLUquadricObj*obiekt, GLdouble radius, GLint slices, GLint stacks)