To już trzecia część 'Perełek programowania gier. Vademecum profesjonalisty', wspaniałego zbioru opisów rozmaitych technik programistycznych używanych przez profesjonalnych programistów gier. Twórcy gier i oprogramowania graficznego z firm takich jak Nintendo, ATI, Electronic Arts, Sony Computer Entertainment, Intel, Creative Labs, NVidia, Microsoft, IBM czy Westwood Studios - najlepsi z najlepszych - przedstawiają swoje ulubione algorytmy i sztuczki pozwalające tworzyć gry na światowym poziomie.
Dla początkujących niniejsza książka to prawdziwy przewodnik po wyzwaniach, którym muszą stawić czoło programiści gier. Na końcu każdego rozdziału znajduje się bibliografia, która pozwala rozszerzyć wiadomości o prezentowanym temacie. Jeśli jesteś zaawansowanym programistą, dzięki tej książce zaoszczędzisz mnóstwo czasu. Autorzy spędzili całe miesiące wymyślając, pisząc kod i ilustrując wybrane zagadnienie, więc nie musimy być ekspertami w danym temacie, aby go zrozumieć. Więcej czasu pozostanie na tworzenie wspaniałych funkcji dla własnych gier.
Książka podzielona jest na 6 części:
Programowanie ogólne
Matematyka
Sztuczna inteligencja
Grafika
Sieć i gry dla wielu graczy
Dźwięk
Jeśli marzysz o karierze w przemyśle gier komputerowych, musisz mieć tę książkę. Informacje z pierwszej ręki są zawsze najcenniejsze, a tylko takie informacje znajdziesz w tej książce.
Znajdź podobne książki
Ostatnio czytane w tej kategorii
Darmowy fragment publikacji:
IDZ DO
IDZ DO
PRZYK£ADOWY ROZDZIA£
PRZYK£ADOWY ROZDZIA£
SPIS TREĎCI
SPIS TREĎCI
KATALOG KSI¥¯EK
KATALOG KSI¥¯EK
KATALOG ONLINE
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
TWÓJ KOSZYK
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
O NOWOĎCIACH
O NOWOĎCIACH
ZAMÓW CENNIK
ZAMÓW CENNIK
CZYTELNIA
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Pere³ki programowania
gier. Vademecum
profesjonalisty. Tom 3
Autor: Dante Treglia
T³umaczenie: Rafa³ Joñca
ISBN: 83-7361-111-8
Tytu³ orygina³u: Game Programming Gems 3
Format: B5, stron: stron: 728+8 stron kolorowej wk³adki
To ju¿ trzecia czêġæ „Pere³ek programowania gier. Vademecum profesjonalisty”,
wspania³ego zbioru opisów rozmaitych technik programistycznych u¿ywanych przez
profesjonalnych programistów gier. Twórcy gier i oprogramowania graficznego z firm
takich jak Nintendo, ATI, Electronic Arts, Sony Computer Entertainment, Intel, Creative
Labs, NVidia, Microsoft, IBM czy Westwood Studios — najlepsi z najlepszych —
przedstawiaj¹ swoje ulubione algorytmy i sztuczki pozwalaj¹ce tworzyæ gry
na ġwiatowym poziomie.
Dla pocz¹tkuj¹cych niniejsza ksi¹¿ka to prawdziwy przewodnik po wyzwaniach, którym
musz¹ stawiæ czo³o programiġci gier. Na koñcu ka¿dego rozdzia³u znajduje siê
bibliografia, która pozwala rozszerzyæ wiadomoġci o prezentowanym temacie.
Jeġli jesteġ zaawansowanym programist¹, dziêki tej ksi¹¿ce zaoszczêdzisz mnóstwo
czasu. Autorzy spêdzili ca³e miesi¹ce wymyġlaj¹c, pisz¹c kod i ilustruj¹c wybrane
zagadnienie, wiêc nie musimy byæ ekspertami w danym temacie, aby go zrozumieæ.
Wiêcej czasu pozostanie na tworzenie wspania³ych funkcji dla w³asnych gier.
Ksi¹¿ka podzielona jest na 6 czêġci:
• Programowanie ogólne
• Matematyka
• Sztuczna inteligencja
• Grafika
• Sieæ i gry dla wielu graczy
• Dĥwiêk
Jeġli marzysz o karierze w przemyġle gier komputerowych, musisz mieæ tê ksi¹¿kê.
Informacje z pierwszej rêki s¹ zawsze najcenniejsze, a tylko takie informacje znajdziesz
w tej ksi¹¿ce.
5RKUVTGħEK
5đQYQYUVúRPG P
2T\GFOQYC P
4[UWPGM\QMđCFMKP
$KQITCHKG9URÎđCWVQTÎY P
Część I 2TQITCOQYCPKGQIÎNPG G
Rozdział 1.1
Rozdział 1.2
Rozdział 1.3
9RTQYCF\GPKG P
*CTOQPQITCOQYCPKG\FCT\GēIT[ P
Koncepcje harmonogramowania ...................................................a.....................................48
Prosty system harmonogramowania ...................................................a................................51
Zwiększanie złożoności ...................................................a...................................................a53
Podsumowanie...................................................a...................................................a..............55
Bibliografia ...................................................a...................................................a...................56
5\MKGNGVIT[Y[MQT\[UVWLæE[UMđCFCPKGQDKGMVÎY
Etapy tworzenia gry...................................................a...................................................a......57
Projekt szkieletu gry ...................................................a...................................................a.....59
Implementacja szkieletu gry ...................................................a............................................62
Kod źródłowy ...................................................a...................................................a...............65
Bibliografia ...................................................a...................................................a...................67
CNGV[OCMTLú\[MC P
Uwaga ...................................................a...................................................a...........................69
Sztuczka 1. — zamiana wyliczeń na tekst...................................................a.......................70
Sztuczka 2. — stałe z reprezentacji binarnych w trakcie kompilacji .................................71
Sztuczka 3. — stosowanie opisowych komentarzy w asercjach ........................................72
Sztuczka 4. — asercje w trakcie kompilacji...................................................a....................72
Sztuczka 5. — określanie liczby elementów tablicy ...................................................a.......73
Sztuczka 6. — Zamiana __LINE__ na tekst ...................................................a...................73
Sztuczka 7. — zabezpieczenie się przed pętlami nieskończonymi ....................................74
Sztuczka 8. — niewielkie, wyspecjalizowane języki ...................................................a......75
Sztuczka 9. — upraszczanie interfejsu klasy...................................................a...................76
Podsumowanie...................................................a...................................................a..............79
Bibliografia ...................................................a...................................................a...................79
Rozdział 1.4 )GPGTCVQTMQFWFQđæE\CPKCHWPMELKPKG\CNGľP[QFRNCVHQTO[
Młodość i wiedza...................................................a...................................................a..........81
Sedno sprawy...................................................a...................................................a................82
Szczegóły...................................................a...................................................a......................83
4
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Rozdział 1.5
Skrypty...................................................a...................................................a..........................85
Sieć ...................................................a...................................................a...............................85
Podsumowanie...................................................a...................................................a..............86
Bibliografia ...................................................a...................................................a...................86
+PVGNKIGPVPGYUMCļPKMKDC\WLæEGPCWEJY[VCEJ
Korzystanie z rozwiązania...................................................a...............................................88
Uchwyt...................................................a...................................................a..........................88
Inteligentny wskaźnik...................................................a...................................................a...89
Podsumowanie...................................................a...................................................a..............91
Bibliografia ...................................................a...................................................a...................91
Rozdział 1.6 #NQMCVQT[56. P
Przykład ...................................................a...................................................a........................93
Podstawy alokatorów...................................................a...................................................a....94
Wymagania stawiane alokatorowi...................................................a...................................94
Domyślny obiekt alokatora...................................................a..............................................98
Pisanie własnego alokatora...................................................a..............................................99
Sposoby wykorzystania ...................................................a.................................................100
Dane stanu alokatora...................................................a...................................................a...101
Zalecenia...................................................a...................................................a.....................101
Szczegóły implementacji ...................................................a...............................................102
Podsumowanie...................................................a...................................................a............102
Bibliografia ...................................................a...................................................a.................102
CRKU\OPKGVGTC\ P
Dlaczego to jest takie trudne?...................................................a........................................103
Klasa SAVEMGR...................................................a...................................................a.......104
Klasa SAVEOBJ...................................................a...................................................a.........104
Typy danych i rozszerzenia ...................................................a...........................................105
Przysłanianie domyślnych funkcji...................................................a.................................106
Prosty przykład ...................................................a...................................................a...........106
Podsumowanie...................................................a...................................................a............107
Rozdział 1.7
Rozdział 1.8 9\QT\GERTQLGMVQY[CWVQOCV[E\P[EJNKUV
Implementacja...................................................a...................................................a.............109
Komentarz do implementacji...................................................a.........................................111
Podsumowanie...................................................a...................................................a............113
Rozdział 1.9 1DUđWICY[LæVMÎYNKE\D\OKGPPQRT\GEKPMQY[EJ
Dlaczego warto powodować zawieszenia programu? ...................................................a...115
Czy nasz program obsługuje wyjątki liczb zmiennoprzecinkowych?..............................116
Rodzaje wyjątków ...................................................a...................................................a......116
Kod ...................................................a...................................................a.............................117
Usuwanie błędów powodujących wyjątki zmiennoprzecinkowe .....................................118
Podsumowanie...................................................a...................................................a............118
Rozdział 1.10 -TGQYCPKGRTQLGMVWTF\GPKCIT[\CRQOQEæLú\[MC7/.
Gra to obiekty ...................................................a...................................................a.............119
Klasy poruszają się… jak skały...................................................a.....................................122
Współpraca i iteracja ...................................................a...................................................a..124
Zagadnienia implementacyjne ...................................................a.......................................126
Podsumowanie...................................................a...................................................a............127
Bibliografia ...................................................a...................................................a.................128
Spis treści
5
Rozdział 1.11 7ľ[EKGPCT\úF\K.GZK;CEEFQRT\GVYCT\CPKCRNKMÎYFCP[EJ
Lex ...................................................a...................................................a..............................130
Yacc ...................................................a...................................................a............................130
Zalety i wady ...................................................a...................................................a..............131
Współpraca Yacca z Leksem...................................................a.........................................131
Pliki danych w podsystemach gry ...................................................a.................................131
Integracja Leksa i Yacca z eksporterami danych ...................................................a..........133
Przykład ...................................................a...................................................a......................134
Podsumowanie...................................................a...................................................a............137
Dostępność narzędzi Flex i Bison...................................................a..................................137
Bibliografia ...................................................a...................................................a.................137
Rozdział 1.12 6YQT\GPKGIKGTFNCT[PMWħYKCVQYGIQ
Potencjał rynku ...................................................a...................................................a...........139
Najważniejsze są podstawy — ekran i wejście ...................................................a.............140
Zbiory znaków ...................................................a...................................................a............143
Zagadnienia związane z projektem i interfejsem...................................................a...........145
Lokalizacja...................................................a...................................................a..................148
Planowanie i projektowanie...................................................a...........................................150
Testowanie...................................................a...................................................a..................151
Podsumowanie...................................................a...................................................a............154
Bibliografia ...................................................a...................................................a.................154
Rozdział 1.13 9GLħEKGKKPVGTHGLUWľ[VMQYPKMCE\CUWT\GE\[YKUVGIQ
FNCIKGT P
Implementacja interfejsu użytkownika...................................................a..........................157
Określanie elementów interfejsu użytkownika...................................................a..............158
Zagadnienia związane z lokalizacją...................................................a...............................160
System wejścia...................................................a...................................................a............161
Mysz i joystick...................................................a...................................................a............162
Rola interfejsu użytkownika w walce z opóźnieniami...................................................a.......162
Podsumowanie...................................................a...................................................a............163
Bibliografia ...................................................a...................................................a.................164
Rozdział 1.14 QDÎTPCVWTCNP[ōTQ\YÎLOGPWMQđQYGIQ
Projektowanie menu kołowego...................................................a......................................165
Ewolucja i badania menu kołowego ...................................................a..............................166
Stosowanie menu kołowego ...................................................a..........................................167
Kierunek rozwoju ...................................................a...................................................a.......172
Poznajmy miasto SimCity ...................................................a.............................................172
Życie w domu z The Sims ...................................................a.............................................172
Podsumowanie...................................................a...................................................a............175
Bibliografia ...................................................a...................................................a.................176
Rozdział 1.15 -TÎVMKMQFF\KGPPKMC\FCT\GēDC\WLæEGIQPC\CUCFCEJ
Opisy zasad...................................................a...................................................a.................177
Znacznik testowania ...................................................a...................................................a...178
Plik konfiguracyjny ...................................................a...................................................a....179
Konfigurowalne znaczniki...................................................a.............................................179
Dzienniki zdarzeń ...................................................a...................................................a.......179
Sposób użycia ...................................................a...................................................a.............182
Podsumowanie...................................................a...................................................a............183
Bibliografia ...................................................a...................................................a.................183
6
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Rozdział 1.16 7UđWIKF\KGPPKMÎY P
Zarządzanie informacją ...................................................a.................................................185
Hierarchia systemu ...................................................a...................................................a.....186
Interfejs dziennika ...................................................a...................................................a......189
Budowanie usługi dziennika...................................................a..........................................191
Podsumowanie...................................................a...................................................a............194
Bibliografia ...................................................a...................................................a.................194
Rozdział 1.17 *KGTCTEJKE\P[RTQITCORTQHKNWLæE[F\KCđCLæE[YIT\G
Drzewo profilowania ...................................................a...................................................a..196
Sposób użycia ...................................................a...................................................a.............196
Implementacja...................................................a...................................................a.............199
Podsumowanie...................................................a...................................................a............201
Bibliografia ...................................................a...................................................a.................201
Część II /CVGOCV[MC G
Rozdział 2.1
Rozdział 2.2
9RTQYCF\GPKG P
5\[DMKGHWPMELGQRQFUVCYKGFNCNQICT[VOÎY
KIGPGTCVQTÎYNKE\DRUGWFQNQUQY[EJ
Logarytm przy podstawie 2 dla liczb całkowitych ...................................................a........207
Maski bitów i generatory liczb losowych...................................................a......................208
Sposób działania funkcji...................................................a................................................209
Bibliografia ...................................................a...................................................a.................209
5VQUQYCPKGWđCOMÎYYGMVQTQY[EJ
FQVYQT\GPKCFQMđCFPGLIGQOGVTKK P
Problem...................................................a...................................................a.......................211
Rozwiązanie — ułamki wektorowe...................................................a...............................215
Korzystanie z ułamków wektorowych...................................................a...........................216
Zakresy wartości...................................................a...................................................a.........217
Szczegóły implementacji ...................................................a...............................................218
Podsumowanie...................................................a...................................................a............220
Bibliografia ...................................................a...................................................a.................220
Rozdział 2.3 #RTQMU[OCELCHWPMELKVT[IQPQOGVT[E\P[EJ
Pomiar błędu...................................................a...................................................a...............221
Sinus i cosinus ...................................................a...................................................a............222
Aproksymacja wielomianami ...................................................a........................................229
Uwagi na temat zbieżności ...................................................a............................................234
Podsumowanie...................................................a...................................................a............235
Bibliografia ...................................................a...................................................a.................235
Rozdział 2.4
-QORTGULCMYCVGTPKQPÎYP
Kwaterniony ...................................................a...................................................a...............237
Metoda trzech najmniejszych ...................................................a........................................237
Metoda biegunowa...................................................a...................................................a......238
Implementacja...................................................a...................................................a.............239
Wydajność ...................................................a...................................................a..................240
Podsumowanie...................................................a...................................................a............241
Podziękowania...................................................a...................................................a............241
Bibliografia ...................................................a...................................................a.................241
Spis treści
7
Rozdział 2.5 1ITCPKE\QPCMKPGOCV[MCQFYTQVPC
+-
Hierarchia kości ...................................................a...................................................a..........243
Cykliczne dochodzenie do współrzędnych...................................................a....................244
Ograniczanie obrotu...................................................a...................................................a....246
Wykonanie obrotu i zastosowanie ograniczeń ...................................................a..............246
Podsumowanie...................................................a...................................................a............249
Bibliografia ...................................................a...................................................a.................249
Rozdział 2.6 /QFGNQYCPKGħYKCVC\CRQOQEæCWVQOCVWMQOÎTMQYGIQ
Podstawy automatów komórkowych...................................................a.............................252
Drzewo ósemkowe...................................................a...................................................a......255
Fizyka praktyczna...................................................a...................................................a.......255
Model rdzenia przetwarzania...................................................a.........................................256
Powietrze ...................................................a...................................................a....................257
Woda...................................................a...................................................a...........................257
Przepływ ...................................................a...................................................a.....................258
Ciepło...................................................a...................................................a..........................259
Ogień...................................................a...................................................a...........................261
Dynamiczna częstotliwość aktualizacji ...................................................a.........................263
Podsumowanie...................................................a...................................................a............264
Bibliografia ...................................................a...................................................a.................264
Rozdział 2.7
4WEJ\VCTEKGOYU[OWNCELCEJF[PCOKE\P[EJ
Tarcie ...................................................a...................................................a..........................267
Metody numeryczne ...................................................a...................................................a...271
Wzory dla przestrzeni trójwymiarowej ...................................................a.........................276
Zagadnienia geometryczne ...................................................a............................................277
Podsumowanie...................................................a...................................................a............278
Bibliografia ...................................................a...................................................a.................278
Część III5\VWE\PCKPVGNKIGPELCG
9RTQYCF\GPKG P
Rozdział 3.1 1RV[OCNK\CELCWE\GPKC\CRQOQEæVGEJPKMK)Q CR
Omówienie architektury systemu GoCap...................................................a......................283
Nauka prowadzenia samochodu ...................................................a....................................285
Uczenie zasad ...................................................a...................................................a.............289
Podsumowanie...................................................a...................................................a............291
Bibliografia ...................................................a...................................................a.................291
Rozdział 3.2 0CYKICELCQDU\CTQYCōTQ\U\GT\CPKG\CICFPKGPKC
\PCLFQYCPKCFTQIK P
Zacząć od starego podejścia ...................................................a..........................................294
By uzyskać nowe ...................................................a...................................................a........295
Dziel i rządź...................................................a...................................................a................298
Przechodzenie przez ścieżkę...................................................a..........................................302
Rozszerzenie zagadnienia...................................................a..............................................306
Podsumowanie...................................................a...................................................a............307
Bibliografia ...................................................a...................................................a.................308
Rozdział 3.3 #WVQOCVUVCPÎYUMQēE\QP[EJ
Y[MQT\[UVWLæE[YUMCļPKMKPCHWPMELG
Czym jest automat stanów? ...................................................a...........................................309
Implementacja automatu stanów ...................................................a...................................311
8
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Implementacja — klasa CFSM...................................................a......................................313
Korzystanie z klasy CFSM ...................................................a............................................316
Podsumowanie...................................................a...................................................a............319
Bibliografia ...................................................a...................................................a.................319
Rozdział 3.4 #PCNK\CVGTGPWYITCEJ465ōWMT[VCUKđC
Obszary ...................................................a...................................................a.......................321
Wielokąty wypukłe...................................................a...................................................a.....326
Siła pudełka od zapałek ...................................................a.................................................329
Punkty przyciągania...................................................a...................................................a....332
Przeprowadzanie analizy terenu ...................................................a....................................336
Podsumowanie...................................................a...................................................a............336
Bibliografia ...................................................a...................................................a.................336
Rozdział 3.5
Rozdział 3.6
Rozdział 3.7
4Q\U\GT\CNP[U[UVGO\FCT\GēFNCCIGPVÎY
U\VWE\PGLKPVGNKIGPELKQDKGMVÎYK\CFCē
Wprowadzenie do systemu wyzwalania...................................................a........................337
System wyzwalania dla obiektów...................................................a..................................338
Definiowanie warunków...................................................a................................................338
Łączenie warunków logiką boolowską...................................................a..........................339
Definiowanie odpowiedzi...................................................a..............................................340
Obliczanie wyzwolenia...................................................a..................................................341
Pojedyncze strzały i czas przeładowania...................................................a.......................342
Łączenie wyzwalania z licznikami i znacznikami...................................................a.........342
Systemy wyzwalania a języki skryptowe ...................................................a......................343
Ograniczenia ...................................................a...................................................a...............344
Podsumowanie...................................................a...................................................a............345
Bibliografia ...................................................a...................................................a.................345
PCLFQYCPKGPCLDCTF\KGLQFRQYKGFPKGLVCMV[E\PKGFTQIK
CNIQT[VOGO# P
A*, ale bardziej ryzykownie ...................................................a..........................................348
Poprawianie niedoskonałej ścieżki ...................................................a................................350
Czas wystawienia i modelowanie wroga...................................................a.......................351
Zagrożenia nie są statyczne ...................................................a...........................................353
Poprawa uzyskiwanych ścieżek...................................................a.....................................353
Wydajność ...................................................a...................................................a..................354
Wydajne testy widzialności i ostrzału ...................................................a...........................354
Rozszerzone koszta A*...................................................a..................................................356
Program ASE ...................................................a...................................................a..............357
Podsumowanie...................................................a...................................................a............357
Bibliografia ...................................................a...................................................a.................357
5\[DMCOGVQFCQDNKE\GēFNCUKCVGMPCYKICE[LP[EJ
Przeszkody dynamiczne i statyczne...................................................a...............................359
Siatki nawigacyjne...................................................a...................................................a......360
Portale ...................................................a...................................................a.........................360
Budowanie tablicy ...................................................a...................................................a......363
Pozostałe zagadnienia dotyczące portali ...................................................a.......................365
Reprezentacja postaci ...................................................a...................................................a.365
Przeszkody dynamiczne...................................................a.................................................366
Poruszanie się między przeszkodami statycznymi i dynamicznymi ................................369
Dodatkowe uwagi dotyczące siatek nawigacyjnych...................................................a......369
Podsumowanie...................................................a...................................................a............370
Spis treści
9
Rozdział 3.8 9[DÎT\YKæ\MWOKúF\[\PCLFQYCPKGOFTQIKC\FGT\GPKCOK
Ruch pod kontrolą zderzeń ...................................................a............................................371
Model zderzeniowy dla znajdowania drogi...................................................a...................372
Podejście 1. Sztuczna inteligencja z tolerancją błędu ...................................................a........372
Podejście 2. Znajdowanie drogi w podzbiorze niezajętej przestrzeni ..............................375
Podejście 3. Korzystanie ze znajdowania drogi w zderzeniach postaci ...........................377
Implementacja ruchu wzdłuż ścieżki...................................................a.............................378
Podsumowanie...................................................a...................................................a............380
Bibliografia ...................................................a...................................................a.................381
Część IV )TCHKMC G
Rozdział 4.1
Rozdział 4.2
Rozdział 4.3
Rozdział 4.4
Rozdział 4.5
9RTQYCF\GPKG P
NKOKPCELCRQđæE\GēV[RW6KRT\GNKE\CPKGUKCVGM
Eliminacja połączeń typu T ...................................................a...........................................390
Ponowna triangulacja...................................................a...................................................a..391
Implementacja...................................................a...................................................a.............392
Podsumowanie...................................................a...................................................a............393
5\[DMKGQDNKE\GPKCPQTOCNP[EJFNCRÎNY[UQMQħEK
Normalne dla dowolnych siatek ...................................................a....................................395
Normalne pól wysokości ...................................................a...............................................396
Podsumowanie...................................................a...................................................a............399
Kod źródłowy ...................................................a...................................................a.............399
Bibliografia ...................................................a...................................................a.................399
5\[DMKGPQTOCNPGFNCđCV P
Definicje ...................................................a...................................................a.....................401
Podejścia tradycyjne ...................................................a...................................................a...402
Inne rozwiązania...................................................a...................................................a.........402
Prostszy sposób...................................................a...................................................a...........402
Inne zalety...................................................a...................................................a...................403
Jaką dokładność uzyskujemy?...................................................a.......................................403
Podsumowanie...................................................a...................................................a............403
Bibliografia ...................................................a...................................................a.................404
5\[DMKGKRTQUVGY[MT[YCPKG\CUđCPKCPKC
Problem widzialności...................................................a...................................................a..405
Algorytm PLP...................................................a...................................................a.............406
Algorytm cPLP ...................................................a...................................................a...........407
Zalety algorytmów...................................................a...................................................a......408
Wyniki eksperymentów ...................................................a.................................................408
Podsumowanie...................................................a...................................................a............409
Bibliografia ...................................................a...................................................a.................410
6YQT\GPKGQRV[OCNK\CELCKTGPFGTKPIRCUMÎYVTÎLMæVÎY
Paski trójkątów ...................................................a...................................................a...........411
Tworzenie pasków trójkątów...................................................a.........................................413
Optymalizacja ...................................................a...................................................a.............416
Rendering...................................................a...................................................a....................417
Paski trójkątów przyjazne dla pamięci podręcznej...................................................a........417
Paski dla ciągłych poziomów szczegółowości ...................................................a..............417
Podsumowanie...................................................a...................................................a............418
Bibliografia ...................................................a...................................................a.................418
10
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Rozdział 4.6 1DNKE\CPKG\QRV[OCNK\QYCP[EJQDU\CTÎYEKGPKC
Rozdział 4.7
Rozdział 4.8
Rozdział 4.9
FNC\đQľQP[EJ\GUVCYÎYFCP[EJ P
Poprzednie algorytmy...................................................a...................................................a.419
Algorytm...................................................a...................................................a.....................420
Algorytm optymalizacji ...................................................a.................................................421
Bibliografia ...................................................a...................................................a.................423
2QF\KCđRQYKGT\EJPKYCPKOCELKRQUVCEK
Sposoby podziału...................................................a...................................................a........425
Hierarchia kości i bufor akumulacji wierzchołków...................................................a.......430
Optymalizacje ...................................................a...................................................a.............431
Łączymy wszystko...................................................a...................................................a......433
Kod źródłowy ...................................................a...................................................a.............435
Podsumowanie...................................................a...................................................a............435
Bibliografia ...................................................a...................................................a.................435
7FQUMQPCNQPCFGHQTOCELCMQħEK P
Tło...................................................a...................................................a...............................437
Proste metody ...................................................a...................................................a.............438
Dodawanie kości...................................................a...................................................a.........438
Zmiana wag ...................................................a...................................................a................439
Łączymy wszystko i przyspieszamy działanie ...................................................a..............443
Podsumowanie...................................................a...................................................a............445
Bibliografia ...................................................a...................................................a.................445
4F\GēU[UVGOWTGCNKUV[E\PGIQRQTWU\CPKCRQUVCEKæ
Problem — przejście do dowolnego celu ...................................................a......................448
Problem — płynne przejście między animacjami ...................................................a.........449
Rdzeń nowego rozwiązania — lokalne modyfikatory
z niezależnymi stosunkami przejść...................................................a..............................451
Zastosowanie — ruch do dowolnego celu...................................................a.....................452
Modyfikatory przemieszczenia...................................................a......................................453
Zastosowanie — przejścia ...................................................a.............................................454
Dodatkowe informacje...................................................a...................................................a455
Podsumowanie...................................................a...................................................a............455
Bibliografia ...................................................a...................................................a.................455
Rozdział 4.10 -QORKNCVQTRTQITCOQYCNPGIQUJCFGTCYKGT\EJQđMÎY
Programowalny shader wierzchołków...................................................a...........................457
Kompilator...................................................a...................................................a..................459
Składniki kompilatora...................................................a...................................................a.460
Podsumowanie...................................................a...................................................a............464
Podziękowania...................................................a...................................................a............464
Bibliografia ...................................................a...................................................a.................464
Rozdział 4.11 2TQOKGPKG\DKNNDQCTFÎY P
Macierze ...................................................a...................................................a.....................467
Wierzchołki...................................................a...................................................a.................468
Mapowanie UV...................................................a...................................................a...........468
Podsumowanie...................................................a...................................................a............470
Rozdział 4.12 5\VWE\MKVTÎLY[OKCTQYGYK\QOGVT[E\P[EJTF\GPKCEJIKGT
Przejście do trzeciego wymiaru ...................................................a.....................................472
Podsumowanie...................................................a...................................................a............477
Bibliografia ...................................................a...................................................a.................477
Spis treści
11
Rozdział 4.13 5[OWNCELCMT\[YK\P\CRQOQEæOCRPQTOCNP[EJ
Mapy normalnych...................................................a...................................................a.......479
Opis procesu ...................................................a...................................................a...............480
Przygotowanie danych...................................................a...................................................a481
Rzucanie promieni ...................................................a...................................................a......481
Uzyskiwanie szczegółów...................................................a...............................................483
Przetwarzanie końcowe ...................................................a.................................................483
Często spotykane problemy...................................................a...........................................484
Inne podejście ...................................................a...................................................a.............485
Podsumowanie...................................................a...................................................a............485
Podziękowania...................................................a...................................................a............485
Bibliografia ...................................................a...................................................a.................486
Rozdział 4.14 /GVQF[F[PCOKE\PGIQTGCNKUV[E\PGIQQħYKGVNGPKCVGTGPW
Tło...................................................a...................................................a...............................487
Taksonomia rozwiązań ...................................................a..................................................489
Światło słoneczne — kąt horyzontu, elipsy cienia i wielomianowe mapy tekstur...........489
Światło z nieba — łaty i aproksymacja metodą radiosity.................................................492
Animowane cienie chmur ...................................................a..............................................493
Rozwiązanie bazujące na sekwencjach wideo...................................................a...............495
Obiekty, które nie są terenem ...................................................a........................................496
Podsumowanie...................................................a...................................................a............496
Bibliografia ...................................................a...................................................a.................496
Rozdział 4.15 /GVQFCQħYKGVNGPKCWľ[YCLæECOCRU\GħEKGPP[EJ
Fizyczne właściwości map sześciennych ...................................................a......................499
Jak pobrać dane z mapy sześciennej lub umieścić je na niej............................................500
Rendering map sześciennych...................................................a.........................................501
Kodowanie pokrywy chmur ...................................................a..........................................502
Kodowanie świateł na mapie sześciennej...................................................a......................504
Kodowanie świateł rozmytych na mapach sześciennych .................................................504
Kodowanie cyklu dnia i nocy na mapie sześciennej ...................................................a.....505
Podsumowanie...................................................a...................................................a............505
Bibliografia ...................................................a...................................................a.................506
Rozdział 4.16 6GMUVWTQYCPKGRTQEGFWTCNPG P
Parametry i procedury...................................................a...................................................a.507
Skupiamy się na grach ...................................................a...................................................a508
Akceleracja sprzętowa ...................................................a...................................................a511
Podsumowanie...................................................a...................................................a............511
Podziękowania...................................................a...................................................a............512
Bibliografia ...................................................a...................................................a.................513
Rozdział 4.17 7PKMCNPGVGMUVWT[ P
Tekstury proceduralne ...................................................a...................................................a515
Inteligentne buforowanie tekstur ...................................................a...................................516
Model łączeń...................................................a...................................................a...............516
Mapowanie warstw i przekształcenia ...................................................a............................516
Źródła i filtry warstw ...................................................a...................................................a..517
Metody łączenia...................................................a...................................................a..........518
Wartości sterujące...................................................a...................................................a.......518
Tekstury dynamiczne...................................................a...................................................a..519
Skalowalność ...................................................a...................................................a..............519
Łączenie wykonywane w procesorze czy karcie graficznej? ...........................................520
Demo...................................................a...................................................a...........................521
12
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Podsumowanie...................................................a...................................................a............522
Bibliografia ...................................................a...................................................a.................522
Rozdział 4.18 6GMUVWT[LCMQVCDNKEGRT\GINæFQYG
YQDNKE\GPKCEJQħYKGVNGPKCFNCRKMUGNKP
Oświetlenie z rozbłyskiem dla pikseli bez korzystania z amapy sześciennej
w celu normalizacji (mapowanie n.h/h.h)...................................................a....................523
Wykładnik rozbłysku dla pikseli na podstawie mapy (n.h)k ............................................525
Opalizacja przesunięcia kolorów...................................................a...................................528
Światła punktowe z poprawnym zanikiem oparte na pikselach .......................................529
Światła kierunkowe i reflektory z poprawnym zanikiem oparte na pikselach .................530
Podsumowanie...................................................a...................................................a............531
Bibliografia ...................................................a...................................................a.................531
Rozdział 4.19 4GPFGTKPIY[MQT\[UVWLæE[TúE\PKGVYQT\QPG
OQFGNGEKGPKQYCPKC P
Modele cieniowania...................................................a...................................................a....533
Model cieniowania bazujący na mikrofasetach...................................................a.............534
Cieniowanie NDF ...................................................a...................................................a.......535
Mapowanie nierówności w NDF ...................................................a...................................537
Rozszerzenia ...................................................a...................................................a...............538
Podsumowanie...................................................a...................................................a............538
Bibliografia ...................................................a...................................................a.................538
Część V 5KGèKIT[FNCYKGNWITCE\[G
9RTQYCF\GPKG P
Rozdział 5.1 /KPKOCNK\CELCQRÎļPKGēYITCEJ465
Blokowanie klatek a blokowanie zdarzeń ...................................................a.....................545
Synchronizacja czasu...................................................a...................................................a..549
Podsumowanie...................................................a...................................................a............551
Bibliografia ...................................................a...................................................a.................552
Rozdział 5.2
Rozdział 5.3
2TQVQMÎđUKGEKQY[FNCUVTCVGIKKE\CUWT\GE\[YKUVGIQ
Inne protokoły...................................................a...................................................a.............553
Nasz protokół...................................................a...................................................a..............555
Udoskonalanie ...................................................a...................................................a............557
Użyteczne moduły ...................................................a...................................................a......559
Pułapki w grze StarTopia...................................................a...............................................560
Przykładowa gra ...................................................a...................................................a.........562
Podsumowanie...................................................a...................................................a............562
Bibliografia ...................................................a...................................................a.................562
NCUV[E\PCCTEJKVGMVWTCU[OWNCELKFNCIKGT
\QITQOPæNKE\DæITCE\[ P
Opis architektury ...................................................a...................................................a........563
Klasy pomocnicze...................................................a...................................................a.......564
Klasy podstawowe ...................................................a...................................................a......567
Zarządcy i fabryki...................................................a...................................................a.......570
Łączymy wszystko...................................................a...................................................a......572
Podsumowanie...................................................a...................................................a............574
Bibliografia ...................................................a...................................................a.................574
Rozdział 5.4
Rozdział 5.5
Rozdział 5.6
Spis treści
13
5MCNQYCNPGUGTYGT[IKGTUKGEKQY[EJ
Strategie zapewniające grę w pełni fair ...................................................a.........................577
Projektowanie skalowalnych serwerów...................................................a.........................579
Rozkład obciążenia...................................................a...................................................a.....584
Optymalizacja ...................................................a...................................................a.............587
Podsumowanie...................................................a...................................................a............590
Bibliografia ...................................................a...................................................a.................590
5GTKCNK\CELCQDKGMVÎYDC\WLæECPCU\CDNQPCEJ
Istniejące rozwiązania...................................................a...................................................a.591
Przenośność ...................................................a...................................................a................593
Klasa Serializer...................................................a...................................................a...........594
Możliwe rozszerzenia i optymalizacje...................................................a...........................599
Dalsze rozszerzanie możliwości ...................................................a....................................601
Podsumowanie...................................................a...................................................a............602
Bibliografia ...................................................a...................................................a.................602
$G\RKGE\PGIPKC\FCP
Standard IPSec...................................................a...................................................a............603
Założenia...................................................a...................................................a.....................604
Związki bezpieczeństwa ...................................................a................................................604
Format pakietu ...................................................a...................................................a............605
Wysyłanie danych...................................................a...................................................a.......607
Otrzymywanie danych ...................................................a...................................................a608
Przykładowa implementacja...................................................a..........................................610
Interfejs CryptoAPI ...................................................a...................................................a....611
Wydajność ...................................................a...................................................a..................612
Bezpieczeństwo ...................................................a...................................................a..........613
Podsumowanie...................................................a...................................................a............613
Bibliografia ...................................................a...................................................a.................613
Rozdział 5.7 0CT\úF\KGU[OWNCELKKOQPKVQTQYCPKCUKGEK
Interfejs ...................................................a...................................................a.......................615
Monitoring sieci...................................................a...................................................a..........616
Symulacja połączeń TCP...................................................a...............................................617
Symulacja połączeń UDP ...................................................a..............................................617
Symulacja przepustowości komputera ...................................................a..........................618
Podsumowanie...................................................a...................................................a............618
Rozdział 5.8
6YQT\GPKGIKGTFNCYKGNWITCE\[
\Y[MQT\[UVCPKGO KTGEV2NC[P
Architektura systemu DirectPlay...................................................a...................................619
Transmisja danych ...................................................a...................................................
Pobierz darmowy fragment (pdf)
Gdzie kupić całą publikację:
Perełki programowania gier. Vademecum profesjonalisty. Tom 3
Autor: Dante Treglia
Opinie na temat publikacji:
Inne popularne pozycje z tej kategorii:
Czytaj również:
Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką :