Što je OpenGL® poligon?

Poligon Open Graphics Library® (OpenGL®) je svaki objekt izrađen u OpenGL®-u koji se sastoji od više od dva vrha. U osnovi, svaki objekt koji nije točka ili pravac smatra se poligonom. OpenGL®, kao i većina grafičkih kartica, obično imaju posebne optimizacije za rad prvenstveno s trokutima, ili trostranim poligonima, jer su trokuti najjednostavniji tip poligona koji se može napraviti s najmanje vrhova i stranica. U nekim slučajevima, četverokuti ili četverostrani poligoni mogu se rukovati OpenGL®-om, uglavnom u dvodimenzionalnim (2D) načinima crtanja. Uz iznimku konveksnog, jednostavnog OpenGL® poligona, većina oblika s više od tri vrha na kraju će biti razbijena na trokute kroz proces koji se naziva teselacija, što može imati dramatične neželjene učinke na scenu.

Jedina vrsta OpenGL® poligona koji se može nacrtati nativno bez potrebe za teselacijom poznat je kao jednostavan poligon. Ova vrsta oblika slijedi neka vrlo jednostavna pravila. Stranice moraju biti konveksne, što znači da ne stvaraju kutove na vrhovima manjim od 90°. Niti jedan brid se ne može križati, a bilo koje samo dvije linije mogu se sastati u bilo kojem danom vrhu. To ograničava jednostavan poligon na 2D samostalni oblik kao što je kvadrat ili osmerokut jer, da je trodimenzionalan (3D), tada bi se više od dvije linije sastajalo na nekim vrhovima.

Kada se konstruira vrlo složen OpenGL® poligon, često je lakše stvoriti objekt u vanjskom programu za 3D modeliranje. Ovo ne samo da omogućuje prikladnije, vizualno okruženje u kojem se gradi objekt, već ima i dodatnu prednost jer dizajneru pruža kontrolu nad načinom na koji su oblici teselirani tako da ne uzrokuju probleme prilikom prikazivanja. Alternativno, poligon se može stvoriti proceduralno putem algoritama koji crtaju vrhove prema uzorku, kao što se može učiniti za stvaranje spiralnog ili spiralnog uzorka.

Svaki OpenGL® poligon ima lice, čvrsto područje unutar linija oblika. Iako je moguće promijeniti ovo ponašanje, općenito je svaki poligon vidljiv samo kada je njegovo lice usmjereno prema kameri za gledanje. Ako je poligon okrenut na krivu stranu, može postati nevidljiv, ovisno o načinu renderiranja.

Svaki OpenGL® poligon također ima vrijednost poznatu kao normala. Normala se koristi za definiranje smjera prema kojem je okrenuta površina poligona. Iako je poligon jasno pod određenim kutom i na određenoj poziciji, normalna površina može pomoći u stvaranju posebnih efekata teksture ili oponašaju fizička svojstva koja nisu jednolična. Normalno za OpenGL® poligon može se postaviti na bilo koju vrijednost, čak i na negativne vrijednosti, iako rezultati mogu biti nepredvidljivi.