reklama - zainteresowany?

Triki najlepszych programistów gier 3D. Vademecum profesjonalisty - Helion

Triki najlepszych programistów gier 3D. Vademecum profesjonalisty
Autor: Andre LaMothe
Tytuł oryginału: Tricks of the 3D Game Programming Gurus
Tłumaczenie: Adam Bochenek (wstęp, rozdz. 1 - 3), Jarosław Dobrzański (rozdz. 6 - 9), Przemysław Szeremiota (rozdz. 4 - 5, 10 - 13), Sławomir Dzieniszewski (rozdz. 14 - 16, dod. A - F)
ISBN: 83-7361-267-X
stron: 1312, Format: B5, okładka: twarda
Data wydania: 2004-04-08
Księgarnia: Helion

Cena książki: 149,00 zł

Dodaj do koszyka Triki najlepszych programistów gier 3D. Vademecum profesjonalisty

Tagi: Programowanie gier

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.

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...]

Dodaj do koszyka Triki najlepszych programistów gier 3D. Vademecum profesjonalisty

 

Osoby które kupowały "Triki najlepszych programistów gier 3D. Vademecum profesjonalisty", wybierały także:

  • Tworzenie gier w języku HTML5 dla profesjonalistów. Wydanie II
  • Baw się kodem! Twoja własna gra. CoderDojo Nano
  • Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame
  • Gry Unity i Facebook. Efektywna integracja, budowanie zasięgu i popularności. Kurs video
  • Unity. Kurs video. Poziom pierwszy. Tworzenie gier komputerowych 3D

Dodaj do koszyka Triki najlepszych programistów gier 3D. Vademecum profesjonalisty

Spis treści

Triki najlepszych programistów gier 3D. Vademecum profesjonalisty -- spis treści

O Autorze (17)

Przedmowa (19)

Wstęp (21)

Część I Wprowadzenie do programowania gier 3D (25)

Rozdział 1. Wstęp do programowania gier 3D (27)

  • Wprowadzenie (27)
  • Elementy gier 2D/3D (29)
  • Ogólne wskazówki dotyczące programowania gier (33)
  • Narzędzia (36)
    • Edytor poziomów 3D (39)
    • Przygotowanie kompilatora (40)
  • Przykładowa gra 3D: Raiders 3D (43)
    • Pętla obsługi zdarzeń (62)
    • Logika gry 3D (62)
    • Rzutowanie 3D (64)
    • Gwiezdne tło (66)
    • Działo laserowe i wykrywanie kolizji (66)
    • Eksplozja (66)
    • Zasady gry (67)
  • Podsumowanie (67)

Rozdział 2. Krótki kurs programowania w Windows i DirectX (69)

  • Model programowania Win32 (69)
  • Programowanie w Windows - absolutne minimum (70)
    • Wszystko zaczyna się od WinMain() (70)
  • Wzorcowa aplikacja Windows (75)
    • Klasa okna (76)
    • Rejestracja klasy okna (80)
    • Tworzenie okna (80)
    • Obsługa zdarzeń (82)
    • Pętla obsługi komunikatów (87)
    • Pętla obsługi komunikatów pracująca w czasie rzeczywistym (90)
  • DirectX i COM w pigułce (91)
    • HEL i HAL (93)
    • Komponenty DirectX (94)
  • Wprowadzenie do COM (95)
    • Co to jest obiekt COM? (96)
    • Tworzenie i używanie interfejsów COM biblioteki DirectX (98)
    • Dostęp do interfejsów (98)
  • Podsumowanie (100)

