OpenGL w praktyce

informatyka
89
PLN
OpenGL w praktyce
in_stock
Dostępność:
jest
Wysyłka w:
24 godziny
Cena: 89,00 zł
Cena netto: 84,76 zł
egz

Książka jest praktycznym podręcznikiem programowania grafiki 3D przy użyciu biblioteki OpenGL w wersji 2.1. Do sprawnego posługiwania się biblioteką graficzną niezbędna jest odpowiednia wiedza matematyczna. Dlatego matematyka jest obecna w książce, ale w stopniu ograniczonym do niezbędnych wzorów i równań. Opisywane zagadnienia są ilustrowane przykładowymi programami w języku C++ – z tego powodu do pełnego wykorzystania zawartych w książce informacji niezbędna jest umiejętność programowania w tym języku. Książka jest adresowana do studentów kierunków informatycznych wyższych uczelni oraz do wszystkich programistów zajmujących się grafiką komputerową. Ze względu na kompletny opis biblioteki oraz zawarte programy przykładowe, książka może być przydatna programistom stawiającym pierwsze kroki w dziedzinie grafiki komputerowej, jak i zaawansowanym programistom wykorzystującym bibliotekę OpenGL w pracy zawodowej.

Spis treści

Wstęp .................................................................................................................................................................. 19 1.

Podstawy .................................................................................................................................................. 23 1.1.

Składnia .......................................................................................................................................... 24 1.2.

Typy danych .................................................................................................................................. 25 1.3.

Układ współrzędnych ................................................................................................................ 25 1.4.

Barwy .............................................................................................................................................. 26 1.5.

Bufor ramki ................................................................................................................................... 26 1.6.

Okno renderingu .......................................................................................................................... 26 1.7.

Maszyna stanów .......................................................................................................................... 27 1.8.

Obsługa błędów ........................................................................................................................... 27 2.

Pierwszy program .............................................................................................................................. 29 2.1.

Rysowanie sceny 3D .................................................................................................................. 30 2.1.1.

Kolor tła ................................................................................................................................... 30 2.1.2.

Czyszczenie bufora koloru ................................................................................................... 30 2.1.3.

Kolor obiektu .......................................................................................................................... 31 2.1.4.

Definiowanie obiektu ............................................................................................................ 31 2.1.5.

Wykonanie poleceń OpenGL i zamiana buforów koloru................................................ 31 2.2.

Tworzenie okna renderingu ..................................................................................................... 31 2.3.

Obsługa menu podręcznego .................................................................................................... 32 3.

Definiowanie sceny 3D .................................................................................................................... 35 3.1.

Obszar renderingu ....................................................................................................................... 36 3.2.

Macierze przekształceń ............................................................................................................. 36 3.3.

Rzutowanie prostokątne ........................................................................................................... 36 3.4.

Rzutowanie perspektywiczne ................................................................................................. 38 3.5.

Położenie obserwatora .............................................................................................................. 39 3.6.

Ograniczanie bryły obcinania ................................................................................................. 40 3.7.

Przeliczanie współrzędnych w przestrzeni oknai współrzędnych w przestrzeni widoku ................ 40 3.8.

Programy przykładowe ............................................................................................................. 41 4.

Przekształcenia geometryczne................................................................................................... 47 4.1.

Obrót ................................................................................................................................................ 48 4.2.

Skalowanie .................................................................................................................................... 48 4.3. Przesunięcie................................................................................................................................... 48 4.4.

Mnożenie macierzy .................................................................................................................... 49 4.5.

Ładowanie macierzy .................................................................................................................. 49 4

Spis treści 4.6.

Składanie przekształceń............................................................................................................ 49 4.7.

Stos macierzy................................................................................................................................ 50 4.8.

Programy przykładowe ............................................................................................................. 50 5.

Okrawanie i obcinanie .................................................................................................................... 57 5.1.

Okrawanie obrazu ....................................................................................................................... 58 5.2.

