OpenGL - desena obiecte simple

3.1 Generalități

Puncte, linii, triunghiuri, dreptunghiuri, poligoane - obiecte simple care alcătuiesc orice formă complexă. În capitolul precedent am tras o sferă, con și tor. OpenGL nu suportă direct funcții pentru a genera astfel de obiecte complexe, adică aceste funcții nu opengl32.dll. Aceste funcții sunt în bibliotecă utilități glu32.dll, iar acestea sunt aranjate după cum urmează. Pentru a desena o funcție sferă auxSolidSphere glu32.dll folosește funcțiile din bibliotecă, și ei la rândul lor, folosesc biblioteca de bază și opengl32.dll de linii sau poligoane sectorul construcțiilor. Primitive sunt create după cum urmează:







Mai întâi spune că va atrage - glBegin cu parametrul corespunzător. Valorile posibile Mod sunt enumerate în tabelul de mai jos. Apoi specificați nodurile care definesc obiectele de tipul specificat. De obicei, veți întreba unul dintre primele patru moduri.

În cele din urmă, te sun glEnd, pentru a indica faptul că ați terminat de desen obiectele de tipul specificat în glBegin. În continuare, vom analiza în detaliu crearea tuturor entităților.

Fiecare apel specifică glVertex singur punct.

Fiecare pereche de vârfuri ale unui anumit segment.

linie întreruptă este desenată, iar ultimul său punct este conectat la primul.

Fiecare trei apel glVertex definesc un triunghi.

triunghiuri desenate cu partea comună.

La fel, dar sunt conectate la partea de sus, este puțin probabil veți avea nevoie de o regulă diferită.

Fiecare apel patru glVertex definesc un patrulater.

Careu cu o latură comună.

Puteți desena cât mai multe puncte ca ai nevoie. Cauzarea glVertex3d, va stabili un nou punct. Când creați un punct, puteți modifica următorii parametri. Puteți apela glColor3d în termen de glBegin / glEnd. Mărimea punctului poate fi setat cu ajutorul funcției:

Modul de netezire poate fi setat prin apelarea funcției

Apelul este întrerupt, respectiv glDisable () c această opțiune. Ultima funcție - glPointSize și glEnable / glDisable trebuie să cheme glBegin / glEnd, în caz contrar ele vor fi ignorate. glEnable / caracteristici glDisable includ on / off o mulțime de opțiuni, dar ar trebui să fie conștienți de faptul că unele opțiuni implică calcule mari și, prin urmare, inhibă corect cererea dvs., astfel încât nu este nevoie de nu este necesar să le includă. Evident, că nu au decât să includă iluminat, texturare și culori de netezire în timp ce desenați puncte. În timp ce sunt cu aceste caracteristici OpenGL nu este îndeplinită, așa că amintiți-vă acest lucru pentru viitor.







Pentru linii, puteți modifica, de asemenea, lățimea, culoarea, dimensiunea, anti-aliasing. Dacă setați culori diferite pentru începutul și sfârșitul liniei, culoarea sa este irizate. implicit OpenGL face interpolare. Puteți desena, de asemenea, o linie punctată, acest lucru se face prin aplicarea masca folosind următoarele funcții:

Al doilea parametru specifică masca în sine. De exemplu, în cazul în care valoarea este de 255 (0x00FF), apoi setați o mască pentru a calcula utilizarea calculatorului. În acest număr binar arata ca acest lucru: 0000000011111111, și anume un total de 16 biți. Senior opt sunt setate la zero, atunci nu va fi nici o linie. Setul mai mic la unul, atunci va fi tras linia. Primul parametru specifică numărul de ori se repetă fiecare bit. De exemplu, în cazul în care este setat la 2, apoi de a impune o masca va arata astfel:

3.4 Triunghiuri

3.5 dreptunghiuri si poligoane

Patrulatere trase prin apelarea glBegin GL_QUADS parametru funcție sau GL_QUAD_STRIP. Pentru primul caz la fiecare patru noduri definesc un dreptunghi. În al doilea caz tras patrulater asociat. Primul, al doilea, al treilea și al patrulea vertex determinarea unui prim dreptunghi. Al treilea, al patrulea, al cincilea și al șaselea vârf - al doilea patrulater etc. (2n-1), 2n, (2n + 1) și (2n + 2) definesc nodurile patrulater n-lea. Poligoanele sunt definite prin apelarea glBegin cu parametrul GL_POLYGON. Toate nodurile definesc un poligon. Pentru stiluri poligoane pot fi specificate folosind funcții descrise mai sus glPolygonMode, grosime linie, grosime și culoare puncte.

3.6 Exercițiu: „Primitive“

Desenați puncte, linii, triunghiuri, poligoane într-o singură fereastră, după cum se arată mai jos.

OpenGL - desena obiecte simple

Sursa fișier aici. Executabilă aici.

3.7 Exercițiu: „poliedre“

Punerea în aplicare a poliedre sârmă cu triunghiuri de sârmă, poligoane și linii.

3.8 Rezumat

Ei bine, ești un pas avansat în studiul bibliotecii OpenGL. Acum aveți o idee despre cum să atragă forme de bază. Din primitivele, puteți face o cifră de orice complexitate.