okladka
Książka ta odsłania wszystkie tajemnice OpenGL - biblioteki graficznej stosowanej do tworzenia profesjonalnej grafiki 3D, za pomocą której zostały stworzone między innymi takie efekty specjalne, jak dinozaury w filmie "Park Jurajski" czy efekt płynnego metalu w filmie "Terminator 2". "OpenGL" to obszerny i spójny podręcznik programowania z użyciem OpenGL w systemach Windows 95 i Windows NT. Dzięki tej książce można przejść od tworzonej dotąd prostej grafiki do zaawansowanych efektów, których nie powstydziliby się nawet prawdziwi eksperci w dziedzinie trójwymiarowej grafiki. Co więcej, do opanowania zagadnień omawianych w książce nie jest potrzebna żadna wcześniejsza znajomość tematyki związanej z grafiką 3D.

Dołączona do książki płytka CD-ROM zawiera przeglądarkę VRML stworzoną z użyciem OpenGL, pliki biblioteki OpenGL 1.1 dla Windows 95, kontrolki OpenGL OCX dla Visual Basica oraz cały kod źródłowy, pliki wykonywalne i pliki binarne związane z przykładami w książce.
O autorach (21)
Przedmowa (23)
Wprowadzenie (25)

  • Dla kogo jest ta książka? (26)
  • System wymagany dla OpenGL (26)
  • Język (26)
  • Kompilatory (27)
  • Co znajdziesz w tej książce (27)
    • Część I: Wprowadzenie do OpenGL (28)
    • Część II: Używanie OpenGL (28)
    • Część III: Tematy zaawansowane i efekty specjalne (29)
    • Część IV: OpenGL i... (30)
    • Dodatki (31)
  • Płytka CD-ROM dołączona do książki (31)
  • Do dzieła! (32)
Część I. Wprowadzenie do OpenGL (33)
Rozdział 1. Co to jest OpenGL? (35)
  • O OpenGL (36)
    • Historia OpenGL (36)
    • Dalszy rozwój OpenGL (37)
  • Jak działa OpenGL (37)
  • OpenGL w Windows (38)
    • Architektura graficzna: oprogramowanie kontra sprzęt (38)
    • Ograniczenia ogólnej implementacji (40)
  • Dalsze perspektywy OpenGL w Windows (40)
Rozdział 2. Podstawy grafiki 3D (41)
  • Postrzeganie w trzech wymiarach (41)
    • 2D + Perspektywa = 3D (42)
    • Usuwanie niewidocznych linii (43)
    • Kolory i cieniowanie (43)
    • Światła i cienie (44)
  • Układy współrzędnych (44)
    • Dwuwymiarowe współrzędne kartezjańskie (45)
    • Obcinanie współrzędnych (46)
    • Widoki, twoje okna na trójwymiarowy świat (46)
    • Rysowanie prymitywów (47)
    • Trójwymiarowe współrzędne kartezjańskie (48)
  • Rzuty, podstawa grafiki 3D (48)
    • Rzuty równoległe (49)
    • Rzuty perspektywiczne (50)
  • Podsumowanie (50)
