Mis on OpenGL® VBO?

Open Graphics Library® (OpenGL®) arvutigraafikateekide kasutamisel arvutiprogrammeerimiseks on tipupuhverobjekt (VBO) andmestruktuur, mis võimaldab kolmemõõtmelise (3D) objekti konstrueerimist ja graafika mällu salvestamist. kaardi või graafika riistvara. See võimaldab OpenGL® VBO-d väga kiiresti renderdada ja kasutada palju vähem süsteemiressursse kui muud tehnikad, mis kasutavad vahetu režiimi joonistamist. Lisaks kiiruse suurenemisele ja graafika üldkulude vähenemisele on OpenGL® VBO erinevalt OpenGL® kuvaloendist ka dünaamiline andmestruktuur, mida saab muuta, kui see on mälus. OpenGL® VBO kontseptsioon sai tegelikult alguse riistvaratootjatest, kes sisaldasid algselt – erinevate nimede all – sarnast tüüpi funktsioone OpenGL® teekide laiendusena, mille hiljem standardiseeris OpenGL® Architecture Review Board (ARB).

OpenGL® VBO on põhimõtteliselt kombinatsioon kahest teist tüüpi OpenGL® andmestruktuurist. See hõlmab tipumassiivi põhifunktsioone, kuna geomeetria teavet, sealhulgas tipu koordinaate, normaalväärtusi ja värvi, saab salvestada struktureeritud massiivi, mille saab töötlemiseks OpenGL®-ile edasi anda. Erinevalt tipumassiivist on OpenGL® VBO aga salvestatud renderdaja serveri poolele ja ei pea tiputeabe saamiseks pidevalt kliendi poolele juurde pääsema.

Lubades VBO-d graafikamällu salvestada, omandab see ka mõned kuvaloendi omadused. Peamine erinevus seisneb selles, et OpenGL® VBO-d saab muuta ja kuvaloendit mitte. Lisaks ei kopeerita VBO-d tingimata graafikamällu nagu kuvaloend oleks, seega peab mälus olema ainult üks andmestruktuur.

Kui OpenGL® VBO lõpuks renderdatakse, on kaugus graafikamälust, milles see on salvestatud, ja graafikatöötlusüksusest (GPU) väga väike, võimaldades väga kiiret rasterdamist, ilma et oleks vaja kõigepealt läbi liikuda aeglasemas süsteemi riistvaras. Mõnel juhul ei toeta graafikakaardi riistvara VBOde kasutamist. See võib põhjustada programmeerimisprobleeme, mis eemaldavad VBO või mõne graafikakaardiga ühildumatu programmi kasutamisest saadavad eelised.

On mõned meetodid, mis aitavad optimeerida OpenGL® VBO kasutamist. Üks neist on vihjete andmine graafikakaardile või OpenGL®-ile, et aidata kindlaks teha, kus VBO mälus peaks asuma. Sõltuvalt pakutavatest näpunäidetest saab VBO salvestada otse graafikakaardi graafikamällu või süsteemi põhimällu (RAM), kui seda vajalikuks peetakse.