Kas yra OpenGL® buferiai?

„OpenGL®“ buferiai yra kompiuterio atminties sritys, kuriose saugomos informacijos sekos, todėl jas galima pasiekti labai greitai ir lengvai, nereikia kiekvieną kartą iš naujo skaičiuoti duomenų. Nors, kaip ir įprastame kompiuterių programavime, OpenGL® buferiai iš esmės yra tik nuoseklūs paskirstytos kompiuterio atminties blokai, pati OpenGL® iš tikrųjų struktūrizuoja buferius programoje, nustatydama, kokio tipo informacija bus laikoma buferyje, kad būtų galima naudoti tam tikrus optimizavimus. Yra keletas OpenGL® buferių tipų, įskaitant kadrų buferius, pikselių buferius ir viršūnių buferius, kad būtų galima paminėti tik keletą. Viena iš svarbių „OpenGL®“ buferių savybių yra ta, kad juos galima saugoti atminties srityse, kur prieiga prie buferio informacijos gali būti greitesnė nei įprastai. Numatytas OpenGL® buferio naudojimo kiekis gali padėti nustatyti, kur buferis iš tikrųjų saugomas, o naudojimas apibrėžiamas deklaruojant buferį kaip statinį, dinaminį arba srautinį.

Vienas iš OpenGL® buferių naudojimo pranašumų yra tas, kad juos galima rasti atmintyje, kuri pasiekiama labai greitai. Svarbūs buferių tipai, tokie kaip kadrų buferiai, iš tikrųjų gali būti dedami tiesiai į naudojamos vaizdo plokštės atmintį. Tai reiškia, kad informacija gali būti perduodama tiesiai iš buferio į grafikos apdorojimo bloką (GPU), nekeliant iš vienos fizinės aparatinės įrangos plokštės į kitą. Neapdorotos informacijos, pvz., iš anksto pateikto ekrano, esančio kadrų buferio viduje, perkėlimas į kitą atminties vietą be jokio apdorojimo yra metodas, žinomas kaip blitavimas, ir tai yra vienas greičiausių būdų perkelti informaciją atmintyje.

Yra keletas OpenGL® buferių tipų, nors kiekvienas iš tikrųjų yra tik atminties blokas. Vienas iš dažniausiai naudojamų yra kadrų buferis. Kadrų buferyje saugoma informacija, reikalinga dabartiniam kadrui rodyti rodymo įrenginyje. Informacija kadrų buferyje yra tvarkoma taip pat, kaip ir atmintis, naudojama valdyti, ką monitorius rodo. Tai reiškia, kad jei vaizdo plokštėje yra kadrų buferis, vaizdas ekrane gali būti perkeltas beveik akimirksniu, nors užtrunka šiek tiek laiko, kol scena iš tikrųjų bus perkelta į buferį.

Kitų tipų OpenGL® buferiai, tokie kaip viršūnių buferis, gali talpinti ištisas informacijos sekas. Šio tipo buferiai naudojami nuosekliems informacijos blokams, kuriuos gali tekti pasiekti arba keisti daug kartų kas sekundę, laikyti. Be to, patys OpenGL® buferiai dažnai gali būti perduodami kaip argumentai funkcijoms, kurios gali pasinaudoti tvarkinga buferio būsena ir labai greitai atlikti skaičiavimus.