Płaszczyzny obcinające ............................................................................................................ 58 5.3.

Program przykładowy ............................................................................................................... 59 6.

Elementarne obiekty geometryczne ...................................................................................... 61 6.1.

Wybór rodzaju prymitywu ....................................................................................................... 62 6.2.

Definiowanie współrzędnych wierzchołków figur......................................................... 63 6.2.1.

Funkcje z grupy glVertex2 .................................................................................................... 64 6.2.2.

Funkcje z grupy glVertex3 .................................................................................................... 64 6.2.3.

Funkcje z grupy glVertex4 .................................................................................................... 64 6.3.

Prostokąty ...................................................................................................................................... 64 6.4. Punkty.............................................................................................................................................. 64 6.5.

Linie ................................................................................................................................................. 65 6.6.

Programy przykładowe ............................................................................................................. 66 7.

Wielokąty ................................................................................................................................................. 69 7.1.

Strony wielokąta .......................................................................................................................... 70 7.2.

Tryby rysowania .......................................................................................................................... 70 7.3.

Wypełnianie wielokątów wzorem......................................................................................... 71 7.4.

Ukrywanie krawędzi wielokąta ............................................................................................. 71 7.5.

Podział wielokątów .................................................................................................................... 71 7.5.1.

Definicja wielokąta ................................................................................................................ 72 7.5.2.

Funkcje zwrotne ..................................................................................................................... 72 7.5.3.

Właściwości kafelkowania ................................................................................................... 74 7.5.4.

Wektory normalne .................................................................................................................. 75 7.6.

Programy przykładowe ............................................................................................................. 75 8.

Kolory i cieniowanie ......................................................................................................................... 83 8.1.

Bufor koloru .................................................................................................................................. 84 8.2.

Kolor – tryb bezpośredni.......................................................................................................... 84 8.2.1.

Funkcje z grupy glColor3 ..................................................................................................... 84 8.2.2.

Funkcje z grupy glColor4 ..................................................................................................... 85 8.3.

Kolor – tryb indeksowy ............................................................................................................ 85 8.4.

Cieniowanie .................................................................................................................................. 86 5

Spis treści 8.5.

Rozsiewanie kolorów ................................................................................................................ 86 8.6.

Maskowanie składowych kolorów ....................................................................................... 86 8.7.

Program przykładowy ............................................................................................................... 86 9.

Rozszerzenia .......................................................................................................................................... 89 9.1.

Implementacja biblioteki OpenGL ....................................................................................... 90 9.2.

Specyfikacje rozszerzeń ........................................................................................................... 90 9.2.1.

Nazwa ....................................................................................................................................... 91 9.2.2.

Identyfikatory .......................................................................................................................... 91 9.2.3.

Kontakt ..................................................................................................................................... 91 9.2.4. Status......................................................................................................................................... 91 9.2.5.

Wersja ....................................................................................................................................... 91 9.2.6.

Numer ....................................................................................................................................... 91 9.2.7.

Zależności ................................................................................................................................ 91 9.2.8. Omówienie............................................................................................................................... 92 9.2.9.

Własności intelektualne ........................................................................................................ 92 9.2.10.

Zagadnienia ............................................................................................................................. 92 9.2.11.

Nowe procedury i funkcje .................................................................................................... 92 9.2.12.

Nowe typy................................................................................................................................ 92 9.2.13.

Nowe stałe ............................................................................................................................... 92 9.2.14.

Uzupełnienia do specyfikacji OpenGL i innych bibliotek.............................................. 92 9.2.15.

Błędy ......................................................................................................................................... 92 9.2.16.

Nowe zmienne maszyny stanu ............................................................................................. 92 9.2.17.

Nowe zmienne maszyny stanu zależne od implementacji .............................................. 92 9.2.18.

Przykładowy kod .................................................................................................................... 93 9.2.19.

Testy zgodności ...................................................................................................................... 93 9.2.20.

