Che cos'è un poligono OpenGL®?
Un poligono Open Graphics Library® (OpenGL®) è qualsiasi oggetto realizzato in OpenGL® costituito da più di due vertici. In sostanza, qualsiasi oggetto che non sia un punto o una linea è considerato un poligono. OpenGL®, così come la maggior parte delle schede grafiche, di solito hanno ottimizzazioni speciali per gestire principalmente triangoli o poligoni a tre lati, poiché i triangoli sono il tipo più semplice di poligono che può essere realizzato con il minor numero di vertici e lati. In alcuni casi, quadrilateri o poligoni a quattro lati, possono essere gestiti da OpenGL®, principalmente in modalità di disegno bidimensionale (2D). Con l'eccezione di un semplice poligono OpenGL® convesso, la maggior parte delle forme con più di tre vertici verrà infine suddivisa in triangoli attraverso un processo chiamato tassellatura, che può avere effetti drammatici indesiderati su una scena.
L'unico tipo di poligono OpenGL® che può essere disegnato in modo nativo senza necessità di tassellatura è noto semplicemente come poligono. Questo tipo di forma segue alcune regole molto semplici. I lati devono essere convessi, nel senso che non creano angoli ai vertici inferiori a 90 °. Nessun bordo può incrociarsi e qualsiasi solo due linee può incontrarsi in un dato vertice. Questo limita un semplice poligono a una forma autonoma 2D come un quadrato o un ottagono perché, se fosse tridimensionale (3D), più di due linee si incontrerebbero in alcuni vertici.
Quando si costruisce un poligono OpenGL® molto complesso, spesso è più semplice creare l'oggetto in un programma di modellazione 3D esterno. Ciò non solo consente un ambiente visivo più conveniente in cui costruire un oggetto, ma ha anche l'ulteriore vantaggio di fornire al progettista il controllo su come le forme sono tassellate in modo da non causare problemi durante il rendering. In alternativa, un poligono può essere creato proceduralmente attraverso algoritmi che tracciano i vertici secondo un modello, come si può fare per creare un elica o un modello a spirale.
Ogni poligono OpenGL® ha una faccia, l'area solida all'interno delle linee della forma. Sebbene sia possibile modificare questo comportamento, in generale ogni poligono è visibile solo quando la sua faccia è rivolta verso la telecamera di visualizzazione. Se un poligono si trova nella direzione sbagliata, potrebbe diventare invisibile, a seconda della modalità di rendering.
Ogni poligono OpenGL® ha anche un valore noto come normale. Il normale viene utilizzato per definire la direzione verso cui è rivolta la superficie del poligono. Anche se il poligono è chiaramente ad un certo angolo e ad una certa posizione, la normale superficie può aiutare a creare effetti di trama speciali o imitare proprietà fisiche non uniformi. Un normale per un poligono OpenGL® può essere impostato su qualsiasi valore, anche su valori negativi, anche se i risultati potrebbero essere imprevedibili.