Che cos’è un quad OpenGL®?

Un quadrilatero OpenGL®, o quad, nella programmazione e nella grafica del computer è una forma tridimensionale (3D), chiamata anche poligono, che ha quattro lati e quattro punti. Ogni punto 3D che rappresenta un singolo angolo del quad OpenGL® è noto come vertice ed è definito con tre numeri relativi alla sua posizione coordinata nello spazio virtuale. I vertici di un quad non devono seguire alcuna linea guida reale, tranne che devono essercene quattro; altrimenti la forma è nota come poligono, triangolo o linea a seconda del numero effettivo. La maggior parte delle immagini digitali sono in realtà rettangolari, quindi un quad OpenGL® può essere una forma utile perché l’immagine può essere mappata sulla superficie senza una grande quantità di distorsione e senza la necessità di complesse tecniche di mappatura della trama. L’uso di un quad OpenGL® ha le sue sfide, tuttavia, e ci sono un certo numero di programmatori che suggeriscono di evitarne completamente l’uso.

Uno degli usi principali di un quad OpenGL® è disegnare grafica bidimensionale (2D) all’interno di un ambiente 3D. Questo può essere fatto per avere un’interfaccia utente statica sovrapposta a una scena 3D o per emulare la grafica 2D con OpenGL®. Anche se OpenGL® è stato progettato per eseguire il rendering di grafica 3D complessa, viene spesso utilizzato nelle applicazioni di grafica 2D a causa delle ottimizzazioni e della flessibilità dell’interfaccia di programmazione astratta (API). Un quad diventa molto importante nel rendering della grafica 2D, perché è una rappresentazione 3D naturale di un’immagine digitale, il che significa che un quad può essere proporzionato per corrispondere esattamente alla dimensione dell’immagine. Una volta che le proporzioni corrispondono, l’immagine può essere mappata con texture, o proiettata, sulla superficie del quad senza alcun tipo di distorsione, avvolgimento o spazio di grondaia.

Un vantaggio dell’utilizzo di un quad OpenGL®, secondo alcuni programmatori, è che è più facile pensare a come i quad si incastrano, invece di visualizzare come i triangoli si incastrano. Ciò è particolarmente vero per semplici forme 3D come un cubo in cui ogni quad è un singolo lato; con una maglia triangolare, due triangoli devono essere combinati per creare un quad che forma un solo lato. I quad possono anche essere facilmente manipolati per creare prospettive o altri effetti all’interno di un ambiente affiancato o allineato a una griglia.

Ci sono alcuni svantaggi nell’usare un quad OpenGL®, principalmente a causa degli algoritmi usati per rasterizzare o rendere un’immagine all’interno della finestra del visualizzatore. Uno dei problemi più riscontrati è che il rendering o la scheda grafica potrebbe, in qualsiasi momento, spezzare il quad in due triangoli per motivi di efficienza. Ciò può far sì che una superficie altrimenti liscia abbia improvvisamente una distorsione visibile ad un angolo attraverso il quad dove si incontrano i bordi dei triangoli.

Un altro problema più comune di quanto a volte si pensi ha a che fare con il clipping di un quad OpenGL®. Quando parte del quad è fuori dalla finestra di visualizzazione, fuori dallo schermo, il renderer taglierà il quad in modo che venga renderizzata solo la parte visibile. Ciò significa che un quad verrà tagliato geometricamente. Se il quad è stato convertito in due triangoli prima che si verificasse il ritaglio, ogni triangolo diventa un quad e ognuno di quei quad viene convertito in due triangoli. Questo porta a una situazione in cui un quad troncato consiste improvvisamente di quattro triangoli invece di un quad liscio.

La complessità e l’imprevedibilità della conversione dei quadricipiti in triangoli porta a risultati indesiderati. Questi includono distorsioni nelle trame, imprecisioni o artefatti relativi all’illuminazione dei vertici e talvolta superfici poligonali mancanti. Per questi motivi, alcuni programmatori evitano del tutto l’uso dei quad.