Rozdział 3. Nauka OpenGL z użyciem biblioteki AUX (51)
  • OpenGL: API, nie język (51)
    • Podział pracy w OpenGL (52)
    • Typy danych OpenGL (53)
    • Konwencje nazw funkcji (55)
  • Biblioteka AUX (56)
    • Niezależność od platformy (57)
    • AUX = wejście/wyjście w prosty sposób (57)
  • Analiza krótkiego programu OpenGL (58)
    • Część nagłówkowa (59)
    • Ciało programu (60)
    • Tryb wyświetlania: pojedynczy bufor (60)
    • Pozycjonowanie okna (60)
    • Tworzenie okna OpenGL (62)
    • Czyszczenie okna (wypełnianie kolorem) (62)
    • Samoczyszczenie okna (64)
    • Opróżnienie zawartości kolejki (64)
  • Rysowanie kształtów za pomocą OpenGL (65)
    • Funkcja renderująca (66)
    • Rysowanie prostokąta (66)
    • Inicjowanie (67)
  • Skalowanie do rozmiarów okna (68)
    • Ustawianie widoku i bryły obcinania (68)
    • Definiowanie widoku (71)
    • Definiowanie bryły obcinania (72)
    • Aby kwadrat był kwadratem (73)
  • Animacja przy użyciu biblioteki AUX (74)
    • Podwójne buforowanie (77)
  • W końcu trochę trzeciego wymiaru! (78)
  • Podsumowanie (79)
  • Podręcznik (79)
    • auxIdleFunc (79)
    • auxInitDisplayMode (80)
    • auxInitPosition (81)
    • auxInitWindow (81)
    • auxKeyFunc (82)
    • auxMainLoop (83)
    • auxMouseFunc (84)
    • auxReshapeFunc (85)
    • auxSetOneColor (85)
    • auxSolidBox (86)
    • auxSolidCone (86)
    • auxSolidCube (87)
    • AuxSolidCylinder (87)
    • auxSolidDodecahedron (88)
    • auxSolidIcosahedron (88)
    • auxSolidOctahedron (88)
    • auxSolidSphere (89)
    • auxSolidTeapot (89)
    • auxSolidTetrahedron (90)
    • auxSolidTorus (90)
    • auxSwapBuffers (91)
    • auxWireBox (91)
    • auxWireCone (91)
    • auxWireCube (92)
    • auxWireCylinder (92)
    • auxWireDodecahedron (93)
    • auxWireIcosahedron (93)
    • auxWireOctahedron (94)
    • auxWireSphere (94)
    • auxWireTeapot (95)
    • auxWireTetrahedron (95)
    • auxWireTorus (95)
    • glClearColor (96)
    • glFlush (96)
    • glOrtho (97)
    • glViewport (97)
    • glRect (98)
Rozdział 4. OpenGL for Windows: OpenGL + Win32 = Wiggle (101)
  • Rysowanie w oknach Windows (102)
    • Konteksty urządzeń GDI (102)
    • Konteksty renderowania OpenGL (105)
  • Korzystanie z funkcji Wiggle (106)
    • Tworzenie i wybieranie kontekstu renderowania (106)
    • Rysowanie przy użyciu OpenGL (106)
  • Przygotowanie okna dla OpenGL (108)
    • Style okien (108)
    • Formaty pikseli (108)
  • Powrót odbijającego się kwadratu (111)
    • Skalowanie do okna (114)
    • Tyknięcia timera (114)
    • Światła, kamera, akcja! (115)
  • Podsumowanie (116)
  • Podręcznik (116)
    • ChoosePixelFormat (116)
    • DescribePixelFormat (118)
    • GetPixelFormat (122)
    • SetPixelFormat (122)
    • SwapBuffers (123)
    • wglCreateContext (124)
    • wglDeleteContext (125)
    • wglGetCurrentContext (125)
    • wglGetCurrentDC (126)
    • wglGetProcAddress (126)
    • wglMakeCurrent (127)
    • wglShareLists (128)
    • wglUseFontBitmaps (129)
    • wglUseFontOutlines (130)
Rozdział 5. Błędy i inne komunikaty OpenGL (133)
  • Gdy dobremu programowi przydarzają się złe przygody (134)
  • Kim jestem i co potrafię? (135)
    • Rozszerzenia OpenGL (136)
  • Udzielanie wskazówek za pomocą funkcji glHint (137)
  • Podsumowanie (138)
  • Podręcznik (138)
    • glGetLastError (138)
    • glGetLastError (138)
    • glGetString (139)
    • glHint (140)
    • gluErrorString (141)
    • gluGetString (141)
