Mikä on OpenGL® VBO?

Kun käytät Open Graphics Library® (OpenGL®) -tietokonegrafiikkakirjastoja tietokoneohjelmointiin, vertex-puskuriobjekti (VBO) on tietorakenne, joka mahdollistaa kolmiulotteisen (3D) objektin rakentamisen ja tallentamisen grafiikan muistiin. kortti- tai grafiikkalaitteisto. Tämä mahdollistaa OpenGL® VBO: n renderöinnin erittäin nopeasti ja käyttää paljon vähemmän järjestelmäresursseja kuin muut tekniikat, jotka käyttävät välittömän tilan piirtämistä. Nopeuden paranemisen ja grafiikkakustannusten vähenemisen lisäksi OpenGL® VBO on myös dynaaminen tietorakenne – toisin kuin OpenGL® -näyttöluettelo -, jota voidaan muuttaa heti, kun se on muistissa. OpenGL® VBO -konsepti alkoi itse asiassa laitteistovalmistajilta, jotka alun perin sisälsivät – eri nimillä – samanlaisia ​​toimintoja kuin OpenGL® -kirjastojen laajennukset, jotka myöhemmin standardisoi OpenGL® Architecture Review Board (ARB).

OpenGL® VBO on pohjimmiltaan kahden muun OpenGL® -tietorakenteen yhdistelmä. Se sisältää kärkipään matriisin perustoiminnot, koska geometrian tiedot – mukaan lukien kärkikoordinaatit, normaalit ja väri – voidaan tallentaa strukturoituun taulukkoon, joka voidaan siirtää OpenGL®: lle käsiteltäväksi. Toisin kuin kärkipalkki, OpenGL® VBO on kuitenkin tallennettu hahmontajan palvelinpuolelle, eikä sen tarvitse jatkuvasti päästä käsiksi asiakaspuolelle kärkitietojen saamiseksi.

Sallimalla VBO: n tallentaa grafiikkamuistiin se ottaa myös joitakin näyttöluettelon ominaisuuksia. Suurin ero on siinä, että OpenGL® VBO: ta voidaan muokata ja näyttöluetteloa ei. Lisäksi VBO: ta ei välttämättä kopioida grafiikkamuistiin, kuten näyttöluettelo olisi, joten muistissa on oltava vain yksi tietorakenne.

Kun OpenGL® VBO renderoidaan lopulta, etäisyys grafiikkamuistista, johon se on tallennettu, ja grafiikkaprosessoriyksiköstä (GPU) on hyvin pieni, mikä mahdollistaa erittäin nopean rasteroinnin ilman tarvetta siirtyä ensin hitaamman järjestelmän laitteiston läpi. Joissakin tapauksissa näytönohjaimen laitteisto ei kuitenkaan tue VBO -laitteiden käyttöä. Tämä voi johtaa ohjelmointiongelmiin, jotka poistavat lisäedut VBO: n käytöstä tai ohjelmasta, joka ei ole yhteensopiva joidenkin näytönohjainten kanssa.

Jotkut menetelmät voivat auttaa optimoimaan OpenGL® VBO: n käsittelyn käytettäessä. Yksi näistä on vihjeiden antaminen näytönohjaimelle tai OpenGL®: lle, jotta voidaan määrittää, missä VBO: n pitäisi sijaita muistissa. Annetuista vihjeistä riippuen VBO voidaan tallentaa suoraan näytönohjaimen grafiikkamuistiin tai tarvittaessa järjestelmän päämuistiin (RAM).