Rozdział 3. Abstrakcyjny komputer 3D (101)

  • Założenia interfejsu abstrakcyjnego komputera (101)
  • Budujemy abstrakcyjny komputer (103)
    • System video, bufor ramki (103)
    • Praca z kolorami (106)
    • Kopiowanie bufora (108)
    • Kompletny system graficzny abstrakcyjnego komputera (110)
    • Dźwięk, muzyka, urządzenia wejścia (110)
  • Konsola do gier T3DLIB (111)
    • Podstawowa konsola do gier (111)
  • Biblioteka T3DLIB (116)
    • Architektura modułu graficznego (117)
    • Podstawowe definicje (117)
    • Makra (119)
    • Typy danych, struktury (119)
    • Funkcje (122)
    • Globalna dominacja (125)
    • Interfejs DirectDraw (126)
    • Funkcje operujące na figurach 2D (130)
    • Funkcje matematyczne i obsługa błędów (136)
    • Mapy bitowe (138)
    • Obsługa palety w trybie 8-bitowym (142)
    • Funkcje pomocnicze (145)
    • Obiekty BOB (146)
  • T3DLIB2 - moduł obsługi urządzeń wejścia (154)
  • T3DLIB3 - biblioteka obsługi dźwięku i muzyki (159)
    • Definicje (160)
    • Typy (160)
    • Zmienne globalne (161)
    • DirectSound API (161)
    • DirectMusic API (166)
  • Ostateczna postać konsoli T3D (168)
    • Przypisanie funkcji graficznych abstrakcyjnemu modelowi (168)
    • Konsola T3DLIB (171)
  • Przykładowe aplikacje (179)
    • Aplikacje okienkowe (179)
    • Aplikacje pełnoekranowe (180)
    • Dźwięk i muzyka (181)
    • Klawiatura, myszka, joystick (181)
  • Podsumowanie (184)

Część II Obliczenia i transformacje w trzech wymiarach (185)

