Spis treści
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ęść l
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
OpenGL - księga eksperta
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............................................................................................................. 5 1
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........................................................................................................... 7 1
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
aux!dleFunc..........................................................................................................................79
auxłnitDisplayMode...... .................................................................................................... ...80
aux!nitPosition ..................................................................................................................... 8 1
aiucReshapeFunc ............................................................................................................... ...85
auxSetOneColor. ............................................................................................................... ...85
auxSolidBox.. ....................................................................................................................... 86
auxSolidCube.... ............................................................................................................... ....87
AuxSolidCylinder ................................................................................................................ 87
auxSolidDodecahedron. ..................................................................................................... ..88
auxSolidSphere .................................................................................................................... 89
auxSolidTeapot .................................................................................................................... 89
auxSolidTetrahedron.. ..................................................................................................... .....90
auxWireCone ....................................................................................................................... 9 1
auxWireCube ..................................................................................................................... ..92
auxWire!cosahedron ............................................................................................................93
auxWireOctahedron ............................................................................................................. 94
auxWireSphere.....................................................................................................................94
auxWireTeapot.. ................................................................................................................ ...95
auxWireTetrahedron ............................................................................................................95
auxWireTorus. ...................................................................................................................... 95
glYiewport...........................................................................................................................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......................................................................................l 05
Korzystanie z funkcji Wiggle................................................................................................... 106
Tworzenie i wybieranie kontekstu renderowania............................................................... 106
Rysowanie przy użyciu OpenGL........................................................................................ 106
Przygotowanie okna dla OpenGL.............................................................................................l 08
Style okien .........................................................................................................................108
Formaty pikseli ..................................................................................................................108
Powrót odbijającego się kwadratu............................................................................................ 111
Skalowanie do okna........................................................................................................... 114
Tyknięciatimera.................................................................................................................ll4
Światła, kamera, akcja!................................................................................................
15
Podsumowanie. Podręcznik........
ChoosePixelFormat... DescribePixelFormat.
16 16 16 18 GetPixelFormat .................................................................................................................. 122
SetPixelFormat.. ...................................................................................... ........................... 122
SwapBuffers.... ............................................................................................................... ....123
wglCreateContext...........................................................................................,...................124
wglDeleteContext.. ............................................................................................................. 125
wglGetCurrentContext.. ................................................................................................... ..125
wglGetCurrentDC .............................................................................................................. 126
wglGetProcAddress..... .................................................................................................. .....126
10______________________________________OpenGL - księga eksperta
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.......
gfab