Część II. Używanie OpenGL (143)
Rozdział 6. Rysowanie w trzech wymiarach: linie, punkty i wielokaty (145)
  • Rysowanie punktów w przestrzeni trójwymiarowej (146)
    • Przygotowanie trójwymiarowej osnowy (146)
    • Trójwymiarowy punkt: wierzchołek (148)
    • Narysujmy coś! (149)
    • Rysowanie punktów (149)
    • Ustalanie rozmiaru punktu (152)
  • Rysowanie linii w trzech wymiarach (155)
    • Łamane i łamane zamknięte (156)
    • Przybliżanie krzywych odcinkami (157)
    • Ustalanie grubości linii (158)
    • Linie przerywane (160)
  • Rysowanie trójkątów w przestrzeni 3D (162)
    • Trójkąt: twój pierwszy wielokąt (162)
    • Kierunek (163)
    • Paski trójkątów (164)
    • Wachlarze trójkątów (165)
  • Budowanie jednolitych obiektów (166)
    • Ustawianie kolorów wielokątów (169)
    • Korzystanie z bufora głębokości (169)
    • Ukrywanie niewidocznych powierzchni (171)
    • Tryby wielokątów (173)
  • Inne prymitywy (174)
    • Czworokąty (174)
    • Paski czworokątów (175)
    • Ogólne wielokąty (175)
    • Wypełnianie wielokątów (175)
    • Reguły konstruowania wielokątów (179)
    • Podział wielokąta (181)
  • Podsumowanie (183)
  • Podręcznik (184)
    • glBegin (184)
    • glCullFace (185)
    • glEdgeFlag (186)
    • glEnd (188)
    • glFrontFace (188)
    • glGetPolygonStipple (189)
    • glLineStipple (190)
    • glLineWidth (191)
    • glPointSize (193)
    • glPolygonMode (194)
    • glPolygonStipple (195)
    • glVertex (196)
Rozdział 7. Manipulowanie przestrzenią 3D: transformacje współrzędnych (199)
  • Czy to jest ten rozdział z matematyką? (200)
  • Przekształcenia (200)
    • Współrzędne obserwatora (201)
    • Przekształcenia punktu obserwacji (202)
    • Przekształcenia modelu (202)
    • Dwoistość widoku modelu (204)
    • Przekształcenia rzutowania (205)
    • Przekształcenia okna (206)
  • Ach, te macierze... (206)
    • Co to jest macierz? (206)
    • Kolejka przekształceń (207)
    • Macierz widoku modelu (208)
    • Macierz tożsamościowa (211)
    • Stosy macierzy (213)
    • Atomowy przykład (214)
  • Rzutowania (216)
    • Rzutowanie równoległe (217)
    • Rzutowanie perspektywiczne (218)
    • Przykład daleko-blisko (220)
  • Zaawansowane operacje na macierzach (223)
    • Ładowanie macierzy (223)
    • Tworzenie własnych przekształceń (224)
    • Inne przekształcenia (224)
  • Podsumowanie (224)
  • Podręcznik (225)
    • glFrustum (225)
    • glLoadIdentity (226)
    • glLoadMatrix (226)
    • glMatrixMode (227)
    • glMultMatrix (228)
    • glPopMatrix (228)
    • glPushMatrix (229)
    • glRotate (229)
    • glScale (230)
    • glTranslate (231)
    • gluLookAt (231)
    • gluOrtho2D (232)
    • gluPerspective (233)
