Kaj je OpenGL® VBO?

Pri uporabi knjižnic računalniške grafike Open Graphics Library® (OpenGL®) za računalniško programiranje je objekt medpomnilnika vrhov (VBO) podatkovna struktura, ki omogoča konstruiranje in shranjevanje tridimenzionalnega (3D) predmeta v pomnilnik grafike. kartico ali grafično strojno opremo. To omogoča, da se OpenGL® VBO zelo hitro upodablja in uporablja veliko manj sistemskih virov kot druge tehnike, ki uporabljajo takojšnje risanje. Poleg povečanja hitrosti in zmanjšanja grafičnih stroškov je OpenGL® VBO tudi dinamična podatkovna struktura – za razliko od prikaznega seznama OpenGL® –, ki jo je mogoče spremeniti, ko je v pomnilniku. Koncept OpenGL® VBO se je dejansko začel pri proizvajalcih strojne opreme, ki so prvotno vključevali – pod različnimi imeni – podobno vrsto funkcionalnosti kot razširitev knjižnic OpenGL®, ki jo je pozneje standardiziral odbor za pregled arhitekture OpenGL® (ARB).

OpenGL® VBO je v bistvu kombinacija dveh drugih vrst podatkovnih struktur OpenGL®. Obsega osnovno funkcionalnost matrike oglišč, saj je informacije za geometrijo – vključno s koordinatami oglišč, normalami in barvo – vse mogoče shraniti v strukturirano matriko, ki jo je mogoče posredovati OpenGL® za obdelavo. Za razliko od matrike oglišč pa je OpenGL® VBO shranjen na strani strežnika upodabljalnika in mu ni treba nenehno dostopati do odjemalske strani za informacije o ogliščih.

Če omogočite, da se VBO shrani v grafični pomnilnik, prevzame tudi nekatere lastnosti prikaznega seznama. Glavna razlika je v tem, da je OpenGL® VBO mogoče spreminjati, prikaznega seznama pa ne. Poleg tega VBO ni nujno kopiran v grafični pomnilnik, kot bi bil prikazni seznam, zato mora biti v pomnilniku prisotna samo ena podatkovna struktura.

Ko je OpenGL® VBO končno upodobljen, je razdalja od grafičnega pomnilnika, v katerem je shranjena, in grafične procesne enote (GPU) zelo majhna, kar omogoča zelo hitro rasterizacijo, ne da bi se bilo treba najprej premikati po počasnejši sistemski strojni opremi. V nekaterih primerih pa strojna oprema grafične kartice ne podpira uporabe VBO. To lahko povzroči težave s programiranjem, ki odstranijo vse dodatne prednosti uporabe VBO, ali program, ki bo nezdružljiv z nekaterimi grafičnimi karticami.

Obstaja nekaj metod, ki lahko pomagajo optimizirati, kako se OpenGL® VBO obravnava, ko se uporablja. Eden od teh je zagotavljanje namigov za grafično kartico ali OpenGL®, ki pomagajo določiti, kje naj se VBO nahaja v pomnilniku. Glede na podane namige lahko VBO shranite neposredno v grafični pomnilnik na grafični kartici ali pa ga shranite v glavni pomnilnik z naključnim dostopom (RAM) sistema, če se zdi potrebno.