Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Biblioteki C++

Kurs OpenGL, C++

[kurs] Niskopoziomowa biblioteka graficzna 3D.

Opis szczegółowy

OpenGL jest podstawową niskopoziomową biblioteką graficzną 3D, obsługiwaną przez wszystkie liczące się systemy operacyjne oraz większość procesorów graficznych. Niezależność od platformy sprzętowej oraz ogólnie dostępna specyfikacja czyni z OpenGL standard powszechnie wykorzystywany przez producentów oprogramowania użytkowego i gier.

Wykaz elementów dowiązanych

1. Podstawy (lekcja)
Rozdział 1. Podstawowe informacje o bibliotece OpenGL, składnia funkcji, typy danych oraz teoria ogólna związana z niniejszą biblioteką.
Rozdział 2. Pierwszy program w OpenGL: rysowanie sceny 3D (kolor tła, czyszczenie bufora koloru, kolor obiektu, definiowanie obiektu, zamiana buforów koloru), tworzenie okna renederingu, obsługa menu podręcznego.
Rozdział 3. Modyfikacja obszaru renderingu, rzutowanie prostokątne, rzutowanie perspektywiczne, położenie obserwatora, 5 przykładowych programów.
Rozdział 4. Obrót, skalowanie, przesunięcie, mnożenie macierzy, ładowanie macierzy, składanie przekształceń, bryły w bibliotece GLUT (kula, sześcian, stożek, torus, dwunastościan, czajnik, ośmiościan, czworościan, dwudziestościan), operacje na stosie macierzy, stos macierzy modelowania; przeliczenia współrzędnych w przestrzeni widoku na współrzędne w przestrzeni okna i odwrotnie; obsługa myszki oraz dwa przykładowe programy.
Rozdział 5. Okrawanie obszaru renderingu, płaszczyzny obcinające i przykładowy program.
Rozdział 6. Prymitywy graficzne: punkty, linie, łamane, łamane zamknięte, trójkąty, wstęgi trójkątów, wachlarze trójkątów, czworokąty, wachlarze czworokątów, wielokąty, prostokąty; definiowane współrzędnych wierzchołków prymitywów; wielkość punktów; grubość i wzory linii, a ponadto trzy przykładowe programy.
7. Wielokąty (lekcja)
Rozdział 7. Wielokąty: trójkąty, wstęgi trójkątów, wachlarze trójkątów, czworokąty, wachlarze czworokątów, wielokąty, prostokąty; ukrywanie stron wielokąta; tryby rysowania wielokąta (wierzchołki, krawędzie, wypełnienie); wypełnianie wielokątów wzorem; ukrywanie krawędzi wielokąta; kafelkowanie (podział) wielokątów; dwa przykładowe programy.
Rozdział 8. Kolory i cieniowanie w OpenGL: bufor koloru; tryb bezpośredni RGB(A), tryb indeksowy; cieniowanie płaskie i gładkie (Gourauda); dithering; przykładowy program.
Rozdział 9. Informacja o implementacji biblioteki OpenGL; wprowadzenie do rozszerzeń OpenGL; budowa specyfikacji rozszerzenia; używanie rozszerzeń na przykładzie ARB_transpose_matrix; dwa przykładowe programy.
Rozdział 10. Mapy bitowe i fonty bitmapowe w OpenGL; dwa przykładowe programy; dwa polskie fonty.
Rozdział 11. Mapy pikselowe: rysowanie, odczyt, kopiowanie, skalowanie; transfer pikseli; przykładowy program odczytujący pliki TARGA.
Rozdział 12. Zasada działania i przeznaczenie bufora głębokości; testy bufora głębokości; czyszczenie bufora głębokości; zakres wartości bufora głębokości; przesunięcie wartości głębi; wycinanie fragmentów sceny przy pomocy bufora głębokości; trzy przykładowe programy.
Rozdział 13. Model oświetlenia w bibliotece OpenGL; parametry źródeł światła; parametry modelu oświetlenia; właściwości materiałów; śledzenie kolorów; wektory normalne; kwadryki; pięć przykładowych programów.
Rozdział 14. Zasada działania listy wyświetlania; tworzenie i usuwanie listy wyświetlania; wykaz funkcji nie umieszczanych na liście wyświetlania; generowanie identyfikatorów list wyświetlania; program przykładowy.
Rozdział 15. Równanie mieszania kolorów, współczynniki mieszania kolorów; dwa programy przykładowe, w tym efekt przezroczystości.
Rozdział 16. Opcjonalny podzbiór przetwarzania obrazów: tryby transferu pikseli, tablice kolorów, filtry splotowe, histogram, operacja minimum-maksimum, macierz koloru; program przykładowy.
Rozdział 17. Budowa i działanie bufora szablonowego; test bufora szablonowego; czyszczenie bufora szablonowego; rozłączny bufor szablonowy; cztery programy przykładowe, w tym odbicie i CSG (ang. Constructive Solid Geometry).
Rozdział 18. Budowa i działanie bufora akumulacyjnego; sterowanie buforem akumulacyjnym; czyszczenie bufora akumulacyjnego; dwa programy przykładowe z efektami: rozmycia w ruchu (ang. motion blur) oraz głębią ostrości (ang. depth of field) oraz program z cyfrową filtracją obrazów.
Rozdział 19. Zjawisko aliasingu i metody antyaliasingu; ustawianie jakości renderingu; antyaliasing punktów, linii i wielokątów; antyaliasing z wykorzystaniem bufora akumulacyjnego; wielopróbkowanie (ang. multisampling); cztery programy przykładowe.
20. Tekstury (lekcja)
Rozdział 20. Tekstury jednowymiarowe, dwuwymiarowe i trójwymiarowe; tekstury zastępcze (proxy); tekstury sześcienne (kubiczne); tekstury głębi; kompresja tekstur; współrzędne, parametry i filtracja tekstur; mipmapy; obiekty i priorytety tekstur; parametry środowiska tesktur; wieloteksturowanie; automatyczne generowanie współrzędnych tekstur; dziesięć programów przykładowych, w tym mapy świetlne, mapowanie kubiczne, tekstury alfa, tekstura 3D, kompresja tekstur, drugorzędny kolor odbicia oraz wczytywanie plików OBJ.
Rozdział 21. Zmiana trybu renderowania, stos nazw obiektów, przetwarzanie rekordu trafień; program przykładowy.
Rozdział 22. Zmiana trybu renderowania, bufor sprzężenia zwrotnego i jego przetwarzanie; program przykładowy.
Rozdział 23. Definiowanie i renderowanie danych, tablice przeplatane, tablice indeksowe, pobieranie adresów tablic, stos atrybutów klienta OpenGL; dwa programy przykładowe.
24. Mgła (lekcja)
Rozdział 24. Parametry, obliczanie i jakość mgły; dwa programy przykładowe (mgła odległościowa i mgła objętościowa).
Rozdział 25. Podstawy budowy systemów cząstek, rozszerzona geometria punktów (ARB_point_parameters), sprajty punktowe (ARB_point_sprite); program przykładowy animujący śnieg.
Rozdział 26. Ewaluacja krzywych i powierzchni Béziera, pobieranie danych map; dwa programy przykładowe.
27. NURBS (lekcja)
Rozdział 27. Obiekty (krzywe i powierzchnie) NURBS; wycinanie fragmentów powierzchni; dwa programy przykładowe.
Rozdział 28. Bryły ograniczające i obiekty analizy przesłonięć; program przykładowy.
Rozdział 29. Obiekty buforowe wierzchołków (VBO) i obiekty buforowe pikseli (PBO); dwa programy przykładowe.
30. GLSL (lekcja)
Rozdział 30. OpenGL Shading Language 1.20; procesor wierzchołków, procesor fragmentów, podstawy składni, preprocesor, podstawowe typy, operatory i wyrażenia, kwalifikatory typów, instrukcje i struktura programu, wbudowane zmienne, wbudowane funkcje.
Rozdział 31. Podstawowe zasady optymalizji programów w OpenGL; weryfikacja błędów, podstawowe zasady konstrukcji programów, diagnoza wąskiego gardła wydajności, metody redukcji obciążenia przetwarzania pikseli, metody redukcji obciążenia przetwarzania wierzchołków.
Rozdział 32. Kompletny wykaz zmiennych stanu OpenGL 2.1 zawarty w 54 tabelach; program przykładowy przedstawiający zmienne zależne od implementacji.