Mis on OpenGL® Vertexi puhver?

Open Graphics Library® (OpenGL®) tipupuhver on sageli otse graafikakaardil asuv arvutimälu ala, mis võimaldab väga kiiret juurdepääsu tippude massiivile ja nende omadustele. Kõige sagedamini kasutatakse tipupuhvri (VBO) loomiseks OpenGL® tipupuhvrit, mis võimaldab kolmemõõtmelise (3D) stseeni objektide renderdamist kuvaloendi osana, mitte vahetu režiimis. Mõnikord saab aga väljaspool VBO-d kasutada tipupuhvrit, et salvestada teavet objekti kohta või hõlbustada teisendusi keerukates mudelites. Tuleb märkida, et tipupuhver ei pea asuma graafikakaardi mälus, sest seda saab eraldada nagu iga andmestruktuuri. Kui OpenGL® tipupuhvrit kavatsetakse kasutada VBO osana, peab kasutatav graafikakaart toetama spetsiaalset OpenGL® VBO laiendust, et tagada puhvri paigutamine graafikamällu.

Kõige elementaarsemal tasemel on OpenGL® tipupuhver lihtsalt lihtne puhver, eraldatud mäluala, kuhu saab andmeid salvestada. Sellest saab tipupuhver, kui selle sees on salvestatud tipumassiivi. OpenGL® tipu massiiv on andmestruktuuride massiiv, mis määratleb üksikute tippude kõik omadused. See teave võib sisaldada tipu X, Y ja Z asukohti 3D-stseenis, tipu värvi, normaal- ja muid omadusi.

Vahetu režiimi renderdamisel täidetakse OpenGL®-i käsud otse nii, nagu neid programmi seest välja kutsutakse. Sellistel juhtudel pole tipumassiivi omamine vajalik, kuna tipu paigutamise ja joonistamise käsud saab anda otse riistvarale, kuigi see võib põhjustada tõsiseid jõudlusprobleeme. Mitte-vahetu režiimis renderdamiseks tuleb 3D-objekti või mudeli teave esmalt paigutada tipumassiivi, et sellel oleks struktuur, mida OpenGL® saaks hõlpsasti tõlgendada; see massiiv tuleb seejärel salvestada spetsiaalsesse mälupiirkonda, mida nimetatakse OpenGL® tipupuhvriks.

Iseenesest ei pruugi tipupuhveril olla muid eriatribuute peale selle, et see on täielik teabekogu, mida kasutatakse objekti joonistamiseks. Kui OpenGL®-i tipupuhver teisendatakse OpenGL-i laienduse kaudu OpenGL®-i tipupuhvri objektiks, siis toimub spetsiaalne sündmustejada, mis aitab optimeerida tipupuhvris määratletud objekti joonistamist. Nimelt eraldatakse ja salvestatakse puhver graafikakaardi mällu, OpenGL® kasutatava klient-server seadistuse serveri poolel. Mõningaid arvutusi saab teha ka VBO-s eelnevalt, et seda saaks võimalikult kiiresti renderdada. Väljaspool VBO-d tavaline tipupuhver tavaliselt seda töötlust ei saa ning seda saab eraldada ja kasutada nagu mis tahes muud andmetüüpi.