| Termin | Definicja |
|---|---|
| OpenGL 3.0 | OpenGL 3.0 to kolejna wersja standardu, rozpoczynająca stopniowe wycofywanie starszych, przestarzałych funkcji. OpenGL 3.0 jako etap przebudowy standardu grafikiOpenGL 3.0 jest wersją specyfikacji interfejsu programistycznego OpenGL opublikowaną w 2008 roku. Standard opisuje sposób, w jaki aplikacja przekazuje polecenia do procesora graficznego, tworzy bufory, tekstury i programy cieniujące oraz steruje procesem renderowania. Nie jest biblioteką przeznaczoną wyłącznie dla jednego producenta karty graficznej. Konkretne możliwości zależą od sterownika oraz od tego, które funkcje sprzęt rzeczywiście obsługuje. Najważniejszą cechą OpenGL 3.0 było wprowadzenie mechanizmu oznaczania starszych elementów API jako przestarzałych, czyli deprecated. Dotyczyło to między innymi części wcześniejszego modelu stałego potoku graficznego, w którym aplikacja korzystała z gotowych operacji transformacji, oświetlenia i definiowania geometrii. OpenGL 3.0 nie usunął tych funkcji natychmiast, lecz sygnalizował kierunek dalszego rozwoju standardu. Formalne profile rdzeniowe bez wielu funkcji starszego modelu pojawiły się później. Nowe mechanizmy renderowania i przechowywania danychOpenGL 3.0 rozszerzył możliwości pracy z teksturami. Wprowadzono między innymi tekstury tablicowe, w których wiele obrazów o tych samych wymiarach i formacie jest przechowywanych jako jeden obiekt teksturowy. Shader może wybierać warstwę tablicy za pomocą dodatkowej współrzędnej. Takie rozwiązanie może upraszczać renderowanie zestawów podobnych materiałów, map terenu albo kolejnych warstw danych, ponieważ nie wymaga zmiany obiektu tekstury przy każdym odwołaniu do innego obrazu. Ważnym elementem wersji 3.0 były także usprawnienia buforów ramek, tekstur całkowitoliczbowych i formatów o większej precyzji. Bufor ramki, określany jako framebuffer object, pozwala renderować do tekstury lub bufora głębi zamiast bezpośrednio do okna aplikacji. Dzięki temu możliwe jest wykonywanie etapów pośrednich, takich jak renderowanie cieni, przygotowanie obrazu do dalszego przetwarzania albo budowanie efektu postprocessingu. OpenGL 3.0 ujednolicił część mechanizmów, które wcześniej były dostarczane przez rozszerzenia producentów. Shadery GLSL 1.30 i przepływ danych przez GPUOpenGL 3.0 jest powiązany z językiem GLSL w wersji 1.30. Programy napisane w GLSL są kompilowane i łączone przez sterownik, a następnie wykonywane w kolejnych etapach potoku graficznego. Shader wierzchołków może przetwarzać dane geometrii, natomiast shader fragmentów oblicza wartości końcowych fragmentów obrazu, w tym ich kolor. W praktyce aplikacja musi poprawnie utworzyć obiekty shaderów, sprawdzić komunikaty kompilatora i połączyć je w program przed rozpoczęciem renderowania. W tej generacji standardu pojawiły się również mechanizmy pozwalające lepiej kontrolować przepływ danych pomiędzy etapami renderowania. Transform feedback umożliwia zapisanie wyników generowanych przez etap wierzchołkowy do bufora, aby można było wykorzystać je w kolejnym przebiegu bez ponownego wykonywania części obliczeń po stronie procesora. OpenGL 3.0 wprowadził także warunkowe renderowanie, dzięki któremu wykonanie wybranych poleceń może zależeć od wyniku wcześniejszego zapytania, na przykład informacji o tym, czy określony obiekt był widoczny. Rozpoznawanie problemów z obsługą OpenGL 3.0Problemy przypisywane OpenGL 3.0 nie zawsze oznaczają błąd samego standardu. Aplikacja może zażądać konkretnej wersji kontekstu, a sterownik może utworzyć kontekst o niższej wersji albo odmówić jego utworzenia. Znaczenie ma również system profili kontekstu, lista rozszerzeń oraz sposób, w jaki program został napisany. Błąd może wystąpić przed wyświetleniem pierwszej klatki, podczas kompilacji GLSL, przy tworzeniu tekstury tablicowej albo dopiero przy użyciu konkretnego formatu bufora. Diagnostyka powinna obejmować odczyt wersji OpenGL zwróconej przez sterownik, identyfikację producenta i modelu układu graficznego oraz sprawdzenie komunikatów kompilacji shaderów. Należy także rozdzielić problem sterownika od problemu aplikacji: nieprawidłowy program GLSL, niezgodny typ danych w atrybucie wierzchołka lub błędna konfiguracja bufora ramki mogą powodować pusty obraz mimo poprawnie utworzonego kontekstu. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów i komputerów PC, w których problemy z obsługą OpenGL wynikają z konfiguracji sprzętu, sterowników albo działania podzespołów. |