Vad är OpenGL®-linjer?

I Open Graphics Library® (OpenGL®) är linjer en av de grundläggande primitiva formerna som OpenGL® kan rita, och de utgör en av byggstenarna som ibland används för att rendera trianglar. OpenGL®-linjer är bara en rak, förbindande grafik mellan två hörn. Även om konceptet och utförandet av OpenGL®-linjer kan vara enkelt, tenderar de att ta längre tid att rendera än andra primitiver i vissa implementeringar, delvis för att det inte finns någon specifikation om deras beteende i OpenGL®-standarden. Att använda OpenGL®-linjer explicit kan ibland få oväntade resultat, eftersom linjerna är rastrerade på ett specifikt sätt som kan få dem att verka fristående från annan geometri i scenen eller verkar vara något avvikande från där de förväntas vara. Förutom en grundlinje kan OpenGL®-linjer också formas till linjeremsor och slingor, ungefär som triangelremsor, där slutet av varje linje är början på nästa.

När de används i en scen är OpenGL®-linjer en typ av primitiv form som består av två hörn, eller koordinater i tredimensionell (3D) rymd, som är förbundna med en rak, synlig bana. Till skillnad från andra primitiver, som en triangel, har en linje i allmänhet inte en yta, även om den fortfarande kan färgas med blandning och genom att använda vertexfärgning. Linjer används ofta i matematiska och vetenskapliga 3D-visualiseringar, såväl som för tvådimensionella (2D) visningsindikatorer – som hårkors eller pilar som pekar på delar av skärmen – för tittaren.

Bredden på en linje kan till viss del definieras genom OpenGL®. Antalet pixlar breda som linjen ska vara vid en given punkt kan specificeras, även om det inte finns någon riktig standard för hur detta ska fungera från en plattform till en annan. I vissa situationer kan bredden inte ändras alls medan, i andra fall, är bredden på OpenGL®-linjer begränsad till ett till synes godtyckligt antal.

Utöver grundlinjen kan flera OpenGL®-linjer kombineras för att bilda två andra strukturer som kallas linjeremsor och linjeslingor. Linjeremsor är helt enkelt en sekvens av hörn där början av varje ny linje är slutpunkten på den sista linjen. Detta är mestadels en bekvämlighetsfunktion men kan renderas snabbare än att använda enskilda rader. En linjeslinga är nästan identisk med en linjeremsa, förutom att det allra sista hörnet i slingan sedan kopplas tillbaka till det första angivna hörnet.

En komplikation när du använder OpenGL®-linjer är att eftersom de bara är 1 pixel breda som standard, återges de ibland inte på rätt sätt. I vissa fall, särskilt om linjen är kantutjämnad, kanske vissa pixlar i den rastrerade bilden inte visas. Själva linjen kan också visas några pixlar bort från där den förväntas vara. Detta orsakas till stor del av små variationer i den flyttals-matematik som OpenGL® använder; det är inte alltid ett problem som enkelt kan lösas utan att konvertera linjer till polygoner för renderingsändamål.