Che cos’è un poligono OpenGL®?

Un poligono Open Graphics Library® (OpenGL®) è qualsiasi oggetto realizzato in OpenGL® che consiste di 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 ha ottimizzazioni speciali per gestire principalmente triangoli o poligoni a tre lati, perché i triangoli sono il tipo più semplice di poligono che può essere realizzato con il minor numero di vertici e lati. In alcuni casi, i 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 alla fine verrà suddivisa in triangoli attraverso un processo chiamato tassellatura, che può avere effetti indesiderati drammatici su una scena.

L’unico tipo di poligono OpenGL® che può essere disegnato in modo nativo senza la necessità di tassellatura è noto come poligono semplice. 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 solo due linee possono incontrarsi in un dato vertice. Ciò limita un semplice poligono a una forma 2D autonoma come un quadrato o un ottagono perché, se fosse tridimensionale (3D), in alcuni vertici si incontrerebbero più di due linee.

Quando si costruisce un poligono OpenGL® molto complesso, spesso è più facile creare l’oggetto in un programma di modellazione 3D esterno. Ciò non solo consente un ambiente visivo più comodo in cui costruire un oggetto, ma ha l’ulteriore vantaggio di fornire al progettista il controllo su come le forme sono tessellate in modo che non causino problemi durante il rendering. In alternativa, un poligono può essere creato proceduralmente tramite algoritmi che tracciano i vertici secondo un modello, come si può fare per creare un modello di elica o 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 è rivolto nella direzione sbagliata, potrebbe diventare invisibile, a seconda della modalità di rendering.

Ogni poligono OpenGL® ha anche un valore noto come normale. La normale viene utilizzata per definire la direzione verso cui è rivolta la superficie del poligono. Anche se il poligono si trova chiaramente a un certo angolo e in una certa posizione, la normale alla superficie può aiutare a creare effetti di trama speciali o imitare proprietà fisiche non uniformi. Una normale per un poligono OpenGL® può essere impostata su qualsiasi valore, anche su valori negativi, anche se i risultati potrebbero essere imprevedibili.