Ce sunt liniile OpenGL®?

În Open Graphics Library® (OpenGL®), liniile sunt una dintre formele primitive de bază pe care OpenGL® este capabil să le deseneze și constituie unul dintre blocurile de construcție care sunt uneori folosite pentru a reda triunghiuri. Liniile OpenGL® sunt doar un grafic drept, de legătură între două vârfuri. Chiar dacă conceptul și execuția liniilor OpenGL® pot fi simple, acestea tind să dureze mai mult timp pentru a reda decât alte primitive în unele implementări, parțial pentru că nu există nicio specificație despre comportamentul lor în standardul OpenGL®. Folosirea explicită a liniilor OpenGL® poate avea uneori rezultate neașteptate, deoarece liniile sunt rasterizate într-un mod specific care le poate face să pară detașate de alte geometrii din scenă sau să pară ușor îndepărtate de locul în care se așteaptă să fie. Pe lângă o linie de bază, liniile OpenGL® pot fi, de asemenea, formate în benzi de linie și bucle, la fel ca benzile triunghiulare, cu sfârșitul fiecărei linii fiind începutul următoarei.

Când sunt utilizate într-o scenă, liniile OpenGL® sunt un tip de primitivă de formă constând din două vârfuri sau coordonate în spațiu tridimensional (3D), care sunt conectate printr-o cale dreaptă, vizibilă. Spre deosebire de alte primitive, cum ar fi un triunghi, o linie în general nu are o suprafață, deși poate fi încă colorată prin amestecare și prin utilizarea colorării vârfurilor. Liniile sunt frecvent utilizate în vizualizările 3D matematice și științifice, precum și pentru indicatorii de afișare bidimensionale (2D) – cum ar fi încrucișarea sau săgețile care indică zonele afișajului – pentru vizualizator.

Lățimea unei linii poate fi definită într-o oarecare măsură prin OpenGL®. Numărul de pixeli lățime pe care ar trebui să-l aibă linia într-un anumit punct poate fi specificat, deși nu există un standard real pentru modul în care aceasta ar trebui să funcționeze de la o platformă la alta. În unele situații, lățimea nu poate fi schimbată deloc, în timp ce, în alte cazuri, lățimea liniilor OpenGL® este limitată la un număr aparent arbitrar.

Pe lângă linia de bază, mai multe linii OpenGL® pot fi combinate pentru a forma alte două structuri cunoscute sub numele de benzi de linie și bucle de linie. Benzile de linii sunt pur și simplu o succesiune de vârfuri în care începutul fiecărei linii noi este punctul final al ultimei linii. Aceasta este în mare parte o funcție convenabilă, dar poate fi redată mai rapid decât folosind linii individuale. O buclă de linie este aproape identică cu o bandă de linie, cu excepția faptului că ultimul vârf din buclă este apoi conectat înapoi la primul vârf specificat.

O complicație atunci când utilizați linii OpenGL® este că, deoarece au doar 1 pixel lățime în mod implicit, uneori nu sunt randate în mod corect. În anumite cazuri, mai ales dacă linia este anti-alias, este posibil ca anumiți pixeli din imaginea rasterizată să nu fie afișați. Linia în sine ar putea apărea la câțiva pixeli distanță de locul în care se așteaptă să fie. Acest lucru este cauzat în mare măsură de variațiile minime ale matematicii în virgulă mobilă pe care OpenGL® le folosește; nu este întotdeauna o problemă care poate fi rezolvată cu ușurință fără a converti liniile în poligoane în scopuri de randare.