Što su OpenGL® linije?

U Open Graphics Library® (OpenGL®), linije su jedan od osnovnih primitivnih oblika koje OpenGL® može nacrtati i one su jedan od građevnih blokova koji se ponekad koriste za renderiranje trokuta. OpenGL® linije su samo ravna, povezujuća grafika između dva vrha. Iako koncept i izvedba OpenGL® linija mogu biti jednostavni, obično im je potrebno dulje vrijeme za renderiranje od ostalih primitiva u nekim implementacijama, dijelom zato što u OpenGL® standardu ne postoji specifikacija o njihovom ponašanju. Eksplicitna uporaba OpenGL® linija ponekad može imati neočekivane rezultate, jer su linije rasterizirane na specifičan način zbog čega bi se mogle činiti odvojenima od druge geometrije u sceni ili izgledati kao da su malo udaljene od očekivanog. Uz osnovnu liniju, OpenGL® linije također se mogu oblikovati u trake i petlje, slično kao trokutne trake, pri čemu je kraj svake linije početak sljedeće.

Kada se koriste u sceni, OpenGL® linije su vrsta primitivnog oblika koji se sastoji od dva vrha ili koordinata u trodimenzionalnom (3D) prostoru, koji su povezani ravnom, vidljivom putanjom. Za razliku od drugih primitiva, kao što je trokut, linija općenito nema površinu, iako se još uvijek može bojati miješanjem i bojenjem vrhova. Linije se često koriste u matematičkim i znanstvenim 3D vizualizacijama, kao i za dvodimenzionalne (2D) indikatore prikaza — kao što su križić ili strelice koje pokazuju na područja zaslona — za gledatelja.

Širina linije može se donekle definirati kroz OpenGL®. Broj piksela širine koje bi linija trebala biti u bilo kojoj točki može se odrediti, iako ne postoji pravi standard za to kako bi to trebalo funkcionirati s jedne platforme na drugu. U nekim situacijama, širina se uopće ne može promijeniti, dok je u drugim slučajevima širina OpenGL® linija ograničena na naizgled proizvoljan broj.

Uz osnovnu liniju, više OpenGL® linija može se kombinirati u dvije druge strukture poznate kao linijske trake i linijske petlje. Trake linija su jednostavno niz vrhova u kojima je početak svakog novog retka krajnja točka posljednjeg retka. Ovo je uglavnom prikladna funkcija, ali može se generirati brže od korištenja pojedinačnih redaka. Linija petlja je gotovo identična linijskoj traci, osim što je zadnji vrh u petlji tada povezan s prvim navedenim vrhom.

Jedna od komplikacija pri korištenju OpenGL® linija je da se, budući da su prema zadanim postavkama široke samo 1 piksel, ponekad ne renderiraju na ispravan način. U određenim slučajevima, osobito ako je linija anti-aliasing, određeni pikseli u rasteriziranoj slici možda neće biti prikazani. Sama linija također se može pojaviti nekoliko piksela dalje od mjesta na kojem se očekuje. To je uglavnom uzrokovano malim varijacijama u matematici s pomičnim zarezom koju OpenGL® koristi; nije uvijek problem koji se može lako riješiti bez pretvaranja linija u poligone za potrebe renderiranja.