Rozdział 8. Kolory i cieniowanie (235)
  • Czym jest kolor? (236)
    • Światło jako fala (236)
    • Światło jako cząsteczka (237)
    • Twój osobisty wykrywacz fotonów (237)
    • Komputer jako generator fotonów (238)
  • Sprzęt grafiki kolorowej (239)
  • Tryby graficzne w komputerach osobistych (241)
    • Rozdzielczości ekranu (241)
    • Głębokość koloru (241)
    • Kolor 4-bitowy (242)
    • Kolor 8-bitowy (242)
    • Kolor 24-bitowy (242)
    • Inne głębokości koloru (242)
  • Wybór koloru (243)
    • Kostka kolorów (243)
    • Ustalanie koloru rysowania (245)
    • Cieniowanie (246)
    • Ustawianie trybu cieniowania (248)
  • Palety Windows (249)
    • Dopasowywanie kolorów (249)
    • Dithering (250)
    • Korzyści ze stosowania palety w trybie 8-bitowym (251)
  • Tworzenie palety (253)
    • Czy potrzebujesz palety? (254)
    • Struktura palety (254)
    • Paleta 3-3-2 (255)
    • Tworzenie i usuwanie palety (258)
    • Pewne ograniczenia (259)
  • Tryb indeksu koloru (259)
    • Kiedy używać trybu indeksu koloru? (259)
    • Użycie trybu indeksu koloru (260)
  • Podsumowanie (262)
  • Podręcznik (263)
    • glClearIndex (263)
    • glColor (263)
    • glColorMask (265)
    • glIndex (265)
    • glIndexMask (266)
    • glLogicOp (267)
    • glShadeModel (268)
Rozdział 9. Oświetlenie i źródła światła (271)
  • Światło w rzeczywistym świecie (272)
    • Światło otaczające (273)
    • Światło rozproszone (273)
    • Światło odbłysków (273)
    • Złóżmy to razem (274)
  • Materiały w rzeczywistym świecie (275)
    • Właściwości materiału (275)
    • Oświetlanie materiałów (275)
    • Obliczanie efektów światła otaczającego (276)
    • Efekty światła rozpraszającego i odbłysków (277)
  • Umieszczenie światła w scenie (277)
    • Włączanie oświetlenia (277)
    • Przygotowanie modelu oświetlenia (278)
    • Przygotowanie właściwości materiału (279)
  • Używanie źródła światła (281)
    • Gdzie jest góra? (282)
    • Normalne do powierzchni (283)
    • Określanie normalnej (283)
    • Normalne jednostkowe (285)
    • Znajdowanie normalnej (286)
    • Przygotowanie źródła światła (288)
    • Przygotowanie właściwości materiału (289)
    • Rysowanie wielokątów (289)
  • Efekty oświetlenia (291)
    • Odbłyski (291)
    • Światło odbłysków (291)
    • Właściwości odbłysków materiału (292)
    • Stopień połyskliwości (293)
    • Uśrednianie normalnych (294)
  • Światła punktowe (298)
    • Tworzenie światła punktowego (299)
    • Rysowanie światła punktowego (301)
  • Cienie (302)
    • Czym jest cień? (303)
    • Kod "zgniatający" (304)
    • Przykład cienia (305)
  • Oświetlenie i tryb indeksu koloru (308)
  • Podsumowanie (308)
  • Podręcznik (309)
    • glColorMaterial (309)
    • glCullFace (310)
    • glFrontFace (310)
    • glGetMaterial (311)
    • glGetLight (312)
    • glLight (314)
    • glLightModel (315)
    • glMaterial (317)
    • glNormal (318)
Rozdział 10. Modelowanie i kompozycja obiektów 3D (321)
  • Określenie zadania (321)
    • Wybór rzutowania (322)
    • Wybór oświetlenia i właściwości materiału (323)
    • Wyświetlanie rezultatu (324)
  • Konstruowanie modelu po kawałku (325)
    • Główka (325)
    • Trzpień (328)
    • Gwint (332)
    • Składanie modelu w całość (335)
  • Test szybkości (336)
  • Poprawianie wydajności (340)
    • Tworzenie listy wyświetlania (340)
  • Podsumowanie (343)
  • Podręcznik (343)
    • glCallList (343)
    • glCallLists (344)
    • glDeleteLists (345)
    • glEndList (346)
    • glGenLists (346)
    • glIsList (347)
    • glListBase (348)
    • glNewList (349)
