Vad är en OpenGL® Quad?

En OpenGL®-fyrhörning, eller quad, i datorprogrammering och grafik är en tredimensionell (3D) form, även kallad en polygon, som har fyra sidor och fyra punkter. Varje 3D-punkt som representerar ett enda hörn av OpenGL®-quad är känd som en vertex och definieras med tre siffror som hänför sig till dess koordinatposition i det virtuella rummet. Topparna på en quad behöver inte följa några riktiga riktlinjer, förutom att det måste finnas fyra av dem; annars är formen känd som en polygon, triangel eller linje beroende på det faktiska antalet. De flesta digitala bilder är faktiskt rektangulära, så en OpenGL® quad kan vara en användbar form eftersom bilden kan texturmappas till ytan utan en stor mängd förvrängning och utan behov av komplexa texturkartläggningstekniker. Användningen av en OpenGL® quad har dock sina egna utmaningar, och det finns ett antal programmerare som föreslår att de helt undviks.

En av de viktigaste användningsområdena för en OpenGL® quad är att rita tvådimensionell (2D) grafik i en 3D-miljö. Detta kan göras för att ha ett statiskt användargränssnitt ovanpå en 3D-scen eller för att emulera 2D-grafik med OpenGL®. Även om OpenGL® designades för att återge komplex 3D-grafik, används den ofta i 2D-grafikapplikationer på grund av optimeringarna och flexibiliteten hos det abstrakta programmeringsgränssnittet (API). En quad blir mycket viktig för att rendera 2D-grafik, eftersom det är en naturlig 3D-representation av en digital bild, vilket innebär att en quad kan proportioneras för att exakt matcha bildens dimension. När proportionerna stämmer överens kan bilden strukturmappas eller projiceras på ytan av fyrhjulingen utan någon form av förvrängning, omslag eller rännutrymme.

En fördel med att använda en OpenGL® quad, enligt vissa programmerare, är att det är lättare att tänka på hur quads passar ihop, i motsats till att visualisera hur trianglar passar ihop. Detta gäller särskilt för enkla 3D-former som en kub där varje fyrhjuling är en enkel sida; med ett triangelnät måste två trianglar kombineras för att göra en fyrkant som gör en enkel sida. Quads kan också enkelt manipuleras för att skapa perspektiv eller andra effekter i en miljö som antingen är sida vid sida eller justerad till ett rutnät.

Det finns några nackdelar med att använda en OpenGL® quad, mest på grund av de algoritmer som används för att rastrera eller rendera en bild i tittarens fönster. Ett av de vanligaste problemen är att renderingen eller grafikkortet kan, när som helst, dela upp fyrhjulingen i två trianglar för effektivitetens syfte. Detta kan göra att en annars slät yta plötsligt får en synlig förvrängning i en vinkel genom fyrhjulingen där kanterna på trianglarna möts.

Ett annat problem som är vanligare än man ibland tror har att göra med klippningen av en OpenGL® quad. När en del av fyrhjulingen är utanför visningsfönstret, utanför skärmen, kommer renderaren att klippa fyrhjulingen så att endast den synliga delen återges. Detta innebär att en fyrhjuling kommer att skäras geometriskt. Om quad omvandlades till två trianglar innan klippningen inträffade, blir varje triangel en quad, och var och en av dessa quads omvandlas till två trianglar. Detta leder till en situation där en klippt quad plötsligt består av fyra trianglar istället för en jämn quad.

Komplexiteten och oförutsägbarheten i omvandlingen av fyrhjulingar till trianglar leder till oönskade resultat. Dessa inkluderar förvrängningar i texturer, felaktigheter eller artefakter relaterade till vertexbelysning och ibland saknade polygonytor. Av dessa skäl undviker vissa programmerare att använda fyrhjulingar helt och hållet.