lekcja2 22HTDD56LHCIZ7PKMDJMZDHXEYLY7NOWBCNOB3Q











OpenGl
Lekcja 1







'); //-->




OpenGl
Lekcja 2

Rysowanie podstawowych figur

 

W tej lekcji zapoznam was z
rysowaniem podstawowych figur tzw. prymitywów. W OpenGl można rysować zarówno punkty,
linie, trójkąty, czworokąty jak i pięciokąty, sześciokąty itd. Jednak ze
względu na to, iż algorytm rysowania trójkąta jest najszybszy, w większości
używa się właśnie tę figurę, co sprawia, że i sama grafika jest szybsza.

Po poznaniu zasady rysowania
prostych prymitywów łatwo będzie zbódować obiekt 3D, gdyż będzie on się składać
z kilku lub kilkunastu prostych figur odpowiednio rozmieszczonych.

Do rysowania prymitywów służy taka
metoda jak glBegin(NAZWAPRYMITYWU)

Przykłady nazw prymitywów:

1.     
GL_TRIANGLES
trójkąt

2.     
GL_QUADS - czworokąt

Czyli aby na przykład rozpocząć
rysowanie czworokąta zaczynamy od glBegin(GL_QUADS)

 

Teraz zaczniemy pisać procedurę rysującą kwadrat:

int
DrawGLScene(GLvoid)                                                                    

{
    
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);   //Na początek czyścimy
ekran
    
glLoadIdentity();                                                                               
// Nasz jakby "kursor"(miejsce
od którego zaczniemy //
rysować cofamy do początku układu współrzędnych
    
glBegin(GL_QUADS);                                                             
// Powiadom
OpenGL, że rysujemy czworokąt

 

Ponieważ kwadrat składa się z czterech wierzchołków właśnie teraz
musimy je podać. Służy do tego metoda glVertex3f(X,Y,Z) , w której X,Y,Z oznaczają kolejne współrzędne wierzchołków
figury. Przy podawaniu punktów należy pamiętać o tym, aby podawać je w
kolejności odwrotnej do kierunku ruchu wskazówek zegara, wtedy bowiem komputer
będzie wiedział że figura ta jest widziana od przodu. W przypadku podanie
punktów z godnie z kierunkiem ruchu wskazówek zegara komputer zinterpretowałby
to, jako że figura jest przez osobę patrzącą w ekran widziana od tyłu.
Współrzędne punktów podajemy w liczbach typu float.

glVertex3f(1.0f, -1.0f,
-4.0f);                                                     
// wierzcołek
(vertex) 1
glVertex3f(-1.0f,-1.0f,
-4.0f);                                                     
// wierzcołek
(vertex) 2
glVertex3f(-1.0f,
1.0f, -4.0f);                                                   
// wierzcołek
(vertex) 3 glVertex3f(1.0f, 1.0f,
-4.0f);                                                   
// wierzcołek
(vertex) 4

 

Aby zakończyć podawanie wierzchołków należy wywołać metodę glEnd().

glEnd();                                                                                            
// Kończymy
malowanie czworokąta,

                                                                                                           .
 return
TRUE;
 }
 
 

Tryby Wielokątów

Można także określać tryb malowania figur. Do tego celu służy
procedura glPolygonMode(Parametr1,
Parametr2).

Pierwszy parametr dotyczy, której strony figury dotyczy zmiana
trybu i tak może on przyjmować wartości:

1.     
GL_FRONT - przednia strona

2.     
GL_BACK
tylna

3.     
GL_FRONT_AND_BACK - tylna i przednia jednocześnie

Drugi parametr określa tryb i może on przybierać następujące
wartości:

1.     
GL_LINE - rysuje tylko linie zewnętrzne

2.     
GL_FILL - rysuje wypełniony wielokąt (tryb konieczny, kiedy chcemy
texturować)

3.     
GL_POINT - rysuje punkty (wierzchołki

 

A oto i przykład: poniższa procedura zmienia tak tryb, że teraz
OpenGl będzie malowaś figury z przodu i tyłu ale tylko kontury:

glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)

 

 

 








Wyszukiwarka