Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00358 006896 11242551 na godz. na dobę w sumie
Triki najlepszych programistów gier 3D. Vademecum profesjonalisty - książka
Triki najlepszych programistów gier 3D. Vademecum profesjonalisty - książka
Autor: Liczba stron: 1312
Wydawca: Helion Język publikacji: polski
ISBN: 83-7361-267-X Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> gry >> programowanie gier
Porównaj ceny (książka, ebook, audiobook).

Swoje triki zdradzą Ci prawdziwi guru ze świata twórców gier

Tworzenie gier 3D wymaga opanowania nie tylko języka programowania, ale także wielu innych dziedzin wiedzy -- analizy matematycznej, rachunku macierzowego i wektorowego oraz geometrii. Oczywiście każda z tych nauk została już opisana w dziesiątkach tomów. Książka, którą trzymasz w ręce, zawiera wszystkie informacje niezbędne do stworzenia gry 3D działającej w środowisku Windows, zebrane w jednym tomie. Korzystając z niej, nie będziesz już musiał przerzucać tysięcy stron w poszukiwaniu potrzebnego Ci wzoru.

Autor książki, wykorzystując ponad dwudziestopięcioletnie doświadczenie w programowaniu, przedstawi Ci:

Korzystając z tej książki, opracujesz doskonały, oparty wyłącznie na warstwie oprogramowania silnik 3D dla gry, wykorzystasz w swoich grach modele i postaci stworzone w programach 3D, stworzysz realistyczną scenerię gry 3D i zoptymalizujesz kod źródłowy programu pod kątem szybkości jego wykonywania.

Takich informacji nie znajdziesz w żadnej innej książce.

