Mitä OpenGL® -puskurit ovat?

OpenGL®-puskurit ovat tietokoneen muistissa olevia alueita, joita käytetään informaatiosarjojen tallentamiseen, jotta niihin pääsee käsiksi hyvin nopeasti ja helposti ilman tarvetta laskea tiedot uudelleen joka kerta. Vaikka tavallisen tietokoneohjelmoinnin tapaan OpenGL® -puskurit ovat pohjimmiltaan vain peräkkäisiä varatun tietokoneen muistin lohkoja, OpenGL® itse rakentaa puskurit ohjelman sisällä määrittelemällä, minkä tyyppistä tietoa puskurissa säilytetään, jotta tiettyjä optimointeja voidaan käyttää. OpenGL® -puskureita on useita, mukaan lukien kehyspuskurit, pikselipuskurit ja kärkipuskurit. Yksi OpenGL® -järjestelmän puskureiden tärkeistä ominaisuuksista on, että ne voidaan tallentaa muistialueille, joilla puskurin sisältämien tietojen käyttö voi olla normaalia nopeampaa. OpenGL® -puskurin käyttötarkoitus voi auttaa määrittämään, mihin puskuri todella tallennetaan.

Yksi OpenGL® -puskureiden käytön eduista on, että ne voidaan sijoittaa muistiin, johon pääsee nopeasti. Tärkeitä puskureita, kuten kehyspuskureita, voidaan itse asiassa sijoittaa suoraan käytettävän näytönohjaimen muistiin. Tämä tarkoittaa sitä, että tiedot voidaan siirtää suoraan puskurista grafiikkaprosessointiyksikköön (GPU) ilman, että niiden tarvitsee kulkea fyysiseltä laitteistokortilta toiselle. Raakatietojen, kuten kehyspuskurin sisällä olevan esisulatetun näytön, siirtäminen toiseen muistipaikkaan ilman minkäänlaista käsittelyä on blitting-tekniikka, ja se on yksi nopeimmista tavoista siirtää tietoja muistissa.

OpenGL® -puskureita on useita tyyppejä, vaikka jokainen on todellakin vain muistilohko. Yksi käytetyimmistä on kehyspuskuri. Kehyspuskuri sisältää tiedot, jotka ovat tarpeen nykyisen kehyksen näyttämiseksi näyttölaitteelle. Kehyspuskurin sisällä olevat tiedot on järjestetty samalla tavalla kuin muisti, jota käytetään näytön näyttämisen ohjaamiseen. Tämä tarkoittaa sitä, että jos kehyspuskuri sijaitsee näytönohjaimella, kuva voidaan välkkyä näytölle lähes välittömästi, vaikka otoksen ottaminen puskuriin vie ensin aikaa.

Muunlaiset OpenGL® -puskurit, kuten kärkipuskuri, voivat sisältää kokonaisia ​​tietosarjoja. Tämäntyyppisiä puskureita käytetään pitämään peräkkäisiä tietolohkoja, joita voidaan käyttää tai muuttaa monta kertaa sekunnissa. Lisäksi itse OpenGL® -puskurit voidaan usein välittää argumentteina toiminnoille, jotka voivat hyödyntää puskurin tilattua tilaa ja suorittaa laskelmat erittäin nopeasti.