Co to jest bufor wierzchołków OpenGL®?
Bufor wierzchołków Open Graphics Library® (OpenGL®) to obszar pamięci komputera często znajdujący się bezpośrednio na karcie graficznej, który umożliwia bardzo szybki dostęp do szeregu wierzchołków i ich właściwości. Najczęściej bufor wierzchołków OpenGL® służy do tworzenia obiektu bufora wierzchołków (VBO), umożliwiając renderowanie obiektów w trójwymiarowej scenie (3D) jako część listy wyświetlania, a nie w trybie natychmiastowym. Czasami jednak bufor wierzchołków może być używany poza VBO do przechowywania informacji o obiekcie lub w celu ułatwienia transformacji w złożonych modelach. Należy zauważyć, że bufor wierzchołków nie musi znajdować się w pamięci karty graficznej, ponieważ można go alokować jak każdą strukturę danych. Jeśli bufor wierzchołków OpenGL® ma być używany jako część VBO, wówczas używana karta graficzna musi obsługiwać specjalne rozszerzenie OpenGL® VBO, aby zapewnić, że bufor zostanie umieszczony w pamięci grafiki.
Na najbardziej podstawowym poziomie bufor wierzchołków OpenGL® to po prostu bufor, przydzielony obszar pamięci, w którym można przechowywać dane. Staje się buforem wierzchołków, gdy tablica wierzchołków jest w nim przechowywana. Tablica wierzchołków OpenGL® to tablica struktur danych, która definiuje wszystkie właściwości poszczególnych wierzchołków. Informacje te mogą obejmować położenia X, Y i Z wierzchołka w scenie 3D, kolor wierzchołka, normalne i inne właściwości.
W trybie natychmiastowego renderowania polecenia OpenGL® są wykonywane bezpośrednio, gdy są wywoływane z poziomu programu. W takich przypadkach nie ma potrzeby posiadania tablicy wierzchołków, ponieważ polecenia do umieszczania i rysowania wierzchołka można wydawać bezpośrednio sprzętowi, chociaż może to powodować poważne problemy z wydajnością. W przypadku renderowania w trybie bez natychmiastowym informacje o obiekcie 3D lub modelu muszą najpierw zostać umieszczone w tablicy wierzchołków, aby miały strukturę, którą OpenGL® może łatwo interpretować; tablica ta musi być następnie zapisana w specjalnym obszarze pamięci znanym jako bufor wierzchołków OpenGL®.
Sam bufor bufora wierzchołków niekoniecznie ma jakieś specjalne atrybuty, poza tym, że jest kompletnym zbiorem informacji używanych do rysowania obiektu. Jednak po przekształceniu bufora wierzchołków OpenGL w obiekt OpenGL® w buforze wierzchołków za pomocą rozszerzenia OpenGL zachodzi specjalna sekwencja zdarzeń, która pomaga zoptymalizować rysunek obiektu zdefiniowanego w buforze wierzchołków. Mianowicie bufor jest przydzielany i zapisywany w pamięci karty graficznej po stronie serwera w konfiguracji klient-serwer, której używa OpenGL®. Niektóre obliczenia można również wykonać z wyprzedzeniem na VBO, aby można je było wykonać tak szybko, jak to możliwe. Poza VBO zwykły bufor wierzchołków zwykle nie jest traktowany i może być przydzielany i używany jak każdy inny typ danych.