OpenGL Programowanie gier.pdf
(
294 KB
)
Pobierz
IDZ DO
PRZYK£ADOW
Y ROZDZIA£
OpenGL.
SPIS TRECI
Programowanie gier
KATALOG KSI¥¯EK
Autorzy: Kevin Hawkins, Dave Astle
T³umaczenie: Jaromir Senczyk
ISBN: 83-7361-035-9
Tytu³ orygina³
u:
OpenGL Game Programming
Format: B5, stron: 630
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
Coraz szybsze procesory, coraz wydajniejsze karty graficzne — wszystko to powoduje,
¿e programici gier komputerowych potrafi¹ kreowaæ w³asne, wirtualne i trójwymiarowe
wiaty, przyci¹gaj¹ce gracza bogactwem szczegó³ów i drobiazgowym odwzorowaniem
rzeczywistoci (lub wyobrani twórcy). Tworzenie tak zaawansowanych
i skomplikowanych gier nie by³oby mo¿liwe bez bibliotek graficznych, takich jak
OpenGL, pozwalaj¹cych na wywietlanie trójwymiarowych obiektów przez karty
graficzne ró¿nych producentów. OpenGL w ogromnym stopniu przyspiesza pracê
programisty.
Ksi¹¿ka omawia u¿ycie OpenGL do tworzenia dynamicznych, trójwymiarowych wiatów
gier oraz efektów specjalnych. Przedstawia podstawy tworzenia aplikacji w systemie
Windows, teoriê grafiki trójwymiarowej, ale g³ówny nacisk k³adzie na prezentacjê
funkcjonalnoci OpenGL. Jednak autor nie poprzesta³ na opisie. Sama biblioteka nie
wystarcza do stworzenia gry. Opisane zosta³y tak¿e niezbêdne programicie elementy
biblioteki DirectX pozwalaj¹ce na wzbogacenie gry o dwiêk i wygodne sterowanie.
Ksi¹¿ka przedstawia:
• Podstawy programowania w Windows, funkcje WGL
• Podstawy teorii grafiki trójwymiarowej
• Maszynê stanów OpenGL i podstawowe elementy grafiki
• Przekszta³cenia uk³adu wspó³rzêdnych i macierze OpenGL
• Kolory i efekty zwi¹zane z owietleniem
• Mapy bitowe i tekstury w OpenGL
• Listy wywietlania i tablice wierzcho³ków
• Bufory OpenGL
• Krzywe, powierzchnie i powierzchnie drugiego stopnia
• Sposoby tworzenia efektów specjalnych
• Interfejs DirectInput
• Wykorzystanie DirectX Audio
• Trójwymiarowe modele postaci
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
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
Spis treci
List od wydawcy serii.............................................................................15
O Autorach............................................................................................17
Przedmowa............................................................................................19
Wprowadzenie.......................................................................................21
Cz I Wprowadzenie do OpenGL i DirectX ......................................23
Rozdział 1. OpenGL i DirectX...................................................................................25
Dlaczego tworzymy gry? ............................................................................................... 25
wiat gier.....................................................................................................................26
Elementy gry ................................................................................................................ 26
Narzdzia ..................................................................................................................... 28
OpenGL....................................................................................................................... 30
Historia OpenGL..................................................................................................... 30
Architektura OpenGL.............................................................................................. 31
Biblioteka GLU....................................................................................................... 31
Pakiet bibliotek GLUT............................................................................................. 32
Programy................................................................................................................ 33
DirectX ........................................................................................................................33
Historia DirectX...................................................................................................... 34
Architektura DirectX ............................................................................................... 35
DirectX Graphics...............................................................................................36
DirectX Audio...................................................................................................36
DirectInput........................................................................................................36
DirectPlay.........................................................................................................36
DirectShow .......................................................................................................36
DirectSetup .......................................................................................................37
Porównanie OpenGL i DirectX....................................................................................... 37
Podsumowanie.............................................................................................................. 37
Rozdział 2. Korzystanie z OpenGL w systemie Windows............................................39
Wprowadzenie do programowania w systemie Windows ..................................................39
Podstawowa aplikacja systemu Windows................................................................... 41
Funkcja WinMain() ................................................................................................. 42
Procedura okienkowa............................................................................................... 42
Obsługa komunikatów........................................................................................43
Klasy okien............................................................................................................. 44
Okre=lenie atrybutów klasy okna.........................................................................45
Ładowanie ikon i kursora myszy.........................................................................46
6
OpenGL. Programowanie gier
Rejestracja klasy ..................................................................................................... 48
Tworzenia okna ...................................................................................................... 48
Ptla przetwarzania komunikatów............................................................................. 50
Kompletna aplikacja systemu Windows..................................................................... 52
Wprowadzenie do funkcji WGL..................................................................................... 55
Kontekst tworzenia grafiki ....................................................................................... 56
Korzystanie z funkcji WGL...................................................................................... 56
Funkcja wglCreateContext() ...............................................................................56
Funkcja wglDeleteContext() ...............................................................................56
Funkcja wglMakeCurrent().................................................................................57
Formaty pikseli ............................................................................................................. 58
Pole nSize............................................................................................................... 58
Pole dwFlags .......................................................................................................... 59
Pole iPixelType....................................................................................................... 59
Pole cColorBits....................................................................................................... 59
Aplikacja OpenGL w systemie Windows......................................................................... 60
Pełnoekranowe aplikacje OpenGL.................................................................................. 67
Podsumowanie.............................................................................................................. 69
Rozdział 3. Przegl'd teorii grafiki trójwymiarowej.....................................................71
Skalary, punkty i wektory .............................................................................................. 71
Długo=D wektora ..................................................................................................... 72
Normalizacja wektora.............................................................................................. 72
Dodawanie wektorów .............................................................................................. 73
MnoEenie wektora przez skalar................................................................................. 73
Iloczyn skalarny wektorów....................................................................................... 73
Iloczyn wektorowy.................................................................................................. 74
Macierze ...................................................................................................................... 75
Macierz jednostkowa............................................................................................... 75
Macierz zerowa....................................................................................................... 75
Dodawanie i odejmowanie macierzy ......................................................................... 76
MnoEenie macierzy.................................................................................................. 76
Implementacja działaF na macierzach........................................................................ 78
Przekształcenia ............................................................................................................. 79
Przesunicie............................................................................................................ 80
Obrót ..................................................................................................................... 80
Skalowanie ............................................................................................................. 82
Rzutowanie................................................................................................................... 82
Rzutowanie izometryczne......................................................................................... 83
Rzutowanie perspektywiczne.................................................................................... 84
Obcinanie..................................................................................................................... 86
wiatło.........................................................................................................................86
wiatło otoczenia .................................................................................................... 87
wiatło rozproszone ................................................................................................ 87
wiatło odbijane...................................................................................................... 88
Odwzorowania tekstur................................................................................................... 88
Podsumowanie.............................................................................................................. 89
Cz II Korzystanie z OpenGL............................................................91
Rozdział 4. Maszyna stanów OpenGL i podstawowe elementy grafiki.........................93
Funkcje stanu ............................................................................................................... 93
Podstawowe elementy grafiki......................................................................................... 99
Tworzenie punktów w trójwymiarowej przestrzeni................................................... 100
Zmiana rozmiaru punktów................................................................................ 101
Antialiasing..................................................................................................... 101
Spis treci
7
Odcinki ................................................................................................................ 102
Zmiana szeroko=ci odcinka............................................................................... 103
Antialiasing odcinków...................................................................................... 103
Wzór linii odcinka ........................................................................................... 103
WielokHty............................................................................................................. 104
Ukrywanie powierzchni wielokHtów.................................................................. 105
Ukrywanie krawdzi wielokHtów....................................................................... 106
Antialiasing wielokHtów ................................................................................... 106
Wzór wypełnienia wielokHtów .......................................................................... 107
TrójkHty.......................................................................................................... 107
CzworokHty..................................................................................................... 108
Dowolne wielokHty .......................................................................................... 109
Przykład wykorzystania podstawowych elementów grafiki........................................ 109
Podsumowanie............................................................................................................ 110
Rozdział 5. Przekształcenia układu współrz.dnych i macierze OpenGL.....................111
Przekształcenia układu współrzdnych.......................................................................... 111
Współrzdne kamery i obserwatora......................................................................... 113
Przekształcenia widoku.......................................................................................... 114
Wykorzystanie funkcji gluLookAt() .................................................................. 114
Wykorzystanie funkcji glRotate*() i glTranslate*().............................................115
Własne procedury przekształceF widoku............................................................ 116
Przekształcenia modelowania ................................................................................. 117
Rzutowanie........................................................................................................... 118
Przekształcenie okienkowe..................................................................................... 118
OpenGL i macierze ..................................................................................................... 119
Macierz modelowania............................................................................................ 119
Przesunicie.......................................................................................................... 120
Obrót ................................................................................................................... 120
Skalowanie ........................................................................................................... 122
Stos macierzy........................................................................................................ 123
Model robota ........................................................................................................ 124
Rzutowanie................................................................................................................. 132
Rzutowanie ortograficzne....................................................................................... 133
Rzutowanie perspektywiczne.................................................................................. 134
Okno widoku ........................................................................................................ 135
Przykład rzutowania .............................................................................................. 136
Wykorzystanie własnych macierzy przekształceF........................................................... 138
Ładowanie elementów macierzy ............................................................................. 138
MnoEenie macierzy................................................................................................ 139
Przykład zastosowania macierzy definiowanych....................................................... 139
Podsumowanie............................................................................................................ 140
Rozdział 6. Kolory, ł'czenie kolorów i o1wietlenie..................................................141
Czym sH kolory? ......................................................................................................... 141
Kolory w OpenGL ...................................................................................................... 142
Głbia koloru ........................................................................................................ 143
Sze=cian kolorów................................................................................................... 143
Model RGBA w OpenGL ...................................................................................... 143
Model indeksowany w OpenGL.............................................................................. 144
Cieniowanie................................................................................................................ 145
O=wietlenie................................................................................................................. 147
O=wietlenie w OpenGL i w realnym =wiecie............................................................ 147
Materiały.............................................................................................................. 148
8
OpenGL. Programowanie gier
Normalne.............................................................................................................. 148
Obliczanie normalnych..................................................................................... 149
UEycie normalnych .......................................................................................... 151
Normalne jednostkowe..................................................................................... 152
Korzystanie z o=wietlenia w OpenGL...................................................................... 153
Tworzenie Jródeł =wiatła.................................................................................. 158
PołoEenie Jródła =wiatła ................................................................................... 159
Tłumienie........................................................................................................ 160
StrumieF =wiatła .............................................................................................. 160
Definiowanie materiałów.................................................................................. 163
Modele o=wietlenia .......................................................................................... 164
Efekty odbicia ................................................................................................. 166
Ruchome Jródła =wiatła.................................................................................... 167
ŁHczenie kolorów........................................................................................................ 173
Przezroczysto=D .................................................................................................... 174
Podsumowanie............................................................................................................ 179
Rozdział 7. Mapy bitowe i obrazy w OpenGL...........................................................181
Mapy bitowe w OpenGL ............................................................................................. 181
Umieszczanie map bitowych .................................................................................. 182
Rysowanie mapy bitowej ....................................................................................... 183
Przykład zastosowania mapy bitowej ...................................................................... 183
Wykorzystanie obrazów graficznych............................................................................. 185
Rysowanie obrazów graficznych............................................................................. 185
Odczytywanie obrazu z ekranu............................................................................... 187
Kopiowanie danych ekranu .................................................................................... 187
Powikszanie, pomniejszanie i tworzenie odbiD........................................................ 188
Upakowanie danych mapy pikseli................................................................................. 188
Mapy bitowe systemu Windows ................................................................................... 188
Format plików BMP.............................................................................................. 189
Ładowanie plików BMP ........................................................................................ 190
Zapis obrazu w pliku BMP..................................................................................... 191
Pliki graficzne Targa ................................................................................................... 193
Format plików Targa ............................................................................................. 193
Ładowanie zawarto=ci pliku Targa.......................................................................... 194
Zapis obrazów w plikach Targa .............................................................................. 196
Podsumowanie............................................................................................................ 197
Rozdział 8. Odwzorowania tekstur .........................................................................199
Odwzorowania tekstur................................................................................................. 199
Przykład zastosowania tekstury .............................................................................. 200
Mapy tekstur .............................................................................................................. 205
Tekstury dwuwymiarowe....................................................................................... 205
Tekstury jednowymiarowe ..................................................................................... 206
Tekstury trójwymiarowe ........................................................................................ 206
Obiekty tekstur ........................................................................................................... 207
Tworzenie nazwy tekstury ..................................................................................... 207
Tworzenie i stosowanie obiektów tekstur................................................................. 207
Filtrowanie tekstur ...................................................................................................... 208
Funkcje tekstur........................................................................................................... 209
Współrzdne tekstury .................................................................................................. 209
Powtarzanie i rozciHganie tekstur............................................................................ 210
Mipmapy i poziomy szczegółowo=ci............................................................................. 212
Automatyczne tworzenie mipmap ........................................................................... 213
Plik z chomika:
bolewice
Inne pliki z tego folderu:
100 rzeczy ktore kazdy projektant powinien wiedziec o potencjalnych klientach.pdf
(1608 KB)
10 projektow w cyfrowej ciemni fotograficznej.pdf
(773 KB)
100 sposobow na cyfrowe wideo.pdf
(1337 KB)
100 sposobow na Excel 2007 PL Tworzenie funkcjonalnych arkuszy.pdf
(1134 KB)
100 sposobow na Flash.pdf
(2199 KB)
Inne foldery tego chomika:
• Zasilacze i prostowniki - schematy i opisy
●PRĄDNICE-do samodzielnego montażu (MrSzok)
★★★ 500 zagadek
2-MATERIAŁY I ICH ZACHOWANIE PRZY SPAWANIU (kursewe)
Brenden Laila - Hannah
Zgłoś jeśli
naruszono regulamin