Rozdział 4. Trygonometria, wektory, macierze i kwaterniony - cała ta matematyka (187)

  • Notacje matematyczne (187)
  • Dwuwymiarowe układy współrzędnych (188)
    • Dwuwymiarowy układ współrzędnych kartezjańskich (189)
    • Dwuwymiarowy układ współrzędnych biegunowych (190)
  • Trójwymiarowe układy współrzędnych (193)
    • Trójwymiarowe współrzędne kartezjańskie (193)
  • Trójwymiarowe współrzędne cylindryczne (196)
    • Konwersja trójwymiarowych współrzędnych kartezjańskich do współrzędnych cylindrycznych (196)
  • Trójwymiarowe współrzędne sferyczne (197)
  • Podstawy trygonometrii (198)
    • Trójkąt prostokątny (199)
    • Odwrotne funkcje trygonometryczne (200)
    • Zależności trygonometryczne (201)
  • Wektory (202)
    • Długość wektora (203)
    • Normalizacja (204)
    • Mnożenie wektora przez wartości skalarne (204)
    • Dodawanie wektorów (205)
    • Odejmowanie wektorów (206)
    • Iloczyn skalarny wektorów (206)
    • Iloczyn wektorowy (209)
    • Wektor zerowy (211)
    • Wektory położenia i wektory przemieszczenia (211)
    • Wektory jako kombinacje liniowe składowych (211)
  • Macierze i algebra liniowa (212)
    • Macierz jednostkowa (214)
    • Dodawanie macierzy (214)
    • Transpozycja macierzy (215)
    • Mnożenie macierzy (215)
    • Reguły mnożenia macierzy (217)
  • Wyznaczanie macierzy odwrotnej i rozwiązywanie układów równań (217)
    • Reguła Cramera (219)
    • Przekształcenia geometryczne z wykorzystaniem macierzy (221)
    • Współrzędne jednorodne (222)
    • Przekształcenia macierzowe (223)
  • Podstawowe obiekty geometryczne (230)
    • Punkty (230)
    • Proste (230)
    • Proste w przestrzeni trójwymiarowej (232)
    • Płaszczyzny (234)
  • Równania parametryczne (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 (241)
  • Kwaterniony - wprowadzenie (246)
    • Teoria liczb zespolonych (247)
    • Rozszerzenie liczb zespolonych (252)
    • Zastosowania kwaternionów (257)
  • Wstęp do analizy matematycznej (261)
    • Pojęcie nieskończoności (261)
    • Granice (263)
    • Sumy i szeregi liczbowe skończone (264)
    • Szeregi liczbowe nieskończone (266)
    • Pochodne (267)
    • Całki (274)
  • Podsumowanie (279)

Rozdział 5. Implementacja modułu matematycznego (281)

  • Moduł matematyczny - przegląd (282)
    • Struktura plików modułu matematycznego (282)
    • Konwencja nazewnicza (282)
    • Obsługa błędów (283)
    • Słowo na temat języka C++ (284)
  • Struktury i typy danych (284)
    • Wektory i punkty (284)
    • Równania parametryczne prostych (286)
    • Płaszczyzny w przestrzeni trójwymiarowej (287)
    • Macierze (287)
    • Kwaterniony (290)
    • Obsługa współrzędnych niekartezjańskich (291)
    • Dwuwymiarowy układ współrzędnych biegunowych (292)
    • Trójwymiarowy układ współrzędnych cylindrycznych (293)
    • Trójwymiarowy układ współrzędnych sferycznych (293)
    • Liczby stałoprzecinkowe (294)
  • Stałe matematyczne (295)
  • Makrodefinicje i funkcje rozwijane w miejscu wywołania (297)
    • Funkcje użytkowe i funkcje konwersji (301)
    • Funkcje manipulujące punktami i wektorami (301)
    • Macierze (302)
    • Kwaterniony (304)
    • Obliczenia stałoprzecinkowe (304)
  • Prototypy (305)
  • Zmienne globalne (308)
  • Interfejs programowy modułu matematycznego (308)
    • Funkcje trygonometryczne (309)
    • Funkcje obsługi różnych układów współrzędnych (310)
    • Funkcje obsługi wektorów (313)
    • Funkcje operujące na macierzach (321)
    • Funkcje operujące parametryczną reprezentacją prostych na płaszczyźnie i w przestrzeni trójwymiarowej (333)
    • Funkcje obsługi płaszczyzn trójwymiarowych (337)
    • Funkcje obsługi kwaternionów (341)
    • Funkcje obliczeń stałoprzecinkowych (350)
    • Funkcje rozwiązujące równania macierzowe (355)
  • Elementarz arytmetyki zmiennoprzecinkowej z wykorzystaniem koprocesora (357)
    • Architektura jednostki zmiennoprzecinkowej (358)
    • Stos jednostki zmiennoprzecinkowej (359)
    • Zestaw instrukcji jednostki FPU (361)
    • Klasyczny tryb adresowania operandów (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 (366)
    • Instrukcje FLD (366)
    • Instrukcje FST (367)
    • Instrukcje FADD (368)
    • Instrukcje FSUB (371)
    • Instrukcje FMUL (372)
    • Instrukcje FDIV (373)
  • Stosowanie modułu matematycznego - uwagi (374)
    • Nowy szablon aplikacji (375)
  • Słowo o optymalizacji modułu (375)
  • Podsumowanie (376)

Rozdział 6. Wprowadzenie do grafiki 3D (377)

  • Filozofia silnika 3D (377)
  • Struktura silnika gry 3D (378)
    • Silnik 3D (378)
    • Silnik gry (379)
    • System sterowania grą i gry sieciowej (379)
    • System animacji (379)
    • Wykrywanie kolizji i system nawigacji (384)
    • Moduł fizyki (384)
    • System sztucznej inteligencji (386)
    • Baza modeli 3D i grafiki (387)
  • Układy współrzędnych trójwymiarowych (388)
    • Współrzędne modelu (lokalne) (389)
    • Współrzędne świata gry (392)
    • Współrzędne kamery (396)
    • Ostateczna reprezentacja świata 3D za pomocą współrzędnych kamery (404)
    • Usuwanie ukrytych obiektów (powierzchni) i przycinanie (405)
    • Współrzędne perspektywy (411)
    • Zakończenie potoku - współrzędne ekranowe (422)
  • Podstawowe struktury danych 3D (430)
    • Reprezentacje danych opisujących wielokąty w grafice 3D (431)
    • Definiowanie wielokątów (433)
    • Definiowanie obiektów (439)
    • Reprezentowanie światów (443)
  • Narzędzia 3D (443)
    • Animacja i dane o ruchu (445)
  • Ładowanie danych ze źródeł zewnętrznych (446)
    • Pliki PLG (446)
    • Pliki NFF (449)
    • Pliki 3D Studio (452)
    • Pliki COB firmy Caligari (459)
    • Pliki .X Microsoft DirectX (461)
    • Formaty plików 3D - podsumowanie (461)
  • Proste przekształcenia i animacja (462)
    • Przesunięcie w przestrzeni (462)
    • Obrót w przestrzeni (463)
    • Zmiana kształtu (465)
  • Podsumowanie potoku 3D (466)
  • Typy silników 3D (467)
    • Silniki przestrzeni kosmicznej (468)
    • Silniki terenu (468)
    • Silniki pomieszczeń zamkniętych (470)
    • Ray casting i silniki wokselowe (471)
    • Silniki hybrydowe (472)
  • Integracja całości w ostateczną postać silnika (472)
  • Podsumowanie (473)

Rozdział 7. Renderowanie światów szkieletowych w 3D (475)

  • Ogólna architektura silnika szkieletowego (475)
    • Struktury danych i potok 3D (476)
    • Główna lista wielokątów (479)
    • Nowe moduły programowe (482)
  • Piszemy program ładujący pliki 3D (482)
    • Program ładujący pliki PLG (PLX) (485)
  • Budowanie potoku 3D (491)
    • Ogólne funkcje przekształcające (491)
    • Przekształcenie współrzędnych lokalnych na współrzędne świata 3D (497)
    • Eulerowski model kamery (500)
    • Model kamery UVN (503)
    • Przekształcenie współrzędnych świata na współrzędne kamery (515)
    • Usuwanie obiektów (519)
    • Usuwanie ścian zwróconych tyłem (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 (535)
  • Renderowanie świata 3D (538)
    • Rzut oka na potok 3D (538)
  • Programy demonstracyjne 3D (542)
    • Pojedynczy trójkąt 3D - DEMOII7_1.CPP|EXE (542)
    • Szkielet sześcianu 3D - DEMOII7_2.CPP|EXE (545)
    • Szkielet sześcianu 3D z usuwaniem ścian zwróconych tyłem - DEMOII7_3.CPP|EXE (548)
    • Czołg 3D - DEMOII7_4.CPP|EXE (550)
    • Czołgi 3D i latająca kamera - DEMOII7_5.CPP|EXE (553)
    • Wycieczka po świecie gry a la Battle Zone - DEMOII7_6.CPP|EXE (554)
  • Podsumowanie (559)

Część III Podstawy renderowania 3D (561)

Rozdział 8. Modelowanie brył i proste oświetlenie (563)

  • Proste modele oświetlenia w grafice komputerowej (564)
    • Modele kolorów i materiały (566)
    • Typy świateł (574)
  • Oświetlanie i rasteryzacja trójkątów (582)
    • Przygotowania do implementacji oświetlenia (586)
    • Definiowanie materiałów (587)
    • Definiowanie świateł (591)
  • Cieniowanie w praktyce (596)
    • Cieniowanie w trybie 16-bitowym (596)
    • Cieniowanie w trybie 8-bitowym (597)
    • Sprawny model RGB w trybach 8-bitowych (597)
    • Model z uproszczonym natężeniem dla trybów 8-bitowych (601)
    • Cieniowanie jednorodne (605)
    • Cieniowanie płaskie (607)
    • Cieniowanie płaskie w trybie 8-bitowym (622)
    • Wstęp do cieniowania Gourauda (624)
    • Wstęp do cieniowania Phonga (626)
  • Sortowanie względem głębokości i algorytm malarza (627)
  • Praca z nowymi formatami plików (632)
    • Klasa parsera (632)
    • Interpretacja funkcji pomocniczych (635)
    • Format ASCII programu 3D Studio Max (.ASC) (638)
    • Format ASCII programu trueSpace (.COB) (641)
    • Przegląd formatu binarnego .MD2 z gry Quake II (650)
  • Przegląd narzędzi do modelowania 3D (651)
  • Podsumowanie (654)

Rozdział 9. Interpolacyjne techniki cieniowania i afiniczne mapowanie tekstur (655)

  • Nowe funkcje silnika T3D (655)
  • Ulepszanie struktur danych i budowy silnika T3D (657)
    • Nowe definicje (657)
    • Nowe struktury matematyczne (660)
    • Makra pomocnicze (661)
    • Dodatkowe elementy umożliwiające reprezentację danych siatki 3D (662)
    • Aktualizacja struktur obiektów i listy renderowania (668)
    • Przegląd funkcji i prototypów (672)
  • Nowe wersje procedur ładujących obiekty (680)
    • Aktualizacja starego dobrego czytnika .PLG (.PLX) (680)
    • Aktualizacja czytnika formatu .ASC z 3D Studio Max (691)
    • Aktualizacja czytnika .COB firmy Caligari (692)
  • Powtórka z rasteryzacji wielokątów (697)
    • Rasteryzacja trójkąta (697)
    • Konwencja wypełniania (702)
    • Przycinanie (704)
    • Nowe funkcje kreślące trójkąty (706)
    • Zabiegi optymalizacyjne (710)
  • Implementacja cieniowania Gourauda (712)
    • Cieniowanie Gourauda bez oświetlenia (713)
    • Uzupełnianie procedury cieniowania Gourauda o oświetlanie wierzchołków (723)
  • Podstawy teorii próbkowania (732)
    • Próbkowanie w jednym wymiarze (733)
    • Interpolacja dwuliniowa (735)
    • Interpolacja u i v (737)
    • Implementacja afinicznego mapowania tekstur (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 (748)
    • Spójność wierzchołków siatki (749)
    • Buforowanie (749)
    • Instrukcje SIMD (749)
  • Programy demonstracyjne (750)
    • Raiders 3D II (751)
  • Podsumowanie (754)

Rozdział 10. Przycinanie scen 3D (755)

  • Przycinanie scen 3D - wprowadzenie (755)
    • Przycinanie w przestrzeni obiektu (755)
    • Przycinanie w obszarze obrazu sceny (759)
  • Omówienie algorytmów przycinania (760)
    • Przycinanie - podstawy (761)
    • Algorytm Cohena-Sutherlanda (766)
    • Algorytm Cyrusa-Becka (Lianga-Barskiego) (768)
    • Algorytm Weilera-Athertona (771)
    • Przycinanie - dodatkowe źródła informacji (774)
  • Przycinanie do ostrosłupa widzenia - przykład implementacji (775)
    • Potok przekształceń geometrycznych i nowe struktury danych (776)
    • Dodawanie przycinania do silnika graficznego (777)
  • Zabawa w terenie (799)
    • Funkcja generowania terenu (800)
    • Generowanie mapy wysokości (809)
    • Rajd łazikiem terenowym (810)
  • Podsumowanie (814)

Rozdział 11. Buforowanie odległości a widoczność powierzchni (815)

  • Bufory odległości i identyfikowanie widocznych powierzchni - wprowadzenie (815)
  • Bufor Z (818)
    • Trudności implementacji bufora Z (820)
    • Przykład buforowania odległości (820)
    • Obliczanie wartości Z piksela z równania płaszczyzny (822)
    • Interpolacja współrzędnej Z (824)
    • Problemy buforowania Z i buforowanie odwrotności Z (826)
    • Przykładowa interpolacja Z i odwrotności Z (827)
  • Tworzenie systemu z buforem głębokości (830)
    • Dodawanie obsługi bufora Z do funkcji rasteryzacji (833)
  • Optymalizacje bufora odległości (845)
    • Oszczędzanie pamięci (846)
    • Rzadsze czyszczenie bufora (846)
    • Buforowanie mieszane (848)
  • Bufory odległości - problemy (849)
  • Programy demonstrujące działanie buforów Z (849)
    • Program 1.: Obrazowanie zawartości bufora Z (849)
    • Program 2.: Wodny rajd (851)
  • Podsumowanie (857)

Część IV Zaawansowane techniki renderowania 3D (859)

Rozdział 12. Zaawansowane metody teksturowania (861)

  • Teksturowanie - podejście drugie (861)
    • Nowe struktury w pliku nagłówkowym (862)
  • Podstawa funkcji rasteryzacji (869)
    • Przyjęcie formatu stałoprzecinkowego (870)
    • Nowe funkcje rasteryzacji bez buforowania Z (870)
    • Nowe funkcje rasteryzacji z buforowaniem Z (873)
  • Teksturowanie z cieniowaniem Gourauda (875)
  • Przezroczystość i łączenie alfa (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 (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 (938)
  • Filtrowanie trzyliniowe tekstur i mipmapowanie (943)
    • Wprowadzenie do analizy Fouriera i efektu aliasingu (944)
    • Tworzenie szeregu tekstur mipmapowania (949)
    • Wybór poziomu teksturowania mip (958)
    • Filtrowanie trzyliniowe (964)
  • Wyświetlanie i teksturowanie wieloprzebiegowe (965)
  • Zaawansowane teksturowanie w jednym wywołaniu (966)
    • Nowy kontekst renderowania (967)
    • Wypełnianie struktury kontekstu renderowania (969)
    • Funkcja zbiorcza rasteryzacji (971)
  • Podsumowanie (979)

Rozdział 13. Podział przestrzenny i algorytmy określania widoczności (981)

  • Nowy moduł silnika graficznego (981)
  • Podział przestrzenny i określanie widoczności powierzchni - wprowadzenie (982)
  • Binarny podział przestrzeni (BSP) (986)
    • Binarny podział przestrzenny płaszczyznami równoległymi do osi układu współrzędnych (988)
    • Binarny podział przestrzenny płaszczyznami arbitralnymi (988)
    • Binarny podział przestrzenny płaszczyznami wyznaczanymi przez płaszczyzny wielokątów (989)
    • Wyświetlanie (odwiedzanie) węzłów drzewa BSP (993)
    • Struktury danych i funkcje obsługujące drzewa BSP (995)
    • Tworzenie drzewa BSP (997)
    • Strategie podziału (1001)
    • Przeglądanie i wyświetlanie węzłów drzewa BSP (1010)
    • Wpasowanie drzew BSP do potoku renderowania (1019)
    • Edytor poziomu wykorzystujący drzewa BSP (1021)
    • Ograniczenia drzew BSP (1032)
    • Minimalizacja nadmiarowości odrysowywania z wykorzystaniem drzew BSP (1033)
    • Wykorzystanie drzew BSP do redukowania sceny (1035)
    • Wykorzystanie drzew BSP do wykrywania kolizji (1045)
    • Integracja drzew BSP ze standardowymi funkcjami rasteryzacji (1045)
  • Zbiory powierzchni potencjalnie widocznych (1052)
    • Zastosowania zbiorów PVS (1053)
    • Możliwe sposoby kodowania zbiorów potencjalnej widoczności (1055)
    • Wyznaczanie zbiorów PVS (1057)
  • Portale (1059)
  • Hierarchie brył otaczających i drzewa oktalne (1063)
    • Sposób użycia drzewa hierarchii BHV (1065)
    • Wydajność w czasie rzeczywistym (1065)
    • Strategie budowy hierarchii BHV (1067)
    • Implementacja hierarchii BHV (1069)
    • Drzewa oktalne (1076)
  • Eliminowanie powierzchni zasłoniętych (1078)
    • Bryły zasłaniające (1079)
    • Wybór obiektów zasłaniających (1080)
    • Hybrydowa metoda wyboru obiektów zasłaniających (1081)
  • Podsumowanie (1081)

Rozdział 14. Cienie, oświetlenie i sekrety id (1083)

  • Nowy moduł silnika gry (1083)
  • Wprowadzenie i plan gry (1083)
  • Uproszczone zasady fizyki cieni (1084)
    • Droga fotonów i wyliczanie intensywności światła (1085)
  • Symulowanie cieni za pomocą rzutowanych obrazów i billboardów (1088)
    • Implementowanie rasteryzatorów z obsługą przezroczystości (1090)
    • Nowa biblioteka (1092)
    • Proste cienie (1094)
    • Skalowanie cieni (1096)
    • Śledzenie położenia źródła światła (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)
  • Wprowadzenie do mapowania oświetlenia i przechowywania powierzchni w pamięci podręcznej (1110)
    • Przechowywanie powierzchni w pamięci podręcznej (1113)
    • Generowanie map oświetlenia (1114)
    • Implementowanie mapera oświetlenia (1115)
    • Mapowanie ciemności (1118)
    • Efekty specjalne z użyciem map oświetlenia (1120)
    • Optymalizowanie kodu mapowania oświetlenia (1120)
  • Łącząc wszystko w jedną całość (1121)
  • Podsumowanie (1121)

Część V Zaawansowane problemy animacji, modelowanie zjawisk fizycznych i optymalizacja (1123)

Rozdział 15. Animowanie postaci, programowanie ruchu i wykrywanie kolizji (1125)

  • Nowy moduł silnika gry (1125)
  • Wprowadzenie do animacji trójwymiarowej (1126)
  • Format .MD2 stosowany w grze Quake II (1126)
    • Nagłówek pliku .MD2 (1129)
    • Ładowanie plików .MD2 gry Quake II (1138)
    • Animowanie plików .MD2 (1147)
  • Proste zasady animacji bez modeli bohaterów (1158)
    • Rotacja w ruchu i ruch w wyniku translacji (1158)
    • Złożone ruchy parametryczne i ruch po krzywej (1161)
    • Wykorzystywanie skryptów do programowania ruchu (1162)
  • Wykrywanie kolizji w przestrzeni trójwymiarowej (1164)
    • Ograniczające sfery i walce (1165)
    • Wykorzystywanie struktur danych do przyśpieszania wykrywania kolizji (1166)
    • Poruszanie się po powierzchni terenu (1167)
  • Podsumowanie (1168)

Rozdział 16. Techniki optymalizacji kodu (1169)

  • Wprowadzenie do technik optymalizacyjnych (1169)
  • Profilowanie kodu za pomocą kompilatora Microsoft Visual C++ i programu VTune Intela (1170)
    • Profilowanie przy pomocy kompilatora Visual C++ (1171)
    • Analizowanie danych profilowania (1173)
    • Optymalizowanie kodu za pomocą programu VTune (1174)
  • Korzystanie z kompilatora C++ firmy Intel (1182)
    • Ściąganie kompilatora optymalizacyjnego Intela (1182)
    • Korzystanie z kompilatora (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 (1185)
  • Przykład programowania instrukcji SIMD w mechanizmie SSE (1185)
    • Podstawy architektury SIMD (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 (1205)
    • Trik 1. Pozbywanie się funkcji _ftol() (1205)
    • Trik 2. Ustawianie słowa kontrolującego FPU (1206)
    • Trik 3. Szybkie zerowanie liczb zmiennoprzecinkowych (1207)
    • Trik 4. Szybkie wyciąganie pierwiastków kwadratowych (1207)
    • Trik 5. Uproszczone wyliczanie arcustangens (1207)
    • Trik 6: Zwiększanie wartości wskaźnika (1208)
    • Trik 7. Wyjmowanie instrukcji if z pętli (1209)
    • Trik 8. Rozgałęzianie potoków instrukcji (1209)
    • Trik 9. Wyrównywanie danych (1210)
    • Trik 10. Wywoływanie wszystkich krótkich funkcji w miejscu (1210)
  • Literatura (1210)
  • Podsumowanie (1210)

Dodatki (1211)

Dodatek A Zawartość CD-ROM-u (1213)

Dodatek B Instalowanie DirectX i korzystanie z kompilatora Visual C/C++ (1215)

  • Instalowanie DirectX (1215)
  • Korzystanie z kompilatora Visual C/C++ (1216)
  • Kilka praktycznych porad związanych z kompilacją (1216)

Dodatek C Trygonometria i wektory (1219)

  • Trygonometria (1219)
  • Wektory (1222)
    • Długość wektora (1223)
    • Normalizacja (1223)
    • Mnożenie wektora przez skalar (1223)
    • Dodawanie wektorów (1224)
    • Odejmowanie wektorów (1225)
    • Iloczyn skalarny wektorów (1225)
    • Iloczyn wektorowy wektorów (1227)
    • Wektor zerowy (1228)
    • Wektory pozycji (1228)
    • Wektory jako liniowe kombinacje wektorów jednostkowych (1229)

Dodatek D Krótkie kompendium języka C++ (1231)

  • Czym język C++ różni się od C (1231)
  • Minimum tego co trzeba wiedzieć o C++ (1233)
  • Nowe typy, słowa kluczowe i konwencje (1234)
    • Komentarze (1234)
    • Stałe (1234)
    • Zmienne referencyjne (1234)
    • Tworzenie zmiennych w dowolnym miejscu kodu (1235)
  • Zarządzanie pamięcią (1236)
  • Strumienie wejścia i wyjścia (1236)
  • Klasy (1238)
    • Całkiem nowy typ struktur (1238)
    • Przykład prostej klasy (1239)
    • Publiczne a prywatne (1240)
    • Funkcje składowe klasy (metody) (1240)
    • Konstruktory i destruktory (1242)
    • Pisanie konstruktora (1243)
    • Pisanie destruktora (1244)
  • Operator ustalania zakresu (1246)
    • Pisanie funkcji składowych klasy poza zakresem klasy (1246)
  • Przeciążanie operatorów i funkcji (1247)
  • Podstawy korzystania z szablonów (1249)
  • Wprowadzenie do obsługi wyjątków (1250)
    • Komponenty składające się na obsługę wyjątków (1251)
  • Podsumowanie (1254)

Dodatek E Przydatne adresy internetowe (1255)

  • Witryny poświęcone programowaniu gier i nowinkom programistycznym (1255)
  • Witryny, z których można ściągać użyteczne materiały i programy (1256)
  • Silniki 2D i 3D (1256)
  • Książki poświęcone programowaniu gier komputerowych (1257)
  • Strony Microsoftu poświęcone interfejsowi DirectX (1257)
  • Grupy dyskusyjne Usenetu (1257)
  • Najnowsze wiadomości z branży: Blues News (1258)
  • Magazyny komputerowe poświęcone projektowaniu gier (1258)
  • Dodatkowe materiały do gry Quake (1258)
  • Darmowe modele i tekstury (1258)
  • Twórcy witryn poświęconych grom komputerowym (1258)

Dodatek F Tablica znaków ASCII (1259)

Skorowidz (1267)

Dodaj do koszyka Triki najlepszych programistów gier 3D. Vademecum profesjonalisty

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.