Historia korekt ........................................................................................................................ 93 9.3.

Używanie rozszerzeń ................................................................................................................. 93 9.3.1.

Standardowe pliki nagłówkowe........................................................................................... 93 9.3.2.

Pliki nagłówkowe rozszerzeń............................................................................................... 93 9.3.3.

OpenGL w systemach Microsoft Windows ....................................................................... 94 9.3.4.

OpenGL w systemach Linux (UNIX) ................................................................................ 95 9.4.

Dodatkowe biblioteki ................................................................................................................ 96 9.5.

Programy przykładowe ............................................................................................................. 96 10.

Mapy bitowe ........................................................................................................................................103 10.1.

Pozycja rastra............................................................................................................................. 104 10.1.1.

Funkcje z grupy glRasterPos2 ........................................................................................... 105 10.1.2.

Funkcje z grupy glRasterPos3 ........................................................................................... 105 10.1.3.

Funkcje z grupy glRasterPos4 ........................................................................................... 105 6

Spis treści 10.1.4. Funkcje z grupy glWindowPos2........................................................................................ 105 10.1.5.

Funkcje z grupy glWindowPos3 .......................................................................................... 105 10.2.

Rysowanie mapy bitowej ...................................................................................................... 105 10.3.

Dane mapy bitowej.................................................................................................................. 106 10.4.

Programy przykładowe .......................................................................................................... 108 11.

Mapy pikselowe ................................................................................................................................. 113 11.1.

Rysowanie mapy pikselowej ................................................................................................114 11.1.1.

Format danych mapy pikselowej ....................................................................................... 114 11.1.2.

Format pikseli mapy pikselowej ........................................................................................ 115 11.1.3.

Upakowane formaty pikseli................................................................................................ 115 11.2.

Wybór docelowego bufora kolorów...................................................................................118 11.3.

Odczyt mapy pikselowej ........................................................................................................119 11.4.

Kopiowanie mapy pikselowej ............................................................................................. 120 11.5.

Skalowanie mapy pikselowej .............................................................................................. 120 11.6.

Transfer pikseli ......................................................................................................................... 120 11.7.

Program przykładowy ............................................................................................................ 122 12.

Bufor głębokości ...............................................................................................................................131 12.1.

Działanie bufora głębokości ................................................................................................ 132 12.2.

Włączenie bufora głębokości .............................................................................................. 132 12.3.

Test bufora głębokości ........................................................................................................... 132 12.4.

Czyszczenie bufora głębokości........................................................................................... 133 12.5.

Zakres wartości bufora głębokości .................................................................................... 133 12.6.

Przesunięcie wartości głębi .................................................................................................. 133 12.7.

Programy przykładowe .......................................................................................................... 134 13.

Światła i materiały...........................................................................................................................139 13.1.

Włączenie oświetlenia ............................................................................................................ 140 13.2.

Włączanie źródła światła....................................................................................................... 140 13.3.

Rodzaje świateł ......................................................................................................................... 140 13.4.

Właściwości źródeł światła .................................................................................................. 141 13.5.

Właściwości modelu oświetlenia ....................................................................................... 142 13.6.

Materiały ..................................................................................................................................... 143 13.7.

Śledzenie kolorów ................................................................................................................... 144 13.8.

Wektory normalne.................................................................................................................... 145 13.9.

Odczyt właściwości źródła światła i materiałów ......................................................... 146 7

Spis treści 13.10.

Stos zmiennych stanu ............................................................................................................. 146 13.11.

Programy przykładowe .......................................................................................................... 147 14.

Listy wyświetlania ...........................................................................................................................159 14.1.

Tworzenie listy wyświetlania .............................................................................................. 160 14.2.

Funkcje nieumieszczane na liście wyświetlania .......................................................... 160 14.3.

Usuwanie list wyświetlania .................................................................................................. 161 14.4.

Generowanie identyfikatorów list wyświetlania .......................................................... 161 14.5.

