Ce este un poligon OpenGL®?

Un poligon Open Graphics Library® (OpenGL®) este orice obiect realizat în OpenGL® care constă din mai mult de două vârfuri. În esență, orice obiect care nu este un punct sau o linie este considerat un poligon. OpenGL®, precum și majoritatea plăcilor grafice, au de obicei optimizări speciale pentru a se ocupa în primul rând de triunghiuri sau poligoane cu trei laturi, deoarece triunghiurile sunt cel mai simplu tip de poligon care poate fi realizat cu cele mai puține vârfuri și laturi. În unele cazuri, patrulaterele sau poligoanele cu patru laturi pot fi gestionate de OpenGL®, în principal în moduri de desen bidimensional (2D). Cu excepția unui poligon OpenGL® convex și simplu, majoritatea formelor cu mai mult de trei vârfuri vor fi în cele din urmă descompuse în triunghiuri printr-un proces numit teselare, care poate avea efecte nedorite dramatice asupra unei scene.

Singurul tip de poligon OpenGL® care poate fi desenat nativ fără a fi nevoie de teselare este cunoscut ca un simplu poligon. Acest tip de formă urmează niște reguli foarte simple. Laturile trebuie să fie convexe, adică nu creează unghiuri la vârfuri mai mici de 90°. Nicio muchie nu se poate încrucișa și doar două linii se pot întâlni la orice vârf dat. Acest lucru limitează un poligon simplu la o formă autonomă 2D, cum ar fi un pătrat sau un octogon, deoarece, dacă ar fi tridimensional (3D), atunci mai mult de două linii s-ar întâlni la unele vârfuri.

Când construiți un poligon OpenGL® foarte complex, este adesea mai ușor să creați obiectul într-un program extern de modelare 3D. Acest lucru nu numai că permite un mediu vizual mai convenabil în care să se construiască un obiect, dar are avantajul suplimentar de a oferi proiectantului controlul asupra modului în care formele sunt teselate, astfel încât să nu cauzeze probleme atunci când sunt redate. Alternativ, un poligon poate fi creat procedural prin algoritmi care trasează nodurile conform unui model, așa cum se poate face pentru a crea un model elicoidal sau spiralat.

Fiecare poligon OpenGL® are o față, zona solidă din interiorul liniilor formei. Deși este posibil să se schimbe acest comportament, în general fiecare poligon este vizibil numai atunci când fața lui este îndreptată către camera de vizionare. Dacă un poligon se află în direcția greșită, atunci acesta poate deveni invizibil, în funcție de modul de randare.

Fiecare poligon OpenGL® are, de asemenea, o valoare cunoscută ca normală. Normala este folosită pentru a defini direcția în care se confruntă suprafața poligonului. Chiar dacă poligonul se află în mod clar într-un anumit unghi și într-o anumită poziție, suprafața normală poate ajuta la crearea unor efecte speciale de textură sau la imitarea proprietăților fizice care nu sunt uniforme. O normală pentru un poligon OpenGL® poate fi setată la orice valoare, chiar și la valori negative, deși rezultatele ar putea fi imprevizibile.