OpenGL Ksiega eksperta Wydanie III.pdf

(1520 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
OpenGL. Ksiêga
eksperta. Wydanie III
Autorzy: Richard S. Wright Jr., Benjamin Lipchak
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
Tytu³ orygina³u:
OpenGL Superbible
Format: B5, stron: 1080
TWÓJ KOSZYK
DODAJ DO KOSZYKA
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
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Je li chcesz stworzyæ grafikê 3D zapieraj¹c¹ dech w piersiach,
skorzystaj z wiedzy zawartej w tej ksi¹¿ce.
5RKU VTG EK
1 #WVQTCEJ
9RTQYCF\GPKG
%\ú è + -NCU[MC 1RGP).
4Q\F\KC 9RTQYCF\GPKG FQ ITCHKMK VTÎLY[OKCTQYGL K 1RGP).
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
4Q\F\KC 7 [YCPKG 1RGP).
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
6
OpenGL. Księga eksperta
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
4Q\F\KC 4[UQYCPKG Y RT\GUVT\GPK )GQOGVT[E\PG QDKGMV[
RQFUVCYQYG K DWHQT[
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
Spis treści
7
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
4Q\F\KC 2T\GMU\VC EGPKC IGQOGVT[E\PG 2QVQM
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
4Q\F\KC -QNQT OCVGTKC [ K Q YKGVNGPKG 2QFUVCY[
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
8
OpenGL. Księga eksperta
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
4Q\F\KC 9KúEGL Q MQNQTCEJ K OCVGTKC CEJ
Mieszanie kolorów ............................................................................................................................ 281
Łączenie kolorów ........................................................................................................................ 282
Zmiana równania mieszania ........................................................................................................ 285
Antyaliasing ................................................................................................................................ 286
Zgłoś jeśli naruszono regulamin