Wykonywanie list wyświetlania ......................................................................................... 161 14.6.

Program przykładowy ............................................................................................................ 162 15.

Mieszanie kolorów ...........................................................................................................................167 15.1.

Włączanie i wyłączanie mieszania kolorów .................................................................. 168 15.2.

Równanie mieszania kolorów ............................................................................................. 168 15.3.

Współczynniki mieszania kolorów ................................................................................... 170 15.4.

Rozłączne współczynniki mieszania kolorów .............................................................. 171 15.5.

Testowanie składowej alfa .................................................................................................... 171 15.6.

Programy przykładowe .......................................................................................................... 172 16.

Bufor szablonowy .............................................................................................................................177 16.1.

Włączenie i wyłączenie bufora szablonowego ............................................................. 178 16.2.

Czyszczenie bufora szablonowego .................................................................................... 178 16.3.

Sterowanie buforem szablonowym ................................................................................... 178 16.4.

Rozłączny bufor szablonowy .............................................................................................. 179 16.5.

Programy przykładowe .......................................................................................................... 180 17.

Bufor akumulacyjny ......................................................................................................................191 17.1.

Sterowanie buforem akumulacyjnym ............................................................................... 192 17.2.

Czyszczenie bufora akumulacyjnego ............................................................................... 193 17.3.

Programy przykładowe .......................................................................................................... 193 18.

Antyaliasing .........................................................................................................................................199 18.1.

Ustawienie jakości renderingu ............................................................................................ 200 18.2.

Antyaliasing punktów ............................................................................................................ 201 18.3.

Antyaliasing linii ...................................................................................................................... 201 18.4.

Antyaliasing wielokątów....................................................................................................... 202 18.5.

Antyaliasing z użyciem bufora akumulacyjnego ......................................................... 202 18.6. Wielopróbkowanie................................................................................................................... 202 18.7.

Programy przykładowe .......................................................................................................... 204 8

Spis treści 19.

Tekstury ..................................................................................................................................................213 19.1.

Włączenie teksturowania ...................................................................................................... 214 19.2.

Definiowanie tekstury ............................................................................................................ 214 19.2.1.

Parametr target ...................................................................................................................... 214 19.2.2.

Parametr level ....................................................................................................................... 215 19.2.3.

Parametr internalformat ...................................................................................................... 215 19.2.4.

Parametry width, height i depth ......................................................................................... 216 19.2.5.

Parametr border .................................................................................................................... 216 19.2.6.

Parametr format .................................................................................................................... 216 19.2.7.

Parametr type ........................................................................................................................ 216 19.2.8.

Parametr pixels ..................................................................................................................... 218 19.3.

Kopiowanie tekstury z bufora kolorów ........................................................................... 218 19.4.

Zmiana części danych tekstury ........................................................................................... 218 19.5.

Pobieranie danych tekstury .................................................................................................. 219 19.6.

Współrzędne tekstur................................................................................................................ 220 19.6.1.

Definiowanie współrzędnych s .......................................................................................... 221 19.6.2.

Definiowanie współrzędnych s i t ..................................................................................... 221 19.6.3.

Definiowanie współrzędnych s, t i r ................................................................................. 221 19.6.4.

Definiowanie współrzędnych s, t, r i q............................................................................. 222 19.7.

Właściwości tekstur ................................................................................................................ 222 19.8.

Filtrowanie tekstur ................................................................................................................... 223 19.9.

Zawijanie tekstur ...................................................................................................................... 223 19.10.

Kolor obramowania................................................................................................................. 224 19.11.

Mipmapy ..................................................................................................................................... 224 19.11.1.

Zakres poziomów mipmap ................................................................................................. 225 19.11.2.

Poziom szczegółowości mipmap (LOD) ......................................................................... 225 19.11.3.

Generowanie mipmap .......................................................................................................... 225 19.11.4.

Automatyczne generowanie mipmap ............................................................................... 226 19.12.