Rozdział 11. Grafika rastrowa (351)
  • Rysowanie bitmap (351)
    • Czcionki bitmapowe (355)
    • Budowanie prostej biblioteki czcionek (355)
  • Pixmapy: bitmapy z kolorem (359)
    • Rysowanie pixmap (359)
    • Remapowanie kolorów (360)
    • Tablice odwzorowań kolorów (361)
    • Skalowanie pixmapy (362)
    • Wykrawanie obszarów (362)
    • Odczytywanie pixmap z ekranu (363)
    • Kopiowanie pixmap (366)
  • Przeglądarka plików bitmap (366)
    • Pliki bitmap w Windows (367)
    • Odczyt plików .BMP (368)
    • Zapis pliku .BMP (370)
    • Drukowanie bitmap (372)
    • Wyświetlanie bitmapy (375)
  • Podsumowanie (377)
  • Podręcznik (377)
    • glCopyPixels (377)
    • glDrawPixels (378)
    • glPixelMap (379)
    • glPixelStore (380)
    • glPixelTransfer (382)
    • glPixelZoom (383)
    • glReadPixels (384)
Rozdział 12. Mapowanie tekstur (387)
  • Podstawy nakładania tekstur (388)
  • Definiowanie obrazów tekstur (389)
    • Definiowanie tekstur 1D (389)
    • Definiowanie tekstur 2D (391)
  • Rysowanie wielokątów z nałożoną teksturą (392)
  • Mipmapy (394)
  • Program oglądania terenu (397)
    • Definiowanie terenu (397)
    • Rysowanie terenu (397)
    • Rysowanie sceny (400)
    • Automatyczne generowanie współrzędnych tekstur (401)
    • Lot nad terenem (402)
  • Podsumowanie (402)
  • Podręcznik (429)
    • glTexCoord (429)
    • glTexEnw (429)
    • glTexGen (430)
    • glTexImage1D (431)
    • glTexImage2D (432)
    • glTexParameter (433)
Rozdział 13. Kwadryki: sfery, cylindry i dyski (435)
  • Tworzenie kwadryk (436)
  • Zmiana sposobu rysowania kwadryki (436)
  • Rysowanie cylindrów (437)
    • Rysowanie stożków (438)
    • Teksturowanie cylindrów (438)
  • Rysowanie dysków (438)
    • Teksturowanie dysku (439)
    • Rysowanie częściowych dysków (439)
  • Rysowanie sfer (439)
    • Teksturowanie sfer (440)
  • Rysowanie ołówka (440)
  • Podsumowanie (442)
  • Podręcznik (451)
    • gluCylinder (451)
    • gluDeleteQuadric (452)
    • gluDisk (452)
    • gluNewQuadric (453)
    • gluPartialDisk (453)
    • gluQuadricCallback (454)
    • gluQuadricDrawStyle (454)
    • gluQuadricNormals (455)
    • gluQuadricOrientation (455)
    • gluQuadricTexture (456)
    • gluSphere (456)
Część III. Tematy zaawansowane i efekty specjalne (459)
Rozdział 14. Maszyna stanu OpenGL (461)
  • Podstawowe zmienne stanu OpenGL (461)
  • Zachowywanie i odtwarzanie zmiennych stanu (462)
    • Stan rysowania (464)
    • Stan bufora głębokości (465)
    • Stan bufora szablonu (465)
    • Stan oświetlenia (465)
    • Stan teksturowania (466)
    • Stan pikseli (467)
  • Podręcznik (468)
    • glDisable / glEnable (468)
    • glIsEnabled (470)
    • glPopAttrib (470)
    • glPushAttrib (470)
Rozdział 15. Bufory: nie tylko do animacji (473)
  • Czym są bufory? (473)
    • Konfigurowanie buforów (474)
  • Bufor koloru (477)
    • Podwójne buforowanie (477)
    • Buforowanie stereo (478)
    • Przerzucanie buforów (478)
  • Bufor głębokości (479)
    • Porównywanie głębokości (479)
    • Wartości głębokości (481)
    • Zastosowania bufora głębokości (481)
    • Inne zastosowanie bufora głębokości (484)
    • Wycinanie fragmentów sceny (485)
  • Bufor szablonu (489)
    • Korzystanie z bufora szablonu (489)
    • Funkcje bufora szablonu (489)
    • Rysowanie w buforze szablonu (490)
  • Bufor akumulacji (494)
    • Użycie bufora akumulacji w celu zasymulowania rozmycia ruchu (495)
    • Użycie bufora akumulacji do antyaliasingu (498)
  • Podręcznik (499)
    • glAccum (499)
    • glClearColor (500)
    • glClearDepth (500)
    • glClearIndex (501)
    • glClearStencil (501)
    • glDrawBuffer (501)
    • glDepthFunc (502)
    • glDepthRange (503)
