Vad är en OpenGL®-polygon?

En Open Graphics Library® (OpenGL®) polygon är vilket objekt som helst som är gjort i OpenGL® som består av mer än två hörn. I huvudsak anses alla objekt som inte är en punkt eller linje vara en polygon. OpenGL®, liksom de flesta grafikkort, har vanligtvis speciella optimeringar för att i första hand hantera trianglar, eller tresidiga polygoner, eftersom trianglar är den enklaste typen av polygon som kan göras med minsta hörn och sidor. I vissa fall kan fyrsidiga eller fyrsidiga polygoner hanteras av OpenGL®, huvudsakligen i tvådimensionella (2D) ritlägen. Med undantag för en konvex, enkel OpenGL®-polygon kommer de flesta former med mer än tre hörn så småningom att brytas ner till trianglar genom en process som kallas tessellation, vilket kan ha dramatiska oönskade effekter på en scen.

Den enda typen av OpenGL®-polygon som kan ritas inbyggt utan behov av tessellation är känd som en helt enkelt polygon. Denna typ av form följer några mycket enkla regler. Sidorna måste vara konvexa, vilket innebär att de inte skapar vinklar vid hörn på mindre än 90°. Inga kanter kan korsa varandra, och endast två linjer kan mötas vid en given vertex. Detta begränsar en enkel polygon till en självständig 2D-form som en kvadrat eller en oktagon, eftersom om den vore tredimensionell (3D) skulle mer än två linjer mötas vid vissa hörn.

När man konstruerar en mycket komplex OpenGL®-polygon är det ofta lättare att skapa objektet i ett externt 3D-modelleringsprogram. Detta möjliggör inte bara en bekvämare, visuell miljö att bygga ett objekt i, utan har den extra fördelen att ge designern kontroll över hur former är tessellerade så att de inte orsakar problem när de renderas. Alternativt kan en polygon skapas procedurmässigt genom algoritmer som plottar hörnen enligt ett mönster, vilket kan göras för att skapa ett helix- eller spiralmönster.

Varje OpenGL®-polygon har en yta, det heldragna området innanför formens linjer. Även om det är möjligt att ändra detta beteende, är i allmänhet varje polygon bara synlig när dess ansikte pekar mot kameran. Om en polygon är vänd åt fel håll kan den bli osynlig, beroende på renderingsläget.

Varje OpenGL®-polygon har också ett värde som kallas normal. Normalen används för att definiera riktningen som polygonens yta är vänd. Även om polygonen tydligt befinner sig i en viss vinkel och i en viss position, kan ytnormalen bidra till att skapa speciella textureffekter eller efterlikna fysiska egenskaper som inte är enhetliga. En normal för en OpenGL®-polygon kan sättas till vilket värde som helst, även negativa värden, även om resultaten kan vara oförutsägbara.