OpenGL. Księga eksperta. Wydanie III - Helion
Tytuł oryginału: OpenGL Superbible
Tłumaczenie: Wojciech Moch (wstęp, rozdz. 1 - 9), Rafał Jońca (rozdz. 10 -14), Marek Pętlicki (rozdz. 15 - 23, dod. A - C)
ISBN: 83-7361-703-5
stron: 1080, Format: B5, okładka: twarda
Data wydania: 2004-12-16
Księgarnia: Helion
Cena książki: 119,00 zł
Poznaj tajniki programowania realistycznej grafiki 3D
- Stwórz i animuj obiekty trójwymiarowe
- Wykorzystaj mechanizmy renderingu na platformach Windows, Mac OS i Linux
- Zastosuj w swoich projektach algorytmy sprzętowego wspomagania wyświetlania grafiki 3D
OpenGL to platforma programistyczna do tworzenia grafiki trójwymiarowej. Tworzące ją mechanizmy zostały opracowane ponad 20 lat temu w firmie Silicon Graphics i spowodowały prawdziwą rewolucję w świecie grafiki komputerowej. Dzięki bibliotece OpenGL możliwe stało się tworzenie realistycznej grafiki i animacji 3D oraz wykorzystywanie możliwości kart i systemów graficznych do wspomagania jej wyświetlania. To właśnie dzięki rozwojowi OpenGL możemy teraz podziwiać wspaniałe wizualizacje, kinowe efekty specjalne i oszałamiające gry komputerowe.
Książka "OpenGL. Księga eksperta. Wydanie III" to podręcznik dla programistów chcących wykorzystać możliwości biblioteki OpenGL w swoich projektach. Opisuje zarówno podstawy programowania grafiki z wykorzystaniem OpenGL, jak i możliwości zastosowania jej na różnych platformach systemowych i sprzętowych. Przedstawia również sposoby wykorzystania mechanizmów sprzętowego wspomagania wyświetlania grafiki i animacji 3D oraz efektów specjalnych.
- Typowe zastosowania grafiki komputerowej
- Przegląd możliwości bibliotek OpenGL
- Podstawy stosowania OpenGL
- Tworzenie brył trójwymiarowych i korzystanie z kształtów podstawowych
- Przekształcenia geometryczne i przetwarzanie potokowe
- Modele kolorów i oświetlenia
- Przetwarzanie grafiki i mapowanie tekstur
- Modelowanie krzywych i powierzchni
- Wykorzystanie bibliotek OpenGL w różnych systemach operacyjnych
- Buforowanie danych
- Cienie i głębia ostrości
- Operacje na wierzchołkach
Jeśli chcesz stworzyć grafikę 3D zapierającą dech w piersiach,
skorzystaj z wiedzy zawartej w tej książce.
Osoby które kupowały "OpenGL. Księga eksperta. Wydanie III", wybierały także:
- OpenGL. Kurs video. Wprowadzenie do programowania grafiki komputerowej 99,00 zł, (44,55 zł -55%)
- OpenGL. Podstawy programowania grafiki 3D 89,00 zł, (44,50 zł -50%)
- OpenGL. Receptury dla programisty 54,90 zł, (27,45 zł -50%)
- OpenGL. Księga eksperta. Wydanie VII 119,00 zł, (89,25 zł -25%)
- Wprowadzenie do potoku renderującego OpenGL 58,61 zł, (46,89 zł -20%)
Spis treści
OpenGL. Księga eksperta. Wydanie III -- spis treści
O Autorach (17)
Wprowadzenie (19)
Część I Klasyka OpenGL (27)
Rozdział 1. Wprowadzenie do grafiki trójwymiarowej i OpenGL (29)
- O co tu chodzi? (29)
- Krótka historia grafiki komputerowej (29)
- Pojawienie się monitorów CRT (30)
- Wejście w trzeci wymiar (31)
- Przegląd efektów trójwymiarowych (33)
- Perspektywa (34)
- Kolorowanie i cieniowanie (34)
- Światło i cienie (34)
- Odwzorowywanie tekstur (35)
- Mgła (36)
- Mieszanie i przezroczystość (36)
- Antyaliasing (37)
- Typowe zastosowania grafiki trójwymiarowej (38)
- Trzy wymiary w czasie rzeczywistym (38)
- Trzy wymiary bez czasu rzeczywistego (39)
- Podstawowe zasady programowania grafiki trójwymiarowej (42)
- Tryb natychmiastowy i tryb opóźniony (42)
- Układ współrzędnych (43)
- Rzutowanie. Z trzech w dwa wymiary (47)
- Podsumowanie (49)
Rozdział 2. Używanie OpenGL (51)
- Czym jest OpenGL? (51)
- Ewolucja standardu (52)
- Wojny interfejsów (API Wars) (54)
- Jak działa OpenGL? (60)
- Implementacja ogólna (60)
- Implementacje sprzętowe (61)
- Potok (62)
- OpenGL. To jest API, nie język (63)
- Biblioteki i pliki nagłówkowe (64)
- Szczegóły interfejsu (64)
- Typy danych (65)
- Konwencje nazewnictwa funkcji (66)
- Niezależność od platformy (67)
- Biblioteka GLUT (68)
- Konfigurowanie środowiska programistycznego (69)
- Nasz pierwszy program (69)
- Rysowanie kształtów w OpenGL (75)
- Animacja w OpenGL i GLUT (82)
- Podwójne buforowanie (85)
- Maszyna stanów OpenGL (86)
- Zapisywanie i odtwarzanie stanów (87)
- Błędy OpenGL (88)
- Gdy w dobrym kodzie dzieją się złe rzeczy (88)
- Identyfikowanie wersji (89)
- Pobieranie wskazówek z funkcji glHint (89)
- Korzystanie z rozszerzeń (90)
- Wyszukiwanie rozszerzeń (90)
- Czyje to rozszerzenie? (92)
- Stosowanie w systemie Windows biblioteki OpenGL w wersji wyższej niż 1.1 (92)
- Podsumowanie (93)
- Opisy funkcji (94)
Rozdział 3. Rysowanie w przestrzeni. Geometryczne obiekty podstawowe i bufory (107)
- Rysowanie punktów w trzech wymiarach (108)
- Konfigurowanie trójwymiarowego płótna (108)
- Punkt w trzech wymiarach. Wierzchołek (110)
- Narysujmy coś! (111)
- Rysowanie punktów (111)
- Ustalanie wielkości punktu (114)
- Rysowanie linii w trzech wymiarach (118)
- Linie łamane i zamknięte (118)
- Aproksymacja krzywych liniami prostymi (120)
- Ustalanie szerokości linii (121)
- Linie przerywane (123)
- Rysowanie trójkątów w trzech wymiarach (125)
- Trójkąt - mój pierwszy wielokąt (126)
- Nawinięcie (126)
- Trójkąty sklejane (128)
- Wachlarze trójkątów (128)
- Budowanie pełnych obiektów (129)
- Ustalanie koloru wielokąta (132)
- Usuwanie ukrytych powierzchni (132)
- Culling. Ukrywanie powierzchni poprawia wydajność (134)
- Tryby wielokątów (136)
- Inne obiekty podstawowe (137)
- Czworokąty (137)
- Dowolne wielokąty (138)
- Wypełnianie wielokątów lub powrót do tepowania (139)
- Reguły konstruowania wielokątów (142)
- Podziały i krawędzie (144)
- Inne ciekawe operacje na buforze (145)
- Wybranie bufora docelowego (145)
- Manipulowanie buforem głębi (147)
- Wycinanie nożycami (148)
- Używanie bufora szablonowego (149)
- Podsumowanie (155)
- Opisy funkcji (155)
Rozdział 4. Przekształcenia geometryczne. Potok (171)
- Czy to jest ten straszliwy rozdział z matematyką? (172)
- Przekształcenia (172)
- Współrzędne oka (173)
- Przekształcenia punktu widzenia (174)
- Przekształcenia modelowania (174)
- Dwoistość model-widok (175)
- Przekształcenia rzutowania (177)
- Przekształcenia widoku (178)
- Macierz - matematyczna podstawa grafiki trójwymiarowej (178)
- Czym jest macierz? (179)
- Potok przekształceń (180)
- Macierz model-widok (181)
- Macierz jednostkowa (184)
- Stos macierzy (186)
- Przykład atomowy (187)
- Rzutowania (189)
- Rzutowanie prostopadłe (190)
- Rzutowanie perspektywiczne (190)
- Przykład kosmiczny (193)
- Zaawansowane manipulacje macierzami (197)
- Ładowanie macierzy (199)
- Wykonywanie własnych przekształceń (199)
- Łączenie przekształceń (202)
- Przesuwanie kamer i aktorów w OpenGL (203)
- Układ odniesienia aktora (204)
- Kąty Eulera. "Użyj układu odniesienia, Luke!" (205)
- Obsługa kamery (205)
- A teraz wszystko razem (206)
- Podsumowanie (212)
- Opisy funkcji (212)
Rozdział 5. Kolor, materiały i oświetlenie. Podstawy (221)
- Czym jest kolor? (222)
- Światło jest falą (222)
- Światło jako cząsteczka (222)
- Nasz osobisty wykrywacz fotonów (224)
- Komputer generatorem fotonów (224)
- Sprzęt komputerów PC (225)
- Tryby graficzne komputerów PC (227)
- Rozdzielczość ekranu (227)
- Głębia kolorów (227)
- Używanie kolorów w OpenGL (229)
- Sześcian kolorów (229)
- Ustalanie koloru rysowania (230)
- Cieniowanie (231)
- Ustalanie modelu cieniowania (233)
- Kolory w świecie rzeczywistym (234)
- Światło otaczające (235)
- Światło rozproszone (235)
- Światło odbite (235)
- A teraz wszystko razem (236)
- Materiały w świecie rzeczywistym (237)
- Właściwości materiałów (237)
- Dodawanie światła do materiałów (237)
- Wyliczanie efektów oświetlenia otoczenia (238)
- Efekty światła rozproszenia i odbitego (238)
- Dodawanie świateł do sceny (239)
- Włączenie oświetlenia (239)
- Konfigurowanie modelu oświetlenia (239)
- Ustalanie właściwości materiałów (240)
- Używanie źródeł światła (243)
- Gdzie jest góra? (244)
- Normalne powierzchni (244)
- Definiowanie normalnej (245)
- Normalne jednostkowe (247)
- Znajdowanie normalnej (248)
- Konfigurowanie źródła (249)
- Ustalanie właściwości materiałów (250)
- Definiowanie wielokątów (251)
- Efekty świetlne (252)
- Odbłyski (253)
- Światło odbite (253)
- Współczynnik odbicia (254)
- Wykładnik odbłysku (255)
- Uśrednianie normalnych (256)
- A teraz wszystko razem (258)
- Tworzenie reflektora (259)
- Rysowanie reflektorów (261)
- Cienie (265)
- Czym jest cień? (266)
- Kod prasujący (267)
- Przykład z cieniem (268)
- Ponowna wizyta w świecie kul (271)
- Podsumowanie (271)
- Opisy funkcji (272)
Rozdział 6. Więcej o kolorach i materiałach (281)
- Mieszanie kolorów (281)
- Łączenie kolorów (282)
- Zmiana równania mieszania (285)
- Antyaliasing (286)
- Mgła (291)
- Bufor akumulacji (294)
- Inne operacje na kolorach (297)
- Maskowanie kolorów (297)
- Operacje logiczne na kolorach (298)
- Testowanie kanału alfa (298)
- Rozsiewanie (299)
- Podsumowanie (300)
- Opisy funkcji (300)
Rozdział 7. Przetwarzanie grafiki w OpenGL (307)
- Bitmapy (308)
- Przykład bitmapowy (309)
- Pakowanie pikseli (313)
- Piksmapy (315)
- Upakowane formaty pikseli (316)
- Przykład kolorowy (317)
- Przesuwanie pikseli (320)
- Zapisywanie pikseli (322)
- Więcej zabaw z pikselami (323)
- Powiększanie pikseli (329)
- Transfer pikseli (331)
- Odwzorowanie pikseli (335)
- "Podzbiór" funkcji obrazowania (337)
- Potok obrazowania (340)
- Podsumowanie (352)
- Opisy funkcji (353)
Rozdział 8. Odwzorowywanie tekstur. Podstawy (373)
- Ładowanie tekstur (374)
- Wykorzystywanie bufora kolorów (377)
- Aktualizowanie tekstur (377)
- Odwzorowywanie tekstur na obiekty geometryczne (378)
- Macierze tekstur (379)
- Prosty przykład dwuwymiarowy (381)
- Środowisko tekstur (386)
- Parametry tekstur (387)
- Podstawowe filtrowanie (388)
- Zawijanie tekstury (390)
- Tekstury kreskówkowe (391)
- Mipmapy (395)
- Obiekty tekstur (399)
- Obsługa wielu tekstur (400)
- Podsumowanie (408)
- Opisy funkcji (409)
Rozdział 9. Odwzorowywanie tekstur. Ciąg dalszy (425)
- Drugi kolor (425)
- Filtrowanie anizotropowe (428)
- Kompresja tekstur (431)
- Kompresowanie tekstur (431)
- Ładowanie tekstur skompresowanych (433)
- Generowanie współrzędnych tekstury (433)
- Odwzorowanie liniowe względem obiektu (439)
- Odwzorowanie linowe względem oka (440)
- Odwzorowywanie kuliste (441)
- Odwzorowywanie kubiczne (443)
- Multitekstury (445)
- Wielokrotne współrzędne tekstur (447)
- Przykład multiteksturowania (448)
- Łączniki tekstur (452)
- Podsumowanie (454)
- Opisy funkcji (454)
Rozdział 10. Krzywe i powierzchnie (463)
- Powierzchnie wbudowane (464)
- Ustawienie stanów powierzchni stopnia drugiego (464)
- Rysowanie powierzchni stopnia drugiego (466)
- Modelowanie za pomocą powierzchni stopnia drugiego (470)
- Krzywe i powierzchnie Béziera (472)
- Reprezentacja parametryczna (473)
- Ewaluatory (475)
- Powierzchnie NURBS (484)
- Od krzywych Béziera do krzywych NURBS (485)
- Punkty węzłowe (485)
- Tworzenie powierzchni NURBS (486)
- Właściwości NURBS (486)
- Definiowanie powierzchni (487)
- Wycinanie (488)
- Krzywe NURBS (490)
- Podziały powierzchni (491)
- Obiekt podziałów (492)
- Wywołanie zwrotne programu dzielącego (493)
- Określanie danych wierzchołków (494)
- Łączymy wszystko razem (495)
- Podsumowanie (499)
- Opisy funkcji (500)
Rozdział 11. Wszystko o potokach - szybkie przekazywanie geometrii (527)
- Składanie modeli (528)
- Kawałki i części (528)
- Listy wyświetlania (540)
- Przetwarzanie wsadowe (540)
- Wcześniejsze przetwarzanie wsadowe (541)
- Zalety i wady list wyświetlania (543)
- Konwersja na listy wyświetlania (543)
- Mierzenie wydajności (544)
- Lepszy przykład (545)
- Tablice wierzchołków (548)
- Wczytanie geometrii (553)
- Włączenie tablic (554)
- Gdzie są dane? (554)
- Rysujemy! (555)
- Indeksowane tablice wierzchołków (556)
- Podsumowanie (568)
- Opisy funkcji (568)
Rozdział 12. Grafika interaktywna (583)
- Selekcja (584)
- Nazywanie obiektów (584)
- Praca w trybie zaznaczania (586)
- Bufor zaznaczenia (587)
- Wybieranie (589)
- Wybieranie hierarchiczne (591)
- Informacje zwrotne (595)
- Bufor informacji zwrotnych (595)
- Dane informacji zwrotnej (596)
- Przekazywane znaczniki (596)
- Przykład wykorzystania danych z bufora (597)
- Nazywanie obiektów w informacjach zwrotnych (597)
- Krok 1. Zaznaczenie obiektu (599)
- Krok 2. Pobranie informacji zwrotnych dla obiektu (601)
- Podsumowanie (603)
- Opisy funkcji (603)
Część II OpenGL w różnych systemach operacyjnych (609)
Rozdział 13. Wiggle. OpenGL w systemie Windows (611)
- Implementacje OpenGL w systemie Windows (612)
- Ogólna implementacja OpenGL (612)
- Instalowalny sterownik klienta (ICD) (613)
- Sterownik miniklienta (MCD) (613)
- Ministerownik (614)
- Rozszerzony OpenGL (614)
- Podstawowy rendering w systemie Windows (616)
- Kontekst urządzenia GDI (616)
- Formaty pikseli (618)
- Kontekst renderingu OpenGL (625)
- Łączymy wszystko razem (626)
- Tworzenie okna (626)
- Korzystanie z kontekstu renderingu OpenGL (630)
- Pozostałe komunikaty okna (633)
- Palety systemu Windows (635)
- Dopasowanie kolorów (635)
- Arbitraż palety (636)
- Tworzenie palety dla OpenGL (638)
- Tworzenie i zwalnianie palety (642)
- OpenGL i czcionki systemowe (643)
- Trójwymiarowe czcionki i tekst (644)
- Dwuwymiarowe czcionki i tekst (646)
- Tryb pełnoekranowy (648)
- Tworzenie okna bez paska tytułowego i krawędzi (649)
- Utworzenie okna pełnoekranowego (649)
- Rendering wielowątkowy (652)
- OpenGL i rozszerzenia WGL (653)
- Proste rozszerzenia (654)
- Korzystanie ze wskaźników na funkcje (655)
- Rozszerzenia WGL (656)
- Podsumowanie (679)
- Opisy funkcji (680)
Rozdział 14. OpenGL w systemie MacOS X (695)
- Podstawy (695)
- Szkielety aplikacji (696)
- Korzystanie z interfejsu GLUT (696)
- Wykorzystanie interfejsów AGL i Carbon (696)
- Formaty pikseli (697)
- Zarządzanie kontekstem (697)
- Podwójne buforowanie (699)
- Pierwszy program AGL (699)
- Korzystanie z czcionek bitmapowych (709)
- Interfejs programistyczny Cocoa (720)
- Klasa NSOpenGL (720)
- Pierwszy program korzystający z Cocoa (723)
- Podsumowanie (730)
- Opisy funkcji (731)
Rozdział 15. GLX - OpenGL w Linuksie (735)
- Podstawy (735)
- Korzystanie z bibliotek OpenGL oraz X11 (735)
- Użycie biblioteki GLUT (738)
- OpenGL w systemie Linux (738)
- Emulacja OpenGL - Mesa (739)
- Rozszerzenia OpenGL dla X Window System (739)
- Podstawy X Window System (740)
- Wybór typu obiektu wyświetlania (740)
- Zarządzanie kontekstem OpenGL (742)
- Tworzenie okna OpenGL (742)
- Okna podwójnie buforowane (743)
- Wykorzystanie zdobytej wiedzy (743)
- Tworzenie czcionek bitmapowych na potrzeby OpenGL (751)
- Renderowanie poza ekranem (761)
- Mapy pikselowe GLX (761)
- Użycie obiektów Pbuffer (766)
- Zastosowanie biblioteki Motif (772)
- GLwDrawingArea oraz GLwMDrawingArea - kontrolki OpenGL (772)
- Funkcje zwrotne (773)
- Funkcje (775)
- Wykorzystanie zdobytej wiedzy (775)
- Podsumowanie (784)
- Opisy funkcji (785)
Część III OpenGL. Następna generacja (793)
Rozdział 16. Obiekty buforów. Zarządzanie pamięcią graficzną (795)
- Przechowywanie tablic wierzchołków (797)
- Generowanie sferycznych chmur cząsteczek (797)
- Aktywacja tablic wierzchołków (798)
- Generujemy większą ilość sfer (799)
- Zastosowanie obiektów buforowych (800)
- Zarządzanie obiektem buforowym (802)
- Renderowanie z użyciem obiektów buforowych (802)
- Ładowanie danych do obiektów buforowych (803)
- Kopiowanie danych do obiektu buforowego (803)
- Bezpośrednie odwzorowanie obiektu buforowego (804)
- Kilka brakujących elementów (809)
- Podsumowanie (810)
- Opisy funkcji (810)
Rozdział 17. Analiza przesłonięć - unikanie zbędnych obliczeń (819)
- Świat bez analizy przesłonięć (820)
- Bryły ograniczające (823)
- Analiza przesłonięć i obiekt analizy (827)
- Podsumowanie (829)
- Opisy funkcji (830)
Rozdział 18. Tekstury głębi oraz cienie (835)
- Punkt widzenia światła (836)
- Dopasowanie sceny do okna (836)
- Unikamy efektów specjalnych (837)
- Nowy rodzaj tekstury (839)
- Dlaczego cienie rysujemy na początku? (840)
- I stała się światłość (841)
- Rzutowanie mapy cieni. Etap pierwszy - przyczyna (842)
- Rzutowanie mapy cieni. Etap drugi - sposób (843)
- Porównanie cieni (845)
- Dwa przebiegi z trzech - nie najgorszy wynik (851)
- Kilka słów o offsecie wielokątów (851)
- Podsumowanie (852)
- Opisy funkcji (853)
Rozdział 19. Potok programowany (857)
- Zacznijmy od klasyki (858)
- Statyczna obróbka wierzchołków (859)
- Statyczna obróbka fragmentów (861)
- Dochodzimy do nowości (862)
- Programowane shadery wierzchołków (863)
- Łączenie z klasycznym potokiem (865)
- Programowane shadery fragmentów (866)
- Wprowadzenie do shaderów (867)
- Rozszerzenia niskopoziomowe (867)
- Rozszerzenia wysokopoziomowe (869)
- Podsumowanie (870)
Rozdział 20. Niskopoziomowe przetwarzanie wierzchołków i fragmentów (873)
- Zastosowanie shaderów niskopoziomowych (874)
- Tworzenie i wiązanie obiektów shaderów (874)
- Ładowanie shaderów (874)
- Usuwanie shaderów (876)
- Konfiguracja rozszerzeń (876)
- Zestawy instrukcji (877)
- Wspólne instrukcje (878)
- Instrukcje specyficzne dla shaderów wierzchołków (878)
- Instrukcje specyficzne dla shaderów fragmentów (878)
- Typy zmiennych (881)
- Wartości tymczasowe (881)
- Parametry (882)
- Atrybuty (884)
- Wyjście (886)
- Aliasy (888)
- Adresowanie (888)
- Modyfikatory wejścia i wyjścia (888)
- Zanegowanie (889)
- Zmiana kolejności składowych (889)
- Maska zapisu (889)
- Przycinanie wyniku (889)
- Kontrola zużycia zasobów (890)
- Ograniczenia składniowe (890)
- Ograniczenia wbudowane (892)
- Inne zapytania (893)
- Opcje shaderów (894)
- Opcja niezmienności pozycji w shaderach wierzchołków (894)
- Opcje mgły w shaderach fragmentów (894)
- Opcja sugerowanego poziomu precyzji (894)
- Podsumowanie (895)
- Opisy funkcji (895)
Rozdział 21. Wysokopoziomowe przetwarzanie wierzchołków i fragmentów (909)
- Zarządzanie shaderami wysokopoziomowymi (910)
- Obiekty shaderów (910)
- Obiekty programów (912)
- Konfiguracja rozszerzeń (914)
- Zmienne (916)
- Typy podstawowe (916)
- Struktury (916)
- Tablice (918)
- Kwalifikatory (918)
- Zmienne wbudowane (919)
- Wyrażenia (919)
- Operatory (919)
- Dostęp do tablic (921)
- Konstruktory (921)
- Selektory składowych (922)
- Kontrola przepływu (923)
- Pętle (923)
- if...else (923)
- discard (924)
- Funkcje (924)
- Podsumowanie (927)
- Opisy funkcji (927)
Rozdział 22. Przetwarzanie wierzchołków - transformacja, oświetlenie i generowanie tekstur (941)
- Pierwsze koty za płoty (941)
- Światło rozproszone (944)
- Refleksy świetlne (947)
- Ulepszone refleksy świetlne (950)
- Mgła obliczana na poziomie wierzchołków (956)
- Rozmiar punktu obliczany na poziomie wierzchołka (960)
- Niestandardowe przetwarzanie wierzchołków (963)
- Zlewanie wierzchołków (965)
- Podsumowanie (970)
Rozdział 23. Przetwarzanie fragmentów. Nowa jakość w przetwarzaniu pikseli (971)
- Przekształcanie kolorów (972)
- Skala szarości (972)
- Sepia (974)
- Negatyw (975)
- Pośrednie odczyty z tekstur (978)
- Mgła tworzona w oparciu o fragmenty (978)
- Przetwarzanie obrazu (980)
- Rozmywanie (981)
- Wyostrzanie (984)
- Rozszerzanie i erozja (985)
- Wykrywanie krawędzi (988)
- Oświetlenie (990)
- Oświetlenie światłem rozproszonym (991)
- Refleksy świetlne wielokrotnych źródeł światła (994)
- Proceduralne nakładanie tekstur (999)
- Tekstura szachownicy (1000)
- Piłka plażowa (1005)
- Inna piłka (1010)
- Podsumowanie (1015)
Dodatki (1017)
Dodatek A Dalsza lektura (1019)
- Inne dobre książki o OpenGL (1019)
- Książki dotyczące grafiki 3D (1019)
- Strony WWW (1020)
Dodatek B Słowniczek (1021)
Dodatek C OpenGL ES (1027)
- Redukcja typów danych (1027)
- Co zostało usunięte? (1028)
- Ograniczenie funkcjonalności (1029)
- Odwzorowanie tekstur (1029)
- Operacje rastrowe (1029)
- Oświetlenie (1030)
- Wnioski (1030)
Skorowidz (1031)