Mitä OpenGL® -linjat ovat?

Open Graphics Library®: ssa (OpenGL®) viivat ovat yksi perusmuodoista, joita OpenGL® pystyy piirtämään, ja ne ovat yksi rakennuspalikoista, joita käytetään joskus kolmioiden muodostamiseen. OpenGL® -viivat ovat vain suora, yhdistävä kuva kahden kärjen välillä. Vaikka OpenGL® -linjojen konsepti ja toteutus voivat olla yksinkertaisia, niiden tekeminen kestää yleensä kauemmin kuin muut primitiivit joissakin toteutuksissa, osittain siksi, että niiden käyttäytymistä ei ole määritelty OpenGL® -standardissa. OpenGL® -linjojen nimenomaisella käytöllä voi joskus olla odottamattomia tuloksia, koska viivat rasteroidaan tietyllä tavalla, mikä saattaa saada ne näyttämään irrallisilta muusta geometriasta näkymässä tai näyttävät olevan hieman kaukana odotetusta paikasta. Perusviivan lisäksi OpenGL® -viivat voidaan myös muodostaa viivanauhoiksi ja silmukoiksi, aivan kuten kolmiokaistat, ja kunkin rivin loppu on seuraavan rivin alku.

Käytettäessä kohtauksessa OpenGL®-viivat ovat muodon primitiivit, jotka koostuvat kahdesta kärjestä tai kolmiulotteisen (3D) avaruuden koordinaateista, jotka on yhdistetty suoralla, näkyvällä polulla. Toisin kuin muut primitiivit, kuten kolmio, viivalla ei yleensä ole pintaa, vaikka se voidaan silti värjätä sekoittamalla ja käyttämällä kärkivärjäystä. Viivoja käytetään usein matemaattisissa ja tieteellisissä 3D-visualisoinneissa sekä kaksiulotteisissa (2D) näytön ilmaisimissa-kuten tähtäimissä tai näytön alueisiin osoittavissa nuolissa-katsojalle.

Viivan leveys voidaan jossain määrin määrittää OpenGL®: n avulla. Viivan tulisi olla missä tahansa pisteessä leveä pikseleiden määrä, mutta ei ole olemassa todellista standardia sille, miten tämän pitäisi toimia alustalta toiselle. Joissakin tilanteissa leveyttä ei voi muuttaa ollenkaan, kun taas toisissa tapauksissa OpenGL® -viivojen leveys on rajoitettu näennäisesti mielivaltaiseen lukuun.

Peruslinjan lisäksi useita OpenGL® -linjoja voidaan yhdistää muodostamaan kaksi muuta rakennetta, jotka tunnetaan nimellä viivanauhat ja linjasilmukat. Viivakaistat ovat yksinkertaisesti pisteiden sarja, jossa jokaisen uuden suoran alku on viimeisen rivin päätepiste. Tämä on enimmäkseen mukavuustoiminto, mutta se voi tehdä nopeammin kuin yksittäisten rivien käyttäminen. Viivasilmukka on melkein identtinen viivalinjan kanssa, paitsi että silmukan viimeinen kärki yhdistetään sitten takaisin määritettyyn ensimmäiseen pisteeseen.

Yksi monimutkaisuus OpenGL® -viivoja käytettäessä on se, että koska ne ovat oletuksena vain 1 pikseliä leveitä, ne eivät toisinaan näy oikein. Tietyissä tapauksissa, etenkin jos viiva on peitelty, jotkin rasteroidun kuvan pikselit eivät ehkä näy. Itse viiva saattaa myös näkyä muutaman pikselin päässä siitä, missä sen odotetaan olevan. Tämä johtuu suurelta osin OpenGL®: n käyttämän liukulukulaskennan pienistä vaihteluista; se ei aina ole ongelma, joka voidaan helposti ratkaista muuttamatta viivoja monikulmioiksi renderointitarkoituksiin.