Rozdział 16. Efekty specjalne: przezroczystość i mgła (505)
  • Blending (505)
    • Efekt przezroczystości przez łączenie kolorów (507)
    • Łączenie kolorów przy antyaliasingu (511)
    • Łączenie kolorów w programach rysunkowych (511)
  • Mgła (520)
    • Rysowanie imbryków cieniowanych w zależności od głębokości (521)
    • Inne rodzaje mgły (524)
    • Głębokość mgły (524)
  • Powrót do programu przeglądania terenu (525)
  • Podsumowanie (530)
  • Podręcznik (530)
    • glBlendFunc (530)
    • glFog (531)
Rozdział 17. Krzywe i powierzchnie: co to jest NURBS?!! (533)
  • Krzywe i powierzchnie (534)
    • Reprezentacja parametryczna (534)
    • Punkty kontrolne (535)
    • Ciągłość (536)
  • Obliczenia (537)
    • Dwuwymiarowa krzywa (537)
    • Obliczanie krzywej (540)
    • Powierzchnia trójwymiarowa (541)
    • Oświetlenie i normalne (544)
  • NURBS (545)
    • Od krzywych Beziera do krzywych B-sklejanych (545)
    • Węzły (546)
    • Tworzenie powierzchni NURBS (546)
    • Właściwości obiektów NURBS (547)
    • Definiowanie powierzchni (547)
    • Wycinanie (549)
  • Podsumowanie (551)
  • Podręcznik (551)
    • glEvalCoord (551)
    • glEvalMesh (552)
    • glEvalPoint (553)
    • glGetMap (553)
    • glMap (555)
    • glMapGrid (558)
    • gluBeginCurve (559)
    • gluBeginSurface (560)
    • gluBeginTrim (560)
    • gluDeleteNurbsRenderer (561)
    • gluEndCurve (562)
    • gluEndSurface (563)
    • gluEndTrim (563)
    • gluGetNurbsProperty (563)
    • gluLoadSamplingMatrices (564)
    • gluNewNurbsRenderer (565)
    • gluNurbsCallback (566)
    • gluNurbsCurve (568)
    • gluNurbsProperty (569)
    • gluNurbsSurface (571)
    • gluPwlCurve (572)
Rozdział 18. Podział wielokątów (575)
  • Złożone wielokąty (575)
  • Rysowanie wielokątów wklęsłych (576)
  • Rysowanie wielokątów złożonych (577)
  • Funkcje zwrotne (581)
  • Podsumowanie (582)
  • Podręcznik (583)
    • gluBeginPolygon (583)
    • gluDeleteTess (583)
    • gluEndPolygon (583)
    • gluNewTess (584)
    • gluNextContour (584)
    • gluTessCallback (585)
    • gluTessVertex (585)
Rozdział 19. Grafika interaktywna (587)
  • Selekcja (588)
    • Nazywanie prymitywów (588)
    • Praca w trybie selekcji (590)
    • Bufor selekcji (590)
    • Wybieranie (592)
    • Wybór hierarchiczny (594)
  • Sprzężenie zwrotne (598)
    • Bufor sprzężenia zwrotnego (598)
    • Dane sprzężenia zwrotnego (599)
    • Znaczniki użytkownika (600)
  • Przykład (600)
    • Nadawanie obiektom etykiet na potrzeby sprzężenia zwrotnego (601)
    • Krok 1: wybranie obiektu (602)
    • Krok 2: pobieranie informacji o narysowanych obiektach (603)
  • Podsumowanie (605)
  • Podręcznik (605)
    • glFeedbackBuffer (605)
    • glInitNames (607)
    • glLoadName (607)
    • glPassThrough (608)
    • glPopName (609)
    • glPushName (609)
    • glRenderMode (610)
    • glSelectBuffer (612)
    • gluPickMatrix (613)
