Što je OpenGL® Vertex Buffer?

Međuspremnik vrhova Open Graphics Library® (OpenGL®) je područje računalne memorije često smješteno izravno na grafičkoj kartici koja omogućuje vrlo brz pristup nizu vrhova i njihovim svojstvima. Najčešće se međuspremnik vrhova OpenGL® koristi za stvaranje objekta međuspremnika vršaka (VBO), dopuštajući da se objekti unutar trodimenzionalne (3D) scene prikazuju kao dio popisa prikaza, a ne u neposrednom načinu rada. Međutim, povremeno se međuspremnik vrhova može koristiti izvan VBO-a za pohranu informacija o objektu ili za olakšavanje transformacija na složenim modelima. Treba napomenuti da međuspremnik vršaka ne mora biti smješten u memoriji grafičke kartice, jer se može dodijeliti kao i svaka struktura podataka. Ako će se međuspremnik vrhova OpenGL® koristiti kao dio VBO-a, tada grafička kartica koja se koristi mora podržavati posebno proširenje OpenGL® VBO kako bi se osiguralo da je međuspremnik smješten u grafičku memoriju.

Na najosnovnijoj razini, međuspremnik vrhova OpenGL® samo je jednostavan međuspremnik, dodijeljeno područje memorije u koje se mogu pohraniti podaci. Postaje međuspremnik vrhova kada se u njega pohrani niz vrhova. OpenGL® niz vrhova je niz struktura podataka koji definira sva svojstva pojedinačnih vrhova. Ove informacije mogu uključivati ​​mjesta X, Y i Z vrha u 3D sceni, boju vrha, normalu i druga svojstva.

U trenutnom načinu prikazivanja, OpenGL® naredbe se izvršavaju izravno dok se pozivaju iz programa. U ovim slučajevima je nepotrebno imati niz vrhova, jer se naredbe za postavljanje i crtanje vrha mogu dati izravno hardveru, iako to može uzrokovati ozbiljne probleme u izvedbi. Za renderiranje u ne-neposrednom načinu, informacije o 3D objektu ili modelu najprije se moraju smjestiti u niz vrhova tako da ima strukturu koju OpenGL® može lako interpretirati; taj se niz tada mora pohraniti u posebno područje memorije poznato kao međuspremnik vrhova OpenGL®.

Sam po sebi, međuspremnik vrhova nema nužno nikakve posebne atribute osim što je potpuna zbirka informacija koja se koristi za crtanje objekta. Međutim, kada se međuspremnik za vršak OpenGL® pretvori u objekt međuspremnika vrhova OpenGL® kroz proširenje OpenGL, događa se poseban slijed događaja koji pomaže optimizirati crtanje objekta definiranog u međuspremniku vrhova. Naime, međuspremnik se dodjeljuje i pohranjuje u memoriju grafičke kartice, na strani poslužitelja klijent-poslužitelj postavke koju koristi OpenGL®. Neki se izračuni također mogu izvesti unaprijed na VBO-u kako bi se mogli prikazati što je brže moguće. Izvan VBO-a, obični međuspremnik vrhova obično ne prima ovaj tretman i može se dodijeliti i koristiti kao bilo koji drugi tip podataka.