Che cos'è un OpenGL® Quad?
Un quadrilatero OpenGL®, o quad, in programmazione e grafica per 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 di coordinate nello spazio virtuale. I vertici di un quad non devono seguire linee guida reali, 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 in trama sulla superficie senza una grande distorsione e senza la necessità di complesse tecniche di mappatura delle trame. L'uso di un quad OpenGL® ha tuttavia le sue sfide e ci sono molti programmatori che suggeriscono di evitarne completamente l'uso.
Uno degli usi principali di un quad OpenGL® è disegnare grafica bidimensionale (2D) in 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 il rendering di grafica 3D complessa, viene spesso utilizzato in applicazioni grafiche 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 adattarsi esattamente alla dimensione dell'immagine. Una volta che le proporzioni corrispondono, l'immagine può essere mappata 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 adattano insieme, invece di visualizzare come i triangoli si incastrano insieme. Ciò è particolarmente vero per le semplici forme 3D come un cubo in cui ogni quadratino è un lato singolo; con una maglia triangolare, due triangoli devono essere combinati per formare un quadrato che formi un solo lato. I quad possono anche essere facilmente manipolati per creare prospettiva o altri effetti all'interno di un ambiente piastrellato o allineato a una griglia.
Ci sono alcuni svantaggi nell'uso di un quad OpenGL®, principalmente a causa degli algoritmi usati per rasterizzare o renderizzare un'immagine all'interno della finestra del visualizzatore. Uno dei problemi più riscontrati è che la scheda grafica o di rendering potrebbe, in qualsiasi momento, suddividere il quad in due triangoli a scopo di efficienza. Ciò può far sì che una superficie altrimenti liscia abbia improvvisamente una distorsione visibile ad angolo attraverso il quadretto in cui i bordi dei triangoli si incontrano.
Un altro problema più comune di quanto a volte si pensi riguardi il clipping di un quad OpenGL®. Quando parte del quad è al di fuori della finestra di visualizzazione, fuori dallo schermo, il renderer ritaglierà il quad in modo da renderizzare solo la parte visibile. Ciò significa che un quad verrà tagliato geometricamente. Se il quad è stato convertito in due triangoli prima che si verifichi il clipping, ogni triangolo diventa un quad e ciascuno di quei quad viene convertito in due triangoli. Ciò porta a una situazione in cui un quadruplo ritagliato improvvisamente consiste di quattro triangoli invece di un quadrante liscio.
La complessità e l'imprevedibilità della conversione dei quadretti in triangoli porta a risultati indesiderati. Questi includono distorsioni nelle trame, imprecisioni o artefatti relativi all'illuminazione dei vertici e talvolta mancano superfici poligonali. Per questi motivi, alcuni programmatori evitano del tutto l'uso dei quad.