O autorze:
Andre LaMothe autor uznanych przez rynek książek o programowaniu gier i grafiki trójwymiarowej. Posiada stosowne wykształcenie z zakresu matematyki, informatyki i elektrotechniki. [więcej...\

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 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty Autor: Andre LaMothe T³umaczenie: Adam Bochenek (wstêp, rozdz. 1 –3), Jaros³aw Dobrzañski (rozdz. 6 – 9), S³awomir Dzieniszewski (rozdz. 14 – 16, dod. A – F) ISBN: 83-7361-267-X Tytu³ orygina³u: Tricks of the 3D Game Programming Gurus Format: B5, stron: 1312 Swoje triki zdradz¹ Ci prawdziwi guru ze ġwiata twórców gier Tworzenie gier 3D wymaga opanowania nie tylko jêzyka programowania, ale tak¿e wielu innych dziedzin wiedzy -- analizy matematycznej, rachunku macierzowego i wektorowego oraz geometrii. Oczywiġcie ka¿da z tych nauk zosta³a ju¿ opisana w dziesi¹tkach tomów. Ksi¹¿ka, któr¹ trzymasz w rêce, zawiera wszystkie informacje niezbêdne do stworzenia gry 3D dzia³aj¹cej w ġrodowisku Windows, zebrane w jednym tomie. Korzystaj¹c z niej, nie bêdziesz ju¿ musia³ przerzucaæ tysiêcy stron w poszukiwaniu potrzebnego Ci wzoru. Autor ksi¹¿ki, wykorzystuj¹c ponad dwudziestopiêcioletnie doġwiadczenie w programowaniu, przedstawi Ci: • algorytmy matematyczne wykorzystywane w grafice 3D, • zasady programowania w Windows i DirectX, • algorytmy wyġwietlania grafiki 2D i 3D, • techniki animacji i renderingu 3D, • mapowanie tekstur, • techniki symulacji oġwietlenia i wiele innych informacji. Korzystaj¹c z tej ksi¹¿ki, opracujesz doskona³y, oparty wy³¹cznie na warstwie oprogramowania silnik 3D dla gry, wykorzystasz w swoich grach modele i postaci stworzone w programach 3D, stworzysz realistyczn¹ sceneriê gry 3D i zoptymalizujesz kod ĥród³owy programu pod k¹tem szybkoġci jego wykonywania. O autorze: Andre LaMothe to autor uznanych przez rynek ksi¹¿ek o programowaniu gier i grafiki trójwymiarowej. Ci¹g jego sukcesów wydawniczych zapocz¹tkowa³o pierwsze wydanie tej ksi¹¿ki (ustanowi³o ono swego czasu standardy programowania gier dla systemu DOS). Andre LaMothe programuje od ponad 25 lat i oprócz niew¹tpliwej praktyki posiada stosowne wykszta³cenie z zakresu matematyki, informatyki i elektrotechniki. Znany jest równie¿ jako za³o¿yciel firm Xtreme Games LCC, Nurve Networks i XGDC. 5RKUVTGħEK 1#WVQTG   2TGFOQYC   9UVúR  úħè+ 9RTQYCFGPKGFQRTQITCOQYCPKCIKGT  4QFKCđ 9UVúRFQRTQITCOQYCPKCIKGT   Wprowadzenie ...................................................n...................................................n.................27 Elementy gier 2D/3D ...................................................n...................................................n.......29 Ogólne wskazówki dotyczące programowania gier ...................................................n...........33 Narzędzia ...................................................n...................................................n.........................36 Edytor poziomów 3D...................................................n...................................................n.39 Przygotowanie kompilatora...................................................n..........................................40 Przykładowa gra 3D: Raiders 3D ...................................................n.......................................43 Pętla obsługi zdarzeń ...................................................n...................................................n.62 Logika gry 3D...................................................n...................................................n............62 Rzutowanie 3D ...................................................n...................................................n..........64 Gwiezdne tło...................................................n...................................................n..............66 Działo laserowe i wykrywanie kolizji ...................................................n..........................66 Eksplozja ...................................................n...................................................n...................66 Zasady gry ...................................................n...................................................n.................67 Podsumowanie ...................................................n...................................................n.................67 4QFKCđ -TÎVMKMWTURTQITCOQYCPKCY9KPFQYUK KTGEV:   Model programowania Win32 ...................................................n............................................69 Programowanie w Windows — absolutne minimum ...................................................n.........70 Wszystko zaczyna się od WinMain() ...................................................n...........................70 Wzorcowa aplikacja Windows ...................................................n...........................................75 Klasa okna ...................................................n...................................................n.................76 Rejestracja klasy okna ...................................................n..................................................80 Tworzenie okna ...................................................n...................................................n.........80 Obsługa zdarzeń ...................................................n...................................................n........82 Pętla obsługi komunikatów ...................................................n..........................................87 Pętla obsługi komunikatów pracująca w czasie rzeczywistym .......................................90 DirectX i COM w pigułce...................................................n...................................................n91 HEL i HAL ...................................................n...................................................n................93 Komponenty DirectX ...................................................n...................................................n94 Wprowadzenie do COM ...................................................n...................................................n..95 Co to jest obiekt COM? ...................................................n................................................96 Tworzenie i używanie interfejsów COM biblioteki DirectX ..........................................98 Dostęp do interfejsów...................................................n...................................................n98 Podsumowanie ...................................................n...................................................n...............100 6 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty 4QFKCđ #DUVTCME[LP[MQORWVGT   Założenia interfejsu abstrakcyjnego komputera ...................................................n...............101 Budujemy abstrakcyjny komputer ...................................................n....................................103 System video, bufor ramki...................................................n..........................................103 Praca z kolorami ...................................................n...................................................n......106 Kopiowanie bufora ...................................................n...................................................n..108 Kompletny system graficzny abstrakcyjnego komputera..............................................110 Dźwięk, muzyka, urządzenia wejścia...................................................n.........................110 Konsola do gier T3DLIB ...................................................n..................................................111 Podstawowa konsola do gier ...................................................n......................................111 Biblioteka T3DLIB ...................................................n...................................................n........116 Architektura modułu graficznego...................................................n...............................117 Podstawowe definicje ...................................................n.................................................117 Makra...................................................n...................................................n.......................119 Typy danych, struktury...................................................n...............................................119 Funkcje ...................................................n...................................................n....................122 Globalna dominacja...................................................n...................................................n.125 Interfejs DirectDraw ...................................................n...................................................n126 Funkcje operujące na figurach 2D...................................................n..............................130 Funkcje matematyczne i obsługa błędów...................................................n...................136 Mapy bitowe ...................................................n...................................................n............138 Obsługa palety w trybie 8-bitowym ...................................................n...........................142 Funkcje pomocnicze ...................................................n...................................................n145 Obiekty BOB ...................................................n...................................................n...........146 T3DLIB2 — moduł obsługi urządzeń wejścia ...................................................n.................154 T3DLIB3 — biblioteka obsługi dźwięku i muzyki ...................................................n..........159 Definicje ...................................................n...................................................n..................160 Typy...................................................n...................................................n..................... ....160 Zmienne globalne ...................................................n...................................................n....161 DirectSound API...................................................n...................................................n......161 DirectMusic API...................................................n...................................................n......166 Ostateczna postać konsoli T3D...................................................n.........................................168 Przypisanie funkcji graficznych abstrakcyjnemu modelowi .........................................168 Konsola T3DLIB ...................................................n...................................................n.....171 Przykładowe aplikacje ...................................................n...................................................n...179 Aplikacje okienkowe ...................................................n..................................................179 Aplikacje pełnoekranowe ...................................................n...........................................180 Dźwięk i muzyka ...................................................n...................................................n.....181 Klawiatura, myszka, joystick...................................................n......................................181 Podsumowanie ...................................................n...................................................n...............184 úħè++ 1DNKEGPKCKVTCPUHQTOCELGYVTGEJY[OKCTCEJ  4QFKCđ 6T[IQPQOGVTKCYGMVQT[OCEKGTGKMYCVGTPKQP[ ōECđCVCOCVGOCV[MC   Notacje matematyczne...................................................n...................................................n...187 Dwuwymiarowe układy współrzędnych...................................................n...........................188 Dwuwymiarowy układ współrzędnych kartezjańskich .................................................189 Dwuwymiarowy układ współrzędnych biegunowych...................................................n190 Trójwymiarowe układy współrzędnych...................................................n............................193 Trójwymiarowe współrzędne kartezjańskie ...................................................n...............193 Trójwymiarowe współrzędne cylindryczne...................................................n......................196 Konwersja trójwymiarowych współrzędnych kartezjańskich do współrzędnych cylindrycznych...................................................n...........................196 Spis treści 7 Trójwymiarowe współrzędne sferyczne ...................................................n...........................197 Podstawy trygonometrii...................................................n...................................................n.198 Trójkąt prostokątny...................................................n...................................................n..199 Odwrotne funkcje trygonometryczne ...................................................n.........................200 Zależności trygonometryczne...................................................n.....................................201 Wektory ...................................................n...................................................n.........................202 Długość wektora ...................................................n...................................................n......203 Normalizacja...................................................n...................................................n............204 Mnożenie wektora przez wartości skalarne...................................................n................204 Dodawanie wektorów ...................................................n.................................................205 Odejmowanie wektorów...................................................n.............................................206 Iloczyn skalarny wektorów...................................................n.........................................206 Iloczyn wektorowy ...................................................n...................................................n..209 Wektor zerowy ...................................................n...................................................n........211 Wektory położenia i wektory przemieszczenia ...................................................n..........211 Wektory jako kombinacje liniowe składowych...................................................n..........211 Macierze i algebra liniowa...................................................n................................................212 Macierz jednostkowa...................................................n..................................................214 Dodawanie macierzy ...................................................n..................................................214 Transpozycja macierzy ...................................................n...............................................215 Mnożenie macierzy...................................................n...................................................n..215 Reguły mnożenia macierzy ...................................................n........................................217 Wyznaczanie macierzy odwrotnej i rozwiązywanie układów równań................................217 Reguła Cramera ...................................................n...................................................n.......219 Przekształcenia geometryczne z wykorzystaniem macierzy .........................................221 Współrzędne jednorodne ...................................................n............................................222 Przekształcenia macierzowe ...................................................n.......................................223 Podstawowe obiekty geometryczne...................................................n..................................230 Punkty...................................................n...................................................n................... ...230 Proste ...................................................n...................................................n.......................230 Proste w przestrzeni trójwymiarowej ...................................................n.........................232 Płaszczyzny ...................................................n...................................................n.............234 Równania parametryczne...................................................n..................................................238 Proste parametryczne na płaszczyźnie i w przestrzeni trójwymiarowej .......................238 Parametryczne definicje odcinków, wykorzystujące zwykły wektor kierunkowy v.....239 Parametryczne definicje odcinków, wykorzystujące jednostkowy wektor kierunkowy |v| = 1 ...........................................240 Parametryczne proste w przestrzeni trójwymiarowej...................................................n.241 Kwaterniony — wprowadzenie ...................................................n........................................246 Teoria liczb zespolonych ...................................................n............................................247 Rozszerzenie liczb zespolonych ...................................................n.................................252 Zastosowania kwaternionów ...................................................n......................................257 Wstęp do analizy matematycznej ...................................................n.....................................261 Pojęcie nieskończoności ...................................................n.............................................261 Granice............................................n...................................................n............................263 Sumy i szeregi liczbowe skończone ...................................................n...........................264 Szeregi liczbowe nieskończone ...................................................n..................................266 Pochodne ...................................................n...................................................n.................267 Całki...............................................n...................................................n.............................274 Podsumowanie ...................................................n...................................................n...............279 4QFKCđ +ORNGOGPVCELCOQFWđWOCVGOCV[EPGIQ   Moduł matematyczny — przegląd...................................................n....................................282 Struktura plików modułu matematycznego...................................................n................282 Konwencja nazewnicza ...................................................n..............................................282 8 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty Obsługa błędów ...................................................n...................................................n.......283 Słowo na temat języka C++...................................................n........................................284 Struktury i typy danych...................................................n...................................................n..284 Wektory i punkty ...................................................n...................................................n.....284 Równania parametryczne prostych...................................................n.............................286 Płaszczyzny w przestrzeni trójwymiarowej ...................................................n...............287 Macierze ...................................................n...................................................n..................287 Kwaterniony ...................................................n...................................................n............290 Obsługa współrzędnych niekartezjańskich...................................................n.................291 Dwuwymiarowy układ współrzędnych biegunowych...................................................n292 Trójwymiarowy układ współrzędnych cylindrycznych ................................................293 Trójwymiarowy układ współrzędnych sferycznych...................................................n...293 Liczby stałoprzecinkowe ...................................................n............................................294 Stałe matematyczne ...................................................n...................................................n.......295 Makrodefinicje i funkcje rozwijane w miejscu wywołania .................................................297 Funkcje użytkowe i funkcje konwersji...................................................n.......................301 Funkcje manipulujące punktami i wektorami ...................................................n............301 Macierze ...................................................n...................................................n..................302 Kwaterniony ...................................................n...................................................n............304 Obliczenia stałoprzecinkowe...................................................n......................................304 Prototypy...................................................n...................................................n................ ........305 Zmienne globalne ...................................................n...................................................n..........308 Interfejs programowy modułu matematycznego ...................................................n..............308 Funkcje trygonometryczne ...................................................n.........................................309 Funkcje obsługi różnych układów współrzędnych...................................................n.....310 Funkcje obsługi wektorów...................................................n..........................................313 Funkcje operujące na macierzach...................................................n...............................321 Funkcje operujące parametryczną reprezentacją prostych na płaszczyźnie i w przestrzeni trójwymiarowej ...................................................n.....333 Funkcje obsługi płaszczyzn trójwymiarowych...................................................n...........337 Funkcje obsługi kwaternionów...................................................n...................................341 Funkcje obliczeń stałoprzecinkowych...................................................n........................350 Funkcje rozwiązujące równania macierzowe ...................................................n.............355 Elementarz arytmetyki zmiennoprzecinkowej z wykorzystaniem koprocesora..................357 Architektura jednostki zmiennoprzecinkowej ...................................................n............358 Stos jednostki zmiennoprzecinkowej ...................................................n.........................359 Zestaw instrukcji jednostki FPU...................................................n.................................361 Klasyczny tryb adresowania operandów ...................................................n....................364 Tryb adresowania operandów z odwołaniem do pamięci .............................................364 Tryb adresowania operandów z odwołaniem do rejestru ..............................................365 Adresowanie operandów ze zdjęciem operandu ze stosu..............................................365 Przykłady zastosowania instrukcji jednostki FPU...................................................n......366 Instrukcje FLD...................................................n...................................................n.........366 Instrukcje FST ...................................................n...................................................n.........367 Instrukcje FADD ...................................................n...................................................n.....368 Instrukcje FSUB ...................................................n...................................................n......371 Instrukcje FMUL ...................................................n...................................................n.....372 Instrukcje FDIV...................................................n...................................................n.......373 Stosowanie modułu matematycznego — uwagi...................................................n...............374 Nowy szablon aplikacji ...................................................n..............................................375 Słowo o optymalizacji modułu ...................................................n.........................................375 Podsumowanie ...................................................n...................................................n...............376 Spis treści 9 4QFKCđ 9RTQYCFGPKGFQITCHKMK   Filozofia silnika 3D ...................................................n...................................................n.......377 Struktura silnika gry 3D...................................................n...................................................n.378 ..378 Silnik 3D...................................................n...................................................n................ Silnik gry ...................................................n...................................................n............... ..379 System sterowania grą i gry sieciowej ...................................................n.......................379 System animacji...................................................n...................................................n.......379 Wykrywanie kolizji i system nawigacji...................................................n......................384 Moduł fizyki ...................................................n...................................................n............384 System sztucznej inteligencji...................................................n......................................386 Baza modeli 3D i grafiki ...................................................n............................................387 Układy współrzędnych trójwymiarowych ...................................................n........................388 Współrzędne modelu (lokalne)...................................................n...................................389 Współrzędne świata gry...................................................n..............................................392 Współrzędne kamery ...................................................n..................................................396 Ostateczna reprezentacja świata 3D za pomocą współrzędnych kamery......................404 Usuwanie ukrytych obiektów (powierzchni) i przycinanie...........................................405 Współrzędne perspektywy...................................................n..........................................411 Zakończenie potoku — współrzędne ekranowe...................................................n.........422 Podstawowe struktury danych 3D ...................................................n....................................430 Reprezentacje danych opisujących wielokąty w grafice 3D .........................................431 Definiowanie wielokątów...................................................n...........................................433 Definiowanie obiektów...................................................n...............................................439 Reprezentowanie światów ...................................................n..........................................443 Narzędzia 3D ...................................................n...................................................n.................443 Animacja i dane o ruchu...................................................n.............................................445 Ładowanie danych ze źródeł zewnętrznych ...................................................n.....................446 .446 Pliki PLG ...................................................n...................................................n................ Pliki NFF ...................................................n...................................................n................ .449 Pliki 3D Studio ...................................................n...................................................n........452 Pliki COB firmy Caligari...................................................n............................................459 Pliki .X Microsoft DirectX ...................................................n.........................................461 Formaty plików 3D — podsumowanie ...................................................n......................461 Proste przekształcenia i animacja ...................................................n.....................................462 Przesunięcie w przestrzeni...................................................n..........................................462 Obrót w przestrzeni ...................................................n...................................................n.463 Zmiana kształtu...................................................n...................................................n........465 Podsumowanie potoku 3D ...................................................n................................................466 Typy silników 3D ...................................................n...................................................n......... .467 Silniki przestrzeni kosmicznej...................................................n....................................468 Silniki terenu......................................n...................................................n.........................468 Silniki pomieszczeń zamkniętych ...................................................n..............................470 Ray casting i silniki wokselowe ...................................................n.................................471 Silniki hybrydowe...................................................n...................................................n....472 Integracja całości w ostateczną postać silnika...................................................n..................472 Podsumowanie ...................................................n...................................................n...............473 4QFKCđ 4GPFGTQYCPKGħYKCVÎYUMKGNGVQY[EJY   Ogólna architektura silnika szkieletowego ...................................................n.......................475 Struktury danych i potok 3D ...................................................n......................................476 Główna lista wielokątów ...................................................n............................................479 Nowe moduły programowe ...................................................n........................................482 Piszemy program ładujący pliki 3D...................................................n..................................482 Program ładujący pliki PLG (PLX)...................................................n............................485 10 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty Budowanie potoku 3D ...................................................n...................................................n...491 Ogólne funkcje przekształcające ...................................................n................................491 Przekształcenie współrzędnych lokalnych na współrzędne świata 3D .........................497 Eulerowski model kamery ...................................................n..........................................500 Model kamery UVN ...................................................n...................................................n503 Przekształcenie współrzędnych świata na współrzędne kamery...................................515 Usuwanie obiektów ...................................................n...................................................n.519 Usuwanie ścian zwróconych tyłem ...................................................n............................523 Przekształcenie współrzędnych kamery na współrzędne perspektywy.........................526 Przekształcenie współrzędnych perspektywy na współrzędne ekranowe .....................530 Połączone przekształcenie do współrzędnych perspektywy i współrzędnych ekranowych...................................................n...................................535 Renderowanie świata 3D ...................................................n..................................................538 Rzut oka na potok 3D ...................................................n.................................................538 Programy demonstracyjne 3D ...................................................n..........................................542 Pojedynczy trójkąt 3D — DEMOII7_1.CPP|EXE ...................................................n.....542 Szkielet sześcianu 3D — DEMOII7_2.CPP|EXE...................................................n......545 Szkielet sześcianu 3D z usuwaniem ścian zwróconych tyłem — DEMOII7_3.CPP|EXE...................................................n........................................548 Czołg 3D — DEMOII7_4.CPP|EXE...................................................n..........................550 Czołgi 3D i latająca kamera — DEMOII7_5.CPP|EXE ...............................................553 Wycieczka po świecie gry à la Battle Zone — DEMOII7_6.CPP|EXE........................554 Podsumowanie ...................................................n...................................................n...............559 úħè+++ 2QFUVCY[TGPFGTQYCPKC  4QFKCđ /QFGNQYCPKGDT[đKRTQUVGQħYKGVNGPKG   Proste modele oświetlenia w grafice komputerowej ...................................................n........564 Modele kolorów i materiały ...................................................n.......................................566 Typy świateł ...................................................n...................................................n............574 Oświetlanie i rasteryzacja trójkątów...................................................n.................................582 Przygotowania do implementacji oświetlenia ...................................................n............586 Definiowanie materiałów ...................................................n...........................................587 Definiowanie świateł ...................................................n..................................................591 Cieniowanie w praktyce...................................................n...................................................n.596 Cieniowanie w trybie 16-bitowym ...................................................n.............................596 Cieniowanie w trybie 8-bitowym ...................................................n...............................597 Sprawny model RGB w trybach 8-bitowych...................................................n..............597 Model z uproszczonym natężeniem dla trybów 8-bitowych .........................................601 Cieniowanie jednorodne ...................................................n.............................................605 Cieniowanie płaskie...................................................n...................................................n.607 Cieniowanie płaskie w trybie 8-bitowym...................................................n...................622 Wstęp do cieniowania Gourauda...................................................n................................624 Wstęp do cieniowania Phonga...................................................n....................................626 Sortowanie względem głębokości i algorytm malarza ...................................................n.....627 Praca z nowymi formatami plików...................................................n...................................632 Klasa parsera......................................n...................................................n.........................632 Interpretacja funkcji pomocniczych ...................................................n...........................635 Format ASCII programu 3D Studio Max (.ASC)...................................................n.......638 Format ASCII programu trueSpace (.COB) ...................................................n...............641 Przegląd formatu binarnego .MD2 z gry Quake II...................................................n.....650 Przegląd narzędzi do modelowania 3D ...................................................n............................651 Podsumowanie ...................................................n...................................................n...............654 Spis treści 11 4QFKCđ +PVGTRQNCE[LPGVGEJPKMKEKGPKQYCPKCKCHKPKEPGOCRQYCPKGVGMUVWT  Nowe funkcje silnika T3D...................................................n................................................655 Ulepszanie struktur danych i budowy silnika T3D...................................................n...........657 Nowe definicje...................................................n...................................................n.........657 Nowe struktury matematyczne ...................................................n...................................660 Makra pomocnicze ...................................................n...................................................n..661 Dodatkowe elementy umożliwiające reprezentację danych siatki 3D ..........................662 Aktualizacja struktur obiektów i listy renderowania...................................................n..668 Przegląd funkcji i prototypów ...................................................n....................................672 Nowe wersje procedur ładujących obiekty...................................................n.......................680 Aktualizacja starego dobrego czytnika .PLG (.PLX) ...................................................n.680 Aktualizacja czytnika formatu .ASC z 3D Studio Max.................................................691 Aktualizacja czytnika .COB firmy Caligari ...................................................n...............692 Powtórka z rasteryzacji wielokątów ...................................................n.................................697 Rasteryzacja trójkąta...................................................n...................................................n697 Konwencja wypełniania ...................................................n.............................................702 Przycinanie ...................................................n...................................................n..............704 Nowe funkcje kreślące trójkąty ...................................................n..................................706 Zabiegi optymalizacyjne...................................................n.............................................710 Implementacja cieniowania Gourauda...................................................n..............................712 Cieniowanie Gourauda bez oświetlenia ...................................................n.....................713 Uzupełnianie procedury cieniowania Gourauda o oświetlanie wierzchołków..............723 Podstawy teorii próbkowania...................................................n............................................732 Próbkowanie w jednym wymiarze ...................................................n.............................733 Interpolacja dwuliniowa ...................................................n.............................................735 Interpolacja u i v ...................................................n...................................................n......737 Implementacja afinicznego mapowania tekstur ...................................................n.........739 Uwzględnienie tekstur w module oświetlenia i rasteryzacji................................................742 Dodawanie oświetlenia do funkcji renderującej tekstury w trybie 16-bitowym ...........742 Podsumowanie strategii optymalizacyjnych dla trybów 8- i 16-bitowych..........................748 Tabele wyszukiwania ...................................................n.................................................748 Spójność wierzchołków siatki ...................................................n....................................749 Buforowanie ...................................................n...................................................n............749 Instrukcje SIMD ...................................................n...................................................n......749 Programy demonstracyjne ...................................................n................................................750 Raiders 3D II ...................................................n...................................................n...........751 Podsumowanie ...................................................n...................................................n...............754 4QFKCđ 2T[EKPCPKGUEGP   Przycinanie scen 3D — wprowadzenie ...................................................n............................755 Przycinanie w przestrzeni obiektu...................................................n..............................755 Przycinanie w obszarze obrazu sceny ...................................................n........................759 Omówienie algorytmów przycinania...................................................n................................760 Przycinanie — podstawy ...................................................n............................................761 Algorytm Cohena-Sutherlanda ...................................................n...................................766 Algorytm Cyrusa-Becka (Lianga-Barskiego)...................................................n.............768 Algorytm Weilera-Athertona...................................................n......................................771 Przycinanie — dodatkowe źródła informacji ...................................................n.............774 Przycinanie do ostrosłupa widzenia — przykład implementacji.........................................775 Potok przekształceń geometrycznych i nowe struktury danych....................................776 Dodawanie przycinania do silnika graficznego...................................................n..........777 Zabawa w terenie ...................................................n...................................................n...........799 Funkcja generowania terenu...................................................n.......................................800 Generowanie mapy wysokości ...................................................n...................................809 Rajd łazikiem terenowym...................................................n...........................................810 Podsumowanie ...................................................n...................................................n...............814 12 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty 4QFKCđ $WHQTQYCPKGQFNGIđQħEKCYKFQEPQħèRQYKGTEJPK  Bufory odległości i identyfikowanie widocznych powierzchni — wprowadzenie .............815 Bufor Z...................................................n...................................................n...........................818 Trudności implementacji bufora Z ...................................................n.............................820 Przykład buforowania odległości ...................................................n...............................820 Obliczanie wartości Z piksela z równania płaszczyzny ................................................822 Interpolacja współrzędnej Z ...................................................n.......................................824 Problemy buforowania Z i buforowanie odwrotności Z ...............................................826 Przykładowa interpolacja Z i odwrotności Z...................................................n..............827 Tworzenie systemu z buforem głębokości...................................................n........................830 Dodawanie obsługi bufora Z do funkcji rasteryzacji...................................................n..833 Optymalizacje bufora odległości ...................................................n......................................845 Oszczędzanie pamięci...................................................n.................................................846 Rzadsze czyszczenie bufora ...................................................n.......................................846 Buforowanie mieszane ...................................................n...............................................848 Bufory odległości — problemy ...................................................n........................................849 Programy demonstrujące działanie buforów Z...................................................n.................849 Program 1.: Obrazowanie zawartości bufora Z ...................................................n..........849 Program 2.: Wodny rajd ...................................................n.............................................851 Podsumowanie ...................................................n...................................................n...............857 úħè+8 CCYCPUQYCPGVGEJPKMKTGPFGTQYCPKC  4QFKCđ CCYCPUQYCPGOGVQF[VGMUVWTQYCPKC   Teksturowanie — podejście drugie ...................................................n..................................861 Nowe struktury w pliku nagłówkowym ...................................................n.....................862 Podstawa funkcji rasteryzacji ...................................................n...........................................869 Przyjęcie formatu stałoprzecinkowego...................................................n.......................870 Nowe funkcje rasteryzacji bez buforowania Z ...................................................n...........870 Nowe funkcje rasteryzacji z buforowaniem Z...................................................n............873 Teksturowanie z cieniowaniem Gourauda...................................................n........................875 Przezroczystość i łączenie alfa ...................................................n.........................................882 Łączenie alfa z wykorzystaniem tablic przeglądowych ................................................883 Niezależne definiowanie łączenia alfa dla poszczególnych obiektów ..........................895 Łączenie alfa w module generowania terenu ...................................................n.............901 Teksturowanie z korektą perspektywiczną i buforowanie odwrotności Z...........................904 Matematyczne podstawy teksturowania z korektą perspektywiczną ............................905 Dodawanie do rasteryzatorów buforowania odwrotności Z..........................................913 Implementacja teksturowania poprawnego perspektywicznie ......................................921 Implementacja teksturowania częściowo poprawnego perspektywicznie.....................925 Aproksymacja kwadratowa w teksturowaniu perspektywicznym.................................931 Optymalizacja teksturowania — teksturowanie hybrydowe .........................................936 Dwuliniowe filtrowanie tekstur ...................................................n........................................938 Filtrowanie trzyliniowe tekstur i mipmapowanie ...................................................n.............943 Wprowadzenie do analizy Fouriera i efektu aliasingu ..................................................944 Tworzenie szeregu tekstur mipmapowania ...................................................n................949 Wybór poziomu teksturowania mip ...................................................n...........................958 Filtrowanie trzyliniowe...................................................n...............................................964 Wyświetlanie i teksturowanie wieloprzebiegowe...................................................n.............965 Zaawansowane teksturowanie w jednym wywołaniu...................................................n.......966 Nowy kontekst renderowania ...................................................n.....................................967 Wypełnianie struktury kontekstu renderowania ...................................................n.........969 Funkcja zbiorcza rasteryzacji ...................................................n.....................................971 Podsumowanie ...................................................n...................................................n...............979 4QFKCđ 2QFKCđRTGUVTGPP[KCNIQT[VO[QMTGħNCPKCYKFQEPQħEK   Nowy moduł silnika graficznego...................................................n......................................981 Podział przestrzenny i określanie widoczności powierzchni — wprowadzenie .................982 Binarny podział przestrzeni (BSP) ...................................................n...................................986 Spis treści 13 Binarny podział przestrzenny płaszczyznami równoległymni do osi układu współrzędnych...................................................n...................................988 Binarny podział przestrzenny płaszczyznami arbitralnymi...........................................988 Binarny podział przestrzenny płaszczyznami wyznaczanynmi przez płaszczyzny wielokątów...................................................n.................................989 Wyświetlanie (odwiedzanie) węzłów drzewa BSP ...................................................n....993 Struktury danych i funkcje obsługujące drzewa BSP...................................................n.995 Tworzenie drzewa BSP ...................................................n..............................................997 Strategie podziału ...................................................n...................................................n..1001 Przeglądanie i wyświetlanie węzłów drzewa BSP ...................................................n...1010 Wpasowanie drzew BSP do potoku renderowania...................................................n...1019 Edytor poziomu wykorzystujący drzewa BSP ...................................................n.........1021 Ograniczenia drzew BSP ...................................................n..........................................1032 Minimalizacja nadmiarowości odrysowywania z wykorzystaniem drzew BSP .........1033 Wykorzystanie drzew BSP do redukowania sceny ...................................................n..1035 Wykorzystanie drzew BSP do wykrywania kolizji ...................................................n..1045 Integracja drzew BSP ze standardowymi funkcjami rasteryzacji ...............................1045 Zbiory powierzchni potencjalnie widocznych...................................................n................1052 Zastosowania zbiorów PVS...................................................n......................................1053 Możliwe sposoby kodowania zbiorów potencjalnej widoczności...............................1055 Wyznaczanie zbiorów PVS ...................................................n......................................1057 Portale ...................................................n...................................................n..........................1059 Hierarchie brył otaczających i drzewa oktalne ...................................................n...............1063 Sposób użycia drzewa hierarchii BHV...................................................n.....................1065 Wydajność w czasie rzeczywistym ...................................................n..........................1065 Strategie budowy hierarchii BHV ...................................................n............................1067 Implementacja hierarchii BHV...................................................n.................................1069 Drzewa oktalne ...................................................n...................................................n......1076 Eliminowanie powierzchni zasłoniętych ...................................................n........................1078 Bryły zasłaniające...................................................n...................................................n..1079 Wybór obiektów zasłaniających...................................................n...............................1080 Hybrydowa metoda wyboru obiektów zasłaniających ................................................1081 Podsumowanie ...................................................n...................................................n.............1081 4QFKCđ KGPKGQħYKGVNGPKGKUGMTGV[KF   Nowy moduł silnika gry ...................................................n.................................................1083 Wprowadzenie i plan gry...................................................n................................................1083 Uproszczone zasady fizyki cieni...................................................n.....................................1084 Droga fotonów i wyliczanie intensywności światła ...................................................n.1085 Symulowanie cieni za pomocą rzutowanych obrazów i billboardów................................1088 Implementowanie rasteryzatorów z obsługą przezroczystości....................................1090 Nowa biblioteka...................................................n...................................................n.....1092 Proste cienie...................................................n...................................................n...........1094 Skalowanie cieni...................................................n...................................................n....1096 Śledzenie położenia źródła światła...................................................n...........................1100 Końcowe uwagi na temat tworzenia symulowanych cieni..........................................1105 Tworzenie cieni poprzez rzutowanie na płaszczyznę siatki obiektu .................................1105 Wzory przekształceń wektorowych dla potrzeb rzutowania .......................................1106 Optymalizowanie cieni rzutowanych na płaszczyznę .................................................1110 14 Triki najlepszych programistów gier 3D. Vademecum profesjonalisty Wprowadzenie do mapowania oświetlenia i przechowywannia powierzchni w pamięci podręcznej ...................................................n..................................................1110 Przechowywanie powierzchni w pamięci podręcznej .................................................1113 Generowanie map oświetlenia...................................................n..................................1114 Implementowanie mapera oświetlenia ...................................................n.....................1115 Mapowanie ciemności ...................................................n..............................................1118 Efekty specjalne z użyciem map oświetlenia ...................................................n...........1120 Optymalizowanie kodu mapowania oświetlenia ...................................................n......1120 Łącząc wszystko w jedną całość...................................................n.....................................1121 Podsumowanie ...................................................n...................................................n.............1121 úħè8 CCYCPUQYCPGRTQDNGO[CPKOCELK OQFGNQYCPKGLCYKUMHK[EP[EJKQRV[OCNKCELC  4QFKCđ #PKOQYCPKGRQUVCEKRTQITCOQYCPKGTWEJWKY[MT[YCPKGMQNKLK  Nowy moduł silnika gry ...................................................n.................................................1125 Wprowadzenie do animacji trójwymiarowej...................................................n..................1126 Format .MD2 stosowany w grze Quake II...................................................n......................1126 Nagłówek pliku .MD2 ...................................................n..............................................1129 Ładowanie plików .MD2 gry Quake II ...................................................n....................1138 Animowanie plików .MD2 ...................................................n.......................................1147 Proste zasady animacji bez modeli bohaterów ...................................................n...............1158 Rotacja w ruchu i ruch w wyniku translacji ...................................................n.............1158 Złożone ruchy parametryczne i ruch po krzywej ...................................................n.....1161 Wykorzystywanie skryptów do programowania ruchu ...............................................1162 Wykrywanie kolizji w przestrzeni trójwymiarowej...................................................n........1164 Ograniczające sfery i walce...................................................n......................................1165 Wykorzystywanie struktur danych do przyśpieszania wykrywania kolizji.................1166 Poruszanie się po powierzchni terenu ...................................................n......................1167 Podsumowanie ...................................................n...................................................n.............1168 4QFKCđ 6GEJPKMKQRV[OCNKCELKMQFW   Wprowadzenie do technik optymalizacyjnych ...................................................n...............1169 Profilowanie kodu za pomocą kompilatora Microsoft Visualn C++ i programu VTune Intela ...................................................n.............................................1170 Profilowanie przy pomocy kompilatora Visual C++...................................................n1171 Analizowanie danych profilowania ...................................................n..........................1173 Optymalizowanie kodu za pomocą programu VTune.................................................1174 Korzystanie z kompilatora C++ firmy Intel...................................................n....................1182 Ściąganie kompilatora optymalizacyjnego Intela...................................................n.....1182 Korzystanie z kompilatora...................................................n........................................1183 Korzystanie z opcji optymalizacyjnych kompilatora ..................................................1184 Ręczne wybieranie różnych kompilatorów dla różnych plików źródłowych..............1185 Strategie optymalizacyjne...................................................n.........................................1185 Przykład programowania instrukcji SIMD w mechanizmie SSE......................................1185 Podstawy architektury SIMD ...................................................n...................................1187 Jak naprawdę wygląda korzystanie z instrukcji SIMD ...............................................1188 Klasa wektorów trójwymiarowych przystosowana do instrukcji SIMD.....................1199 Kilka podstawowych trików optymalizacyjnych...................................................n............1205 Trik 1. Pozbywanie się funkcji _ftol()...................................................n......................1205 Trik 2. Ustawianie słowa kontrolującego FPU...................................................n.........1206 Trik 3. Szybkie zerowanie liczb zmiennoprzecinkowych ...........................................1207 Trik 4. Szybkie wyciąganie pierwiastków kwadratowych ..........................................1207 Trik 5. Uproszczone wyliczanie arcustangens ...................................................n.........1207 Spis treści 15 Trik 6: Zwiększanie wartości wskaźnika...................................................n..................1208 Trik 7. Wyjmowanie instrukcji if z pętli ...................................................n..................1209 Trik 8. Rozgałęzianie potoków instrukcji...................................................n.................1209 Trik 9. Wyrównywanie danych ...................................................n................................1210 Trik 10. Wywoływanie wszystkich krótkich funkcji w miejscu .................................1210 Literatura...................................................n...................................................n......................1210 Podsumowanie ...................................................n...................................................n.............1210 QFCVMK T QFCVGM# CYCTVQħè 41/W  QFCVGM$ +PUVCNQYCPKG KTGEV:KMQT[UVCPKGMQORKNCVQTC8KUWCN    Instalowanie DirectX ...................................................n...................................................n...1215 Korzystanie z kompilatora Visual C/C++...................................................n.......................1216 Kilka praktycznych porad związanych z kompilacją..................................................n.......1216 QFCVGM  6T[IQPQOGVTKCKYGMVQT[  Trygonometria ...................................................n...................................................n.............1219 Wektory ...................................................n...................................................n.......................1222 Długość wektora ...................................................n...................................................n....1223 Normalizacja...................................................n...................................................n..........1223 Mnożenie wektora przez skalar ............................
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Triki najlepszych programistów gier 3D. Vademecum profesjonalisty
Autor:

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ą: