Co to jest OpenGL® VBO?
Podczas korzystania z bibliotek grafiki komputerowej Open Graphics Library® (OpenGL®) do programowania komputerowego, obiekt bufora wierzchołków (VBO) jest strukturą danych, która umożliwia konstruowanie i przechowywanie obiektu trójwymiarowego (3D) w pamięci grafiki sprzęt kart lub grafiki. Pozwala to bardzo szybko renderować OpenGL® VBO i zużywać znacznie mniej zasobów systemowych niż inne techniki wykorzystujące rysowanie w trybie natychmiastowym. Oprócz zwiększenia prędkości i zmniejszenia narzutów graficznych, OpenGL® VBO jest także dynamiczną strukturą danych - w przeciwieństwie do listy wyświetlania OpenGL® - którą można zmienić, gdy znajdzie się w pamięci. Koncepcja OpenGL® VBO faktycznie zaczęła się od producentów sprzętu, którzy pierwotnie zawarli - pod różnymi nazwami - podobny typ funkcjonalności jak rozszerzenie bibliotek OpenGL®, które później zostało znormalizowane przez OpenGL® Architecture Review Board (ARB).
OpenGL® VBO w zasadzie jest kombinacją dwóch innych typów struktur danych OpenGL®. Obejmuje podstawową funkcjonalność tablicy wierzchołków, ponieważ informacje dla geometrii - w tym współrzędne wierzchołków, normalne i kolor - mogą być przechowywane w uporządkowanej tablicy, którą można przekazać do OpenGL® w celu przetworzenia. Jednak w przeciwieństwie do tablicy wierzchołków OpenGL® VBO jest przechowywany po stronie serwera mechanizmu renderującego i nie musi stale uzyskiwać dostępu do strony klienta w celu uzyskania informacji o wierzchołku.
Umożliwiając przechowywanie VBO w pamięci graficznej, przejmuje on także niektóre właściwości listy wyświetlania. Główną różnicą jest to, że OpenGL® VBO można modyfikować, a lista wyświetlania nie. Ponadto VBO niekoniecznie jest kopiowane do pamięci graficznej, jak w przypadku listy wyświetlania, więc w pamięci musi znajdować się tylko jedna struktura danych.
Kiedy ostatecznie renderowane jest OpenGL® VBO, odległość od pamięci graficznej, w której jest przechowywany, a procesor graficzny (GPU) jest bardzo mała, co pozwala na bardzo szybką rasteryzację bez konieczności przechodzenia najpierw przez wolniejszy sprzęt systemowy. Jednak w niektórych przypadkach użycie VBO nie jest obsługiwane przez sprzęt karty graficznej. Może to prowadzić do problemów programistycznych, które usuwają wszelkie dodatkowe korzyści wynikające z używania VBO lub programu, który będzie niekompatybilny z niektórymi kartami graficznymi.
Istnieje kilka metod, które mogą pomóc zoptymalizować sposób korzystania z OpenGL® VBO, gdy jest używany. Jednym z nich jest dostarczenie wskazówek do karty graficznej lub OpenGL®, aby pomóc ustalić, gdzie VBO powinno znajdować się w pamięci. W zależności od podanych wskazówek VBO może być przechowywany bezpośrednio w pamięci graficznej na karcie graficznej lub może być przechowywany w głównej pamięci RAM (RAM) systemu, jeśli zostanie to uznane za konieczne.