Hva er en OpenGL® Quad?
En OpenGL® firkantet, eller firer, i dataprogrammering og grafikk, er en tredimensjonal (3D) form, også kalt en polygon, som har fire sider og fire punkter. Hvert 3D-punkt som representerer et enkelt hjørne av OpenGL®-firkanten er kjent som et toppunkt og er definert med tre tall knyttet til dets koordinatposisjon i det virtuelle rommet. Hodepunktene til en firemengde trenger ikke å følge noen reelle retningslinjer, bortsett fra at det må være fire av dem; ellers er formen kjent som en polygon, trekant eller linje avhengig av det faktiske tallet. De fleste digitale bilder er faktisk rektangulære, så en OpenGL®-firkant kan være en nyttig form fordi bildet kan kartlegges til overflaten uten en stor mengde forvrengning og uten behov for komplekse teknikker for kartlegging av tekstur. Bruken av en OpenGL® quad har imidlertid sine egne utfordringer, og det er flere programmerere som foreslår å unngå å bruke dem fullstendig.
En av de viktigste bruksområdene for en OpenGL® quad er å tegne todimensjonal (2D) grafikk i et 3D-miljø. Dette kan gjøres for å ha et statisk brukergrensesnitt lagt på toppen av en 3D-scene eller for å etterligne 2D-grafikk med OpenGL®. Selv om OpenGL® ble designet for å gjengi kompleks 3D-grafikk, brukes den ofte i 2D-grafikkapplikasjoner på grunn av optimaliseringene og fleksibiliteten til det abstrakte programmeringsgrensesnittet (API). En firhjul blir veldig viktig når det gjelder gjengivelse av 2D-grafikk, fordi det er en naturlig 3D-representasjon av et digitalt bilde, noe som betyr at en firemengde kan være proporsjonert for å passe nøyaktig til dimensjonen på bildet. Når proporsjonene stemmer overens, kan bildet kartlegges eller projiseres på overflaten av firemålet uten noen form for forvrengning, innpakning eller rennestein.
En fordel med å bruke en OpenGL® quad, ifølge noen programmerere, er at det er lettere å tenke på hvordan quads passer sammen, i motsetning til å visualisere hvordan trekanter passer sammen. Dette gjelder spesielt for enkle 3D-former som en kube der hver firkant er en enkelt side; med et trekantnett, må to trekanter kombineres for å lage en firkant som utgjør en enkelt side. Firemannsrom kan også enkelt manipuleres for å skape perspektiv eller andre effekter i et miljø som enten er flislagt eller justert til et rutenett.
Det er noen ulemper med å bruke en OpenGL®-firkant, mest på grunn av algoritmene som brukes til å rastrere eller gjengi et bilde i visningsvinduet. Et av de mest oppståtte problemene er at gjengivelsen eller grafikkortet når som helst kan bryte firemannen i to trekanter med det formål å effektivisere. Dette kan føre til at en ellers glatt overflate plutselig får en synlig forvrengning i en vinkel gjennom firkanten der kantene på trekantene møtes.
Et annet problem som er mer vanlig enn noen ganger trodde, har å gjøre med utklipp av en OpenGL® firhjul. Når en del av firemannen er utenfor visningsvinduet, utenfor skjermen, vil gjengiveren klippe firemet slik at bare den synlige delen blir gjengitt. Dette betyr at en firedel blir kuttet geometrisk. Hvis firedoblingen ble konvertert til to trekanter før klippingen skjer, blir hver trekant en firedobling, og hver av disse firemannene konverteres til to trekanter. Dette fører til en situasjon der en utklippet firplass plutselig består av fire trekanter i stedet for en jevn firer.
Kompleksiteten og uforutsigbarheten ved konvertering av firer til trekanter fører til uønskede resultater. Disse inkluderer forvrengninger i teksturer, unøyaktigheter eller gjenstander relatert til toppunktbelysning, og noen ganger mangler polygonflater. Av disse grunnene unngår noen programmerere å bruke firer helt.