Mikä on OpenGL® Vertex -puskuri?

Open Graphics Library® (OpenGL®) -pistepuskuri on tietokoneen muistin alue, joka sijaitsee usein suoraan näytönohjaimella, ja joka mahdollistaa erittäin nopean pääsyn pisteisiin ja niiden ominaisuuksiin. Useimmiten OpenGL®-huippupuskuria käytetään vertex-puskuriobjektin (VBO) luomiseen, jolloin kolmiulotteisen (3D) kohtauksen objektit voidaan hahmottaa osana näyttöluetteloa eikä välittömässä tilassa. Joskus kuitenkin kärkipuskuria voidaan käyttää VBO: n ulkopuolella objektin tietojen tallentamiseen tai muutosten helpottamiseen monimutkaisissa malleissa. On huomattava, että kärkipuskuria ei tarvitse sijoittaa näytönohjaimen muistiin, koska se voidaan varata kuten mikä tahansa tietorakenne. Jos OpenGL® -kärkipuskuria käytetään osana VBO: ta, käytettävän näytönohjaimen on tuettava erityistä OpenGL® VBO -laajennusta puskurin sijoittamiseksi grafiikkamuistiin.

Perustasolla OpenGL® -kärkipuskuri on vain yksinkertainen puskuri, varattu muistialue, johon tiedot voidaan tallentaa. Siitä tulee kärkipuskuri, kun siihen tallennetaan kärkipiste. OpenGL® -pistejärjestys on tietorakenteiden joukko, joka määrittää kaikki yksittäisten pisteiden ominaisuudet. Nämä tiedot voivat sisältää 3D -kohtauksen kärjen X-, Y- ja Z -sijainnit, kärjen värin, normaalit ja muut ominaisuudet.

Välittömän tilan renderöinnissä OpenGL® -komennot suoritetaan suoraan, kun niitä kutsutaan ohjelman sisällä. Näissä tapauksissa on tarpeetonta käyttää kärkipisteitä, koska kärkipisteen sijoitus- ja piirtokomennot voidaan antaa suoraan laitteistolle, vaikka tämä voi aiheuttaa vakavia suorituskykyongelmia. Ei-välitöntä tilahahmonnusta varten 3D-objektia tai -mallia koskevat tiedot on ensin sijoitettava pistejärjestelmään, jotta niillä on rakenne, jonka OpenGL® voi helposti tulkita. että taulukko on tallennettava erityiselle muistialueelle, joka tunnetaan OpenGL® -kärkipuskurina.

Vertex -puskurilla ei sinänsä välttämättä ole muita erikoisominaisuuksia kuin se, että se on täydellinen objektin piirtämiseen käytetty tieto. Kun OpenGL® -kärkipuskuri muunnetaan OpenGL® -huippupuskuriobjektiksi OpenGL -laajennuksen kautta, tapahtuu kuitenkin erityinen tapahtumasarja, joka auttaa optimoimaan kärkipuskurissa määritellyn objektin piirtämisen. Nimittäin puskuri varataan ja tallennetaan näytönohjaimen muistiin OpenGL®: n käyttämän asiakas-palvelinasetuksen palvelinpuolelle. Jotkut laskelmat voidaan myös suorittaa etukäteen VBO: lle, jotta se voidaan tehdä mahdollisimman nopeasti. VBO: n ulkopuolella tavallinen kärkipuskuri ei yleensä saa tätä käsittelyä, ja se voidaan varata ja käyttää kuten mikä tahansa muu tietotyyppi.