Rozdział 20. OpenGL w Sieci: VRML (615)
  • Na styku dwóch światów (615)
    • Dwuwymiarowa nawigacja (616)
    • VRML (617)
  • WebSpace (618)
    • Instalacja (618)
    • Tryb spacerowy (618)
    • Tryb oglądania (620)
  • Open Inventor i VRML (622)
  • Podsumowanie (622)
Część IV. OpenGL i... (625)
Rozdział 21. OpenGL i MFC (627)
  • Wydzielenie kodu związanego z OpenGL (628)
  • Zaczynamy od AppWizarda (629)
    • Budowanie szkieletu (629)
    • Dodawanie bibliotek (630)
  • Przygotowanie klasy widoku dla OpenGL (631)
  • Format pikseli i kontekst renderowania (632)
    • Usuwanie kontekstu renderowania (634)
  • Obsługa zmiany rozmiaru okna (634)
  • Renderowanie sceny (634)
    • Unikanie niepotrzebnego czyszczenia okna (635)
  • Obsługa palety (635)
  • Podsumowanie (639)
Rozdział 22. OpenGL i OWL (641)
  • Wydzielenie kodu związanego z OpenGL (642)
  • Zaczynamy od AppExperta (643)
    • Budowanie szkieletu (643)
    • Dodawanie nagłówków (645)
    • Dodawanie procedur obsługi komunikatów (645)
  • Wypełnianie szkieletu aplikacji (646)
    • Przygotowanie klasy widoku dla OpenGL (647)
  • Format pikseli i kontekst renderowania (647)
    • Usuwanie kontekstu renderowania (649)
  • Obsługa zmiany rozmiaru okna (649)
  • Renderowanie sceny (650)
    • Unikanie niepotrzebnego czyszczenia okna (650)
    • Niech się kręci (651)
  • Obsługa palety (652)
  • Podsumowanie (656)
Rozdział 23. OpenGL w Visual Basic i 4GL (657)
  • Wymagany dostęp niskiego poziomu (657)
  • Magia obiektów (658)
    • Plug and Play (659)
    • Wydzielenie kodu OpenGL (659)
  • Działanie i sposób użycia kontrolki WaiteGL.OCX (659)
    • Znaczniki OpenGL (660)
  • Instalacja i użycie kontrolki WaiteGL w Visual Basicu 6.0 (661)
    • Instalowanie kontrolki (661)
    • Przykład w Visual Basicu (662)
    • Malowanie w oknie OpenGL (663)
    • Trochę ruchu (664)
  • Wykorzystanie kontrolki OCX w Delphi 2.0 (665)
    • Instalowanie kontrolki (665)
    • Przykład w Delphi (665)
    • Malowanie w oknie OpenGL (667)
    • Trochę ruchu (667)
  • Parę uwag na temat kodu źródłowego (668)
  • Podsumowanie (669)
Rozdział 24. Przyszłość OpenGL w Windows (671)
  • Wnioski (674)
Dodatki (677)
Dodatek A. Poprawianie wydajności OpenGL w Windows (679)
  • Listy wyświetlania (679)
  • Operacje na macierzach (680)
  • Operacje związane z oświetleniem (680)
  • Konstruowanie obiektów (680)
  • Inne rady (681)
Dodatek B. Dalsza lektura (683)
  • Książki na temat programowania Windows (683)
  • Książki i materiały na temat OpenGL (684)
  • Książki komputerowe na temat programowania grafiki (w szczególności 3D) (684)
  • Serwery FTP i WWW związane z OpenGL (684)
  • Składnice VRML (685)
Dodatek C. OpenGL wersja 1.1 (687)
Dodatek D. Słownik (689)
Skorowidz (695)