OpenGL Programowanie gier.pdf
(
273 KB
)
Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
OpenGL.
Programowanie gier
Autorzy: Kevin Hawkins, Dave Astle
T³umaczenie: Jaromir Senczyk
ISBN: 83-7361-035-9
Tytu³ orygina³u:
OpenGL Game Programming
Format: B5, stron: 630
TWÓJ KOSZYK
DODAJ DO KOSZYKA
Coraz szybsze procesory, coraz wydajniejsze karty graficzne — wszystko to powoduje,
¿e programi ci gier komputerowych potrafi¹ kreowaæ w³asne, wirtualne i trójwymiarowe
wiaty, przyci¹gaj¹ce gracza bogactwem szczegó³ów i drobiazgowym odwzorowaniem
rzeczywisto ci (lub wyobra ni twórcy). Tworzenie tak zaawansowanych
i skomplikowanych gier nie by³oby mo¿liwe bez bibliotek graficznych, takich jak
OpenGL, pozwalaj¹cych na wy wietlanie 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ê
funkcjonalno ci OpenGL. Jednak autor nie poprzesta³ na opisie. Sama biblioteka nie
wystarcza do stworzenia gry. Opisane zosta³y tak¿e niezbêdne programi cie elementy
biblioteki DirectX pozwalaj¹ce na wzbogacenie gry o d wiê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 o wietleniem
• Mapy bitowe i tekstury w OpenGL
• Listy wy wietlania 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
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
Spis treści
List od wydawcy serii............................................................................. 15
O Autorach............................................................................................ 17
Przedmowa............................................................................................ 19
Wprowadzenie ....................................................................................... 21
Część I
Wprowadzenie do OpenGL i DirectX ......................................23
Dlaczego tworzymy gry? ............................................................................................... 25
Świat gier ..................................................................................................................... 26
Elementy gry ................................................................................................................ 26
Narzędzia ..................................................................................................................... 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ł 1. OpenGL i DirectX ................................................................................... 25
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
Pętla 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ść wektora ..................................................................................................... 72
Normalizacja wektora .............................................................................................. 72
Dodawanie wektorów .............................................................................................. 73
Mno enie 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
Mno enie macierzy.................................................................................................. 76
Implementacja działań na macierzach........................................................................ 78
Przekształcenia ............................................................................................................. 79
Przesunięcie............................................................................................................ 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
Funkcje stanu ............................................................................................................... 93
Podstawowe elementy grafiki ......................................................................................... 99
Tworzenie punktów w trójwymiarowej przestrzeni ................................................... 100
Zmiana rozmiaru punktów ................................................................................ 101
Antialiasing..................................................................................................... 101
Rozdział 4. Maszyna stanów OpenGL i podstawowe elementy grafiki......................... 93
Spis treści
7
Odcinki ................................................................................................................ 102
Zmiana szerokości odcinka ............................................................................... 103
Antialiasing odcinków...................................................................................... 103
Wzór linii odcinka ........................................................................................... 103
Wielokąty ............................................................................................................. 104
Ukrywanie powierzchni wielokątów .................................................................. 105
Ukrywanie krawędzi wielokątów....................................................................... 106
Antialiasing wielokątów ................................................................................... 106
Wzór wypełnienia wielokątów .......................................................................... 107
Trójkąty.......................................................................................................... 107
Czworokąty..................................................................................................... 108
Dowolne wielokąty .......................................................................................... 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ółrzędnych .......................................................................... 111
Współrzędne kamery i obserwatora......................................................................... 113
Przekształcenia widoku .......................................................................................... 114
Wykorzystanie funkcji gluLookAt() .................................................................. 114
Wykorzystanie funkcji glRotate*() i glTranslate*() ............................................. 115
Własne procedury przekształceń widoku ............................................................ 116
Przekształcenia modelowania ................................................................................. 117
Rzutowanie........................................................................................................... 118
Przekształcenie okienkowe ..................................................................................... 118
OpenGL i macierze ..................................................................................................... 119
Macierz modelowania ............................................................................................ 119
Przesunięcie.......................................................................................................... 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łceń ........................................................... 138
Ładowanie elementów macierzy ............................................................................. 138
Mno enie macierzy................................................................................................ 139
Przykład zastosowania macierzy definiowanych....................................................... 139
Podsumowanie............................................................................................................ 140
Rozdział 6. Kolory, łączenie kolorów i oświetlenie .................................................. 141
Czym są 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
U ycie normalnych .......................................................................................... 151
Normalne jednostkowe..................................................................................... 152
Korzystanie z oświetlenia w OpenGL...................................................................... 153
Tworzenie źródeł światła .................................................................................. 158
Poło enie źródła światła ................................................................................... 159
Tłumienie........................................................................................................ 160
Strumień światła .............................................................................................. 160
Definiowanie materiałów.................................................................................. 163
Modele oświetlenia .......................................................................................... 164
Efekty odbicia ................................................................................................. 166
Ruchome źródła światła.................................................................................... 167
Łączenie kolorów ........................................................................................................ 173
Przezroczystość .................................................................................................... 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
Powiększanie, pomniejszanie i tworzenie odbić........................................................ 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ółrzędne tekstury .................................................................................................. 209
Powtarzanie i rozciąganie tekstur ............................................................................ 210
Mipmapy i poziomy szczegółowości ............................................................................. 212
Automatyczne tworzenie mipmap ........................................................................... 213
Plik z chomika:
PDFator
Inne pliki z tego folderu:
OpenGL Ksiega eksperta Wydanie VII.pdf
(2480 KB)
OpenGL Programowanie gier.pdf
(273 KB)
Inne foldery tego chomika:
3ds max
50 zadań i zagadek szachowych
Access
Acrobat
Administracja
Zgłoś jeśli
naruszono regulamin