Obiekty tekstur .......................................................................................................................... 226 19.13.

Priorytety tekstur ...................................................................................................................... 227 19.14.

Właściwości środowiska tekstur ........................................................................................ 228 19.15.

Środowisko tekstur GL_TEXTURE_ENV .................................................................... 229 19.15.1.

Tryby mieszania.................................................................................................................... 229 19.15.2.

Tryby mieszania w wieloteksturowaniu........................................................................... 231 19.15.3.

Argumenty funkcji mieszania w wieloteksturowaniu ................................................... 231 19.15.4.

Skalowanie wyników mieszania w wieloteksturowaniu............................................... 233 19.15.5.

Wartości domyślne parametrów ........................................................................................ 233 9

Spis treści 19.16.

Środowisko tekstur GL_TEXTURE_FILTER_CONTROL .................................... 234 19.17.

Środowisko tekstur GL_POINT_SPRITE ...................................................................... 234 19.18.

Tekstury zastępcze (proxy) ................................................................................................... 234 19.19.

Kompresja tekstur .................................................................................................................... 235 19.19.1.

Skompresowane formaty tekstur ....................................................................................... 235 19.19.2.

Utworzenie skompresowanej tekstury.............................................................................. 236 19.19.3.

Aktualizacja skompresowanej tekstury ............................................................................ 236 19.19.4.

Pobranie skompresowanej tekstury................................................................................... 236 19.20.

Wieloteksturowanie ................................................................................................................. 236 19.20.1.

Aktywna jednostka teksturująca ........................................................................................ 237 19.20.2.

Współrzędne tekstur ............................................................................................................ 237 19.21.

Automatyczne generowanie współrzędnych tekstur .................................................. 238 19.21.1.

Odwzorowanie liniowe względem obiektu ..................................................................... 238 19.21.2.

Odwzorowanie liniowe względem kamery ..................................................................... 239 19.21.3.

Odwzorowanie kuliste ......................................................................................................... 239 19.21.4.

Odwzorowanie sześcienne .................................................................................................. 239 19.21.5.

Pobieranie właściwości automatycznego generowania współrzędnych tekstur ....... 239 19.22.

Tekstury kubiczne .................................................................................................................... 240 19.23.

Drugorzędny kolor................................................................................................................... 240 19.24.

Tekstury głębi ............................................................................................................................ 241 19.25.

Tekstury sRGB .......................................................................................................................... 242 19.26.

Programy przykładowe .......................................................................................................... 242 20.

Przetwarzanie obrazów................................................................................................................275 20.1.

Transfer pikseli ......................................................................................................................... 276 20.2.

Tablice kolorów ........................................................................................................................ 277 20.2.1.

Tworzenie tablicy kolorów ................................................................................................. 277 20.2.2.

Skalowanie i przesunięcie składowych kolorów ............................................................ 278 20.2.3.

Zmiana danych tablicy kolorów ........................................................................................ 278 20.2.4.

Pobieranie tablicy kolorów ................................................................................................. 279 20.2.5.

Pobieranie właściwości tablic kolorów ............................................................................ 279 20.3.

Filtry splotowe .......................................................................................................................... 280 20.3.1.

Włączenie filtracji ................................................................................................................ 280 20.3.2.

Definiowanie filtrów ............................................................................................................ 280 20.3.3.

Pobierania maski filtra z bufora kolorów ........................................................................ 281 20.3.4.

Właściwości filtrów ............................................................................................................. 282 20.3.5.

Pobieranie maski filtra......................................................................................................... 282 20.3.6.

Pobieranie właściwości filtrów .......................................................................................... 282 10

Spis treści 20.4.

Histogram.................................................................................................................................... 283 20.4.1.

Obliczanie histogramu ......................................................................................................... 283 20.4.2.

Pobieranie danych histogramu ........................................................................................... 283 20.4.3.

Pobieranie właściwości histogramu .................................................................................. 283 20.4.4.

