Co to jest przyspieszony tryb OpenGL®?

Tryb Accelerated Open Graphics Library® (OpenGL®) w grafice komputerowej to stan, który można aktywować na karcie graficznej komputera w celu wykorzystania możliwości sprzętowych karty graficznej do wykonania niektórych lub wszystkich poleceń i renderowania OpenGL® zamiast domyślnego czysto programowa funkcjonalność. Nie wszystkie karty graficzne obsługują akcelerowany sprzętowo tryb OpenGL®, a niektóre obsługujące ten tryb nie przyspieszają w pełni wszystkich poleceń dostępnych w bibliotece OpenGL®. W zależności od sprzętu i sterowników używanych w konkretnym komputerze lub urządzeniu, akcelerowany tryb OpenGL® czasami może być w rzeczywistości wolniejszy niż tryb renderowania programowego, czy to z powodu konfliktów, czy tylko dlatego, że procesor komputera jest szybszy niż procesor graficzny. Podczas pisania aplikacji korzystających z przyspieszonego trybu OpenGL® dokładne wykrycie i używanie wyłącznie tego trybu może być trudne, ponieważ implementacja obsługi trybów przyspieszonych nie jest ustandaryzowana i może się znacznie różnić w zależności od sterownika.

Biblioteka graficzna OpenGL® to abstrakcyjny interfejs programowania (API), który zapewnia bufor między sprzętem graficznym a oprogramowaniem napisanym w celu uzyskania do niego dostępu. Ogólnie rzecz biorąc, OpenGL® działa w modelu klient-serwer, co oznacza, że ​​oprogramowanie staje się klientem, który następnie wysyła żądania rysowania i informacje do serwera, którym zwykle jest sterownik i sprzęt OpenGL®. Sterownik dostarczany przez system operacyjny lub producenta karty graficznej może się znacznie różnić pod względem wewnętrznej implementacji, więc niektóre bardziej zaawansowane funkcje sprzętowe nie zawsze są ustandaryzowane. Tryb OpenGL® z akceleracją sprzętową to jedna z funkcji pozostawionych do wdrożenia producentom kart graficznych.

Kiedy program korzysta z trybu OpenGL® z akceleracją sprzętową, w rzeczywistości następuje wywołanie funkcji OpenGL® i przekazanie jej do sterownika. Jeśli sterownik wykryje, że przyspieszenie jest aktywne lub że określona operacja ma bezpośrednie wsparcie sprzętowe, funkcja jest przekazywana bezpośrednio do procesora graficznego (GPU) znajdującego się na karcie graficznej. Jeśli nie ma aktywnego lub obecnego przyspieszenia, polecenie zostanie przetworzone i wykonane za pomocą standardowych wywołań oprogramowania i algorytmów. W większości przypadków akceleracja sprzętowa zapewnia znacznie szybsze czasy renderowania niż czyste oprogramowanie.

Niektóre karty graficzne obsługują przyspieszony tryb OpenGL®, ale tylko w określonej rozdzielczości i głębi kolorów. Oznacza to, że karta graficzna może automatycznie używać trybu przyspieszonego, jeśli podczas inicjowania OpenGL® program żąda określonej rozdzielczości i głębi kolorów. Sprzęt graficzny może być bardzo różny, więc ten tryb nie zawsze jest widoczny i czasami może być trudny do automatycznego wykrycia w programie bez udziału użytkownika. Oprócz tego, że sterownik i sprzęt muszą obsługiwać przyspieszony tryb OpenGL®, monitor lub urządzenie wyświetlające musi również natywnie obsługiwać żądaną rozdzielczość i głębię kolorów, w przeciwnym razie przełączenie w tryb przyspieszony nie powiedzie się i może uniemożliwić wykonanie programu.