Hvad er en OpenGL® polygon?
En Open Graphics Library® (OpenGL®) polygon er ethvert objekt, der er lavet i OpenGL®, der består af mere end to hjørner. I det væsentlige betragtes ethvert objekt, der ikke er et punkt eller en linje, som en polygon. OpenGL®, såvel som de fleste grafikkort, har normalt specialoptimeringer til primært at håndtere trekanter eller tre-sidede polygoner, fordi trekanter er den enkleste type polygon, der kan laves med de mindste hjørner og sider. I nogle tilfælde kan firformede polygoner eller firsidede polygoner håndteres af OpenGL®, hovedsageligt i to-dimensionelle (2D) tegningstilstande. Med undtagelse af en konveks, enkel OpenGL®-polygon, vil de fleste former med mere end tre hjørner til sidst blive opdelt i trekanter gennem en proces kaldet tessellation, som kan have dramatiske uønskede effekter på en scene.
Den eneste type OpenGL®-polygon, der kan trækkes naturligt uden behov for tessellation, er kendt som en simpel polygon. Denne type form følger nogle meget enkle regler. Siderne skal være konvekse, hvilket betyder, at de ikke skaber vinkler i højdepunktet under 90 °. Ingen kanter kan krydse hinanden, og kun to linjer kan mødes i et givet toppunkt. Dette begrænser en simpel polygon til en selvstændig 2D-form, såsom en firkant eller en ottekant, fordi hvis det var tredimensionelt (3D), ville mere end to linier mødes i nogle vertikater.
Når man konstruerer en meget kompleks OpenGL®-polygon, er det ofte lettere at oprette objektet i et eksternt 3D-modelleringsprogram. Dette tillader ikke kun et mere praktisk, visuelt miljø, hvor man kan opbygge et objekt, men har den ekstra fordel at give designeren kontrol over, hvordan figurer er tessellerede, så de ikke skaber problemer, når de gengives. Alternativt kan en polygon oprettes proceduremæssigt gennem algoritmer, der plotter verticerne i henhold til et mønster, som det kan gøres for at skabe en helix eller spiralmønster.
Hver OpenGL®-polygon har et ansigt, det faste område inden i formens linjer. Selvom det er muligt at ændre denne opførsel, er hver polygon generelt kun synlig, når dens ansigt peger mod visningskameraet. Hvis en polygon vender mod den forkerte vej, kan den muligvis blive usynlig, afhængigt af gengivelsestilstanden.
Hver OpenGL®-polygon har også en værdi, der er kendt som en normal. Normalen bruges til at definere den retning, som polygonets overflade vender mod. Selv om polygonen tydeligt befinder sig i en bestemt vinkel og i en bestemt position, kan overfladen normal være med til at skabe specielle tekstureffekter eller efterligne fysiske egenskaber, der ikke er ensartede. En normal for en OpenGL®-polygon kan indstilles til en hvilken som helst værdi, endda negative værdier, selvom resultaterne muligvis er uforudsigelige.