Zerowanie histogramu ......................................................................................................... 284 20.5.

Operacja minimum-maksimum .......................................................................................... 284 20.5.1.

Pobranie danych tablicy minimum-maksimum .............................................................. 284 20.5.2.

Właściwości tablicy minimum-maksimum ..................................................................... 284 20.5.3.

Zerowanie tablicy minimum-maksimum ......................................................................... 285 20.6.

Macierz koloru .......................................................................................................................... 285 20.7.

Programy przykładowe .......................................................................................................... 285 21.

Selekcja obiektów.............................................................................................................................297 21.1.

Zmiana trybu renderowania ................................................................................................. 298 21.2.

Stos nazw obiektów ................................................................................................................ 298 21.3.

Przetwarzanie rekordu trafień ............................................................................................. 299 21.4.

Program przykładowy ............................................................................................................ 299 22.

Sprzężenie zwrotne .........................................................................................................................305 22.1.

Zmiana trybu renderowania ................................................................................................. 306 22.2.

Bufor sprzężenia zwrotnego ................................................................................................ 306 22.3.

Przetwarzanie bufora sprzężenia zwrotnego.................................................................. 306 22.4.

Program przykładowy ............................................................................................................ 307 23.

Tablice wierzchołków .................................................................................................................... 311 23.1.

Włączenie tablic wierzchołków .......................................................................................... 312 23.2.

Definiowanie danych .............................................................................................................. 312 23.3.

Tablice przeplatane .................................................................................................................. 314 23.4.

Renderowanie danych ............................................................................................................ 314 23.5.

Indeksowe tablice wierzchołków ....................................................................................... 315 23.6.

Pobieranie adresów tablic ..................................................................................................... 316 23.7.

Stos atrybutów klienta OpenGL ......................................................................................... 316 23.8.

Programy przykładowe .......................................................................................................... 317 24.

Mgła ...........................................................................................................................................................321 24.1.

Właściwości mgły .................................................................................................................... 322 24.2.

Obliczanie mgły........................................................................................................................ 322 24.3.

Jakość mgły ................................................................................................................................ 323 24.4.

Programy przykładowe .......................................................................................................... 323 11

Spis treści 25.

Systemy cząstek .................................................................................................................................331 25.1.

Rozszerzona geometria punktów ....................................................................................... 332 25.2.

Sprajty punktowe ..................................................................................................................... 333 25.3.

Program przykładowy ............................................................................................................ 333 26.

Krzywe i powierzchnie Béziera ..............................................................................................339 26.1.

Krzywe Béziera ........................................................................................................................ 340 26.1.1.

Tworzenie ewaluatorów ...................................................................................................... 340 26.1.2.

Renderowanie krzywej ........................................................................................................ 341 26.2.

Powierzchnie Béziera ............................................................................................................. 341 26.2.1.

Ewaluatory dwuwymiarowe ............................................................................................... 342 26.2.2.

Rendering powierzchni ....................................................................................................... 342 26.3.

Pobieranie danych map .......................................................................................................... 343 26.4.

Programy przykładowe .......................................................................................................... 344 27.

NURBS ....................................................................................................................................................349 27.1.

Obiekt NURBS ......................................................................................................................... 350 27.2.

Krzywe NURBS ....................................................................................................................... 350 27.3.

Powierzchnie NURBS............................................................................................................ 350 27.4.

Funkcje zwrotne ....................................................................................................................... 351 27.5.

Właściwości NURBS ............................................................................................................. 353 27.5.1.

Właściwość GLU_NURBS_MODE...............................................................

Szczegóły

ISBN 9788360233306
Autor Ganczarski Janusz
Oprawa twarda
Rok wydania 2008
Format B-5
Stron 582

Opinie o produkcie (0)

Koszyk

produktów: 0

wartość: 0,00 zł

przejdź do koszyka »

Zaloguj się

123

W Y D A W C Y

Sklep jest w trybie podglądu
Sklep internetowy Shoper.pl