Facebook - konwersja
Pobierz fragment

Projektowanie gier 3D. Wprowadzenie do technologii DirectX 11 - ebook

Wydawnictwo:
Data wydania:
24 maja 2014
Format ebooka:
PDF
Format PDF
czytaj
na laptopie
czytaj
na tablecie
Format e-booków, który możesz odczytywać na tablecie oraz laptopie. Pliki PDF są odczytywane również przez czytniki i smartfony, jednakze względu na komfort czytania i brak możliwości skalowania czcionki, czytanie plików PDF na tych urządzeniach może być męczące dla oczu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
, MOBI
Format MOBI
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najczęściej wybieranych formatów wśród czytelników e-booków. Możesz go odczytać na czytniku Kindle oraz na smartfonach i tabletach po zainstalowaniu specjalnej aplikacji. Więcej informacji znajdziesz w dziale Pomoc.
Multiformat
E-booki w Virtualo.pl dostępne są w opcji multiformatu. Oznacza to, że po dokonaniu zakupu, e-book pojawi się na Twoim koncie we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu.
(3w1)
Multiformat
E-booki sprzedawane w księgarni Virtualo.pl dostępne są w opcji multiformatu - kupujesz treść, nie format. Po dodaniu e-booka do koszyka i dokonaniu płatności, e-book pojawi się na Twoim koncie w Mojej Bibliotece we wszystkich formatach dostępnych aktualnie dla danego tytułu. Informacja o dostępności poszczególnych formatów znajduje się na karcie produktu przy okładce. Uwaga: audiobooki nie są objęte opcją multiformatu.
czytaj
na laptopie
Pliki PDF zabezpieczone watermarkiem możesz odczytać na dowolnym laptopie po zainstalowaniu czytnika dokumentów PDF. Najpowszechniejszym programem, który umożliwi odczytanie pliku PDF na laptopie, jest Adobe Reader. W zależności od potrzeb, możesz zainstalować również inny program - e-booki PDF pod względem sposobu odczytywania nie różnią niczym od powszechnie stosowanych dokumentów PDF, które odczytujemy każdego dnia.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
Pobierz fragment
129,00

Projektowanie gier 3D. Wprowadzenie do technologii DirectX 11 - ebook

Poznaj możliwości DirectX!

DirectX to zestaw funkcji wspierających tworzenie zaawansowanej grafiki w systemie Windows. Historia tego dodatku sięga roku 1995, kiedy po wprowadzeniu na rynek systemu Windows 95 programiści tworzący gry z dużym oporem rozstawali się z systemem DOS. Od tego czasu DirectX jest nieustannie rozwijany, a gry i trójwymiarowe animacje tworzone z wykorzystaniem najnowszej wersji zapierają dech w piersiach. Jeżeli chcesz poznać możliwości tego dodatku i wykorzystać jego potencjał, to trafiłeś na doskonałą publikację!

Żadna inna nie omawia w tak szczegółowy sposób zagadnień związanych z tworzeniem grafiki i animacji przy użyciu DirectX. Książka została podzielona na trzy części. Pierwsza pozwoli Ci zdobyć podstawową wiedzę na temat fundamentów grafiki trójwymiarowej. Nauczysz się lub przypomnisz sobie, jak prowadzić działania na wektorach, przekształcać te wektory i stosować macierze. W części drugiej szczególny nacisk został położony na poznanie Direct3D. Dowiesz się, jak zainicjalizować system, nanosić tekstury oraz cieniować obiekty. Część trzecia zawiera mnóstwo przydatnych informacji na temat widoku pierwszej osoby, prowadzenia kamery, systemu cząstek, zaawansowanego mapowania oraz animowania. Książka ta jest obowiązkową lekturą każdego programisty zajmującego się grafiką 3D!

Dzięki tej książce:

  • poznasz fundamenty grafiki 3D — wektory, macierze i ich przekształcenia
  • zaznajomisz się z dostępnymi funkcjami oraz sposobem pracy z Direct3D
  • dowiesz się, jak korzystać z tekstur i cieni
  • wykorzystasz system cząstek
  • poznasz potencjał DirectX

Zbuduj wirtualny świat za pomocą DirectX!

Spis treści

Podziękowania (19)

Wstęp (21)

  • Docelowy odbiorca (22)
  • Wymagana wiedza (22)
  • Potrzebne narzędzia programistyczne i sprzęt (23)
  • Biblioteka D3DX (23)
  • Dokumentacja SDK i przykładowe aplikacje (23)
  • Czytelność (25)
  • Przykładowe programy i dodatkowe źródła online (26)
  • Przygotowanie projektu aplikacji w Visual Studio 2010 (26)
    • Tworzenie projektu Win32 (26)
    • Dołączanie bibliotek DirectX (27)
    • Ustawianie ścieżek wyszukiwania (28)
    • Wprowadzanie kodu źródłowego i budowa projektu (30)

CZĘŚĆ I. PODSTAWY MATEMATYCZNE

Rozdział 1. Algebra wektorów (35)

  • 1.1. Wektory (35)
    • 1.1.1. Wektory i układy współrzędnych (36)
    • 1.1.2. Lewo- i praworęczne układy współrzędnych (38)
    • 1.1.3. Podstawowe działania na wektorach (38)
  • 1.2. Długość i wektory jednostkowe (40)
  • 1.3. Iloczyn skalarny (42)
    • 1.3.1. Ortogonalizacja (44)
  • 1.4. Iloczyn wektorowy (46)
    • 1.4.1. Pseudoiloczyn wektorowy dla przestrzeni dwuwymiarowych (47)
    • 1.4.2. Ortogonalizacja z iloczynem wektorowym (47)
  • 1.5. Punkty (48)
  • 1.6. Wektory XNA Math (49)
    • 1.6.1. Typy wektorowe (50)
    • 1.6.2. Metody ładujące i metody zapisujące (51)
    • 1.6.3. Przekazywanie argumentów (52)
    • 1.6.4. Stałe wektorowe (53)
    • 1.6.5. Przeciążone operatory (54)
    • 1.6.6. Przydatne funkcje (54)
    • 1.6.7. Funkcje ustawiające (55)
    • 1.6.8. Funkcje wektorowe (56)
    • 1.6.9. Błąd obliczeń zmiennoprzecinkowych (59)
  • 1.7. Podsumowanie (60)
  • 1.8. Ćwiczenia (61)

Rozdział 2. Algebra macierzy (65)

  • 2.1. Definicja (65)
  • 2.2. Mnożenie macierzy (67)
    • 2.2.1. Definicja (67)
    • 2.2.2. Mnożenie macierzy przez wektor (68)
    • 2.2.3. Łączność (69)
  • 2.3. Macierz transponowana (69)
  • 2.4. Macierz jednostkowa (70)
  • 2.5. Wyznacznik macierzy (71)
    • 2.5.1. Macierze zredukowane (72)
    • 2.5.2. Definicja (72)
  • 2.6. Macierz dołączona (74)
  • 2.7. Macierz odwrotna (74)
  • 2.8. Macierze XNA (76)
    • 2.8.1. Typy macierzowe (76)
    • 2.8.2. Funkcje macierzowe (78)
    • 2.8.3. Przykładowy program z macierzami XNA (78)
  • 2.9. Podsumowanie (80)
  • 2.10. Ćwiczenia (81)

Rozdział 3. Przekształcenia (85)

  • 3.1. Przekształcenia liniowe (85)
    • 3.1.1. Definicja (85)
    • 3.1.2. Reprezentacja macierzowa (86)
    • 3.1.3. Skalowanie (87)
    • 3.1.4. Obrót (89)
  • 3.2. Przekształcenia afiniczne (91)
    • 3.2.1. Współrzędne jednorodne (91)
    • 3.2.2. Definicja i reprezentacja macierzowa (92)
    • 3.2.3. Przesunięcie (93)
    • 3.2.4. Macierze afiniczne dla skalowania i obrotu (95)
    • 3.2.5. Interpretacja geometryczna macierzy przekształcenia afinicznego (95)
  • 3.3. Składanie przekształceń (97)
  • 3.4. Przekształcenia zamiany współrzędnych (98)
    • 3.4.1. Wektory (99)
    • 3.4.2. Punkty (100)
    • 3.4.3. Reprezentacja macierzowa (101)
    • 3.4.4. Łączność i macierze zamiany współrzędnych (102)
    • 3.4.5. Macierze odwrotne i macierze zamiany współrzędnych (102)
  • 3.5. Macierz przekształcenia kontra macierz zamiany współrzędnych (103)
  • 3.6. Funkcje przekształcające XNA Math (105)
  • 3.7. Podsumowanie (106)
  • 3.8. Ćwiczenia (107)

CZĘŚĆ II. PODSTAWY DIRECT3D

Rozdział 4. Inicjalizacja Direct3D (115)

  • 4.1. Uwagi wstępne (115)
    • 4.1.1. Przegląd Direct3D (115)
    • 4.1.2. Technologia COM (116)
    • 4.1.3. Tekstury i formaty zasobów (116)
    • 4.1.4. Łańcuch wymiany i stronicowanie (117)
    • 4.1.5. Buforowanie głębokości (118)
    • 4.1.6. Widoki zasobów tekstury (121)
    • 4.1.7. Teoria wielokrotnego próbkowania (122)
    • 4.1.8. Wielokrotne próbkowanie w Direct3D (124)
    • 4.1.9. Możliwości sprzętu (124)
  • 4.2. Inicjalizacja Direct3D (125)
    • 4.2.1. Tworzenie urządzenia i kontekstu (126)
    • 4.2.2. Sprawdzenie obsługiwanego poziomu jakości antyaliasingu z 4-krotnym próbkowaniem (128)
    • 4.2.3. Opis łańcucha wymiany (129)
    • 4.2.4. Tworzenie łańcucha wymiany (130)
    • 4.2.5. Tworzenie widoku celu renderowania (131)
    • 4.2.6. Tworzenie bufora i widoku głębokości/szablonu (132)
    • 4.2.7. Powiązanie widoków z etapem łączenia wyników (135)
    • 4.2.8. Ustawienie okna widoku (135)
  • 4.3. Czas i animacja (137)
    • 4.3.1. Licznik wydajności (137)
    • 4.3.2. Klasa GameTimer (138)
    • 4.3.3. Okresy między klatkami (139)
    • 4.3.4. Czas całkowity (140)
  • 4.4. Szkielet przykładowych aplikacji (143)
    • 4.4.1. D3DApp (144)
    • 4.4.2. Metody niezwiązane ze szkieletem (145)
    • 4.4.3. Metody szkieletu (146)
    • 4.4.4. Statystyki klatek (147)
    • 4.4.5. Obsługa komunikatów (148)
    • 4.4.6. Tryb pełnoekranowy (150)
    • 4.4.7. Aplikacja "Init Direct3D" (151)
  • 4.5. Wykrywanie błędów w aplikacjach Direct3D (152)
  • 4.6. Podsumowanie (154)
  • 4.7. Ćwiczenia (155)

Rozdział 5. Potok renderowania (159)

  • 5.1. Złudzenie trójwymiarowości (159)
  • 5.2. Reprezentacja modelu (162)
  • 5.3. Kolory w grafice komputerowej (163)
    • 5.3.1. Działania na kolorach (165)
    • 5.3.2. Kolor 128-bitowy (165)
    • 5.3.3. Kolor 32-bitowy (166)
  • 5.4. Etapy potoku renderowania (168)
  • 5.5. Etap zbierania danych (168)
    • 5.5.1. Wierzchołki (168)
    • 5.5.2. Topologia prymitywów (168)
    • 5.5.3. Indeksy (173)
  • 5.6. Etap cieniowania wierzchołków (175)
    • 5.6.1. Przestrzeń lokalna i przestrzeń świata (175)
    • 5.6.2. Przestrzeń widoku (179)
    • 5.6.3. Rzutowanie i jednorodna przestrzeń obcinania (182)
  • 5.7. Etapy teselacji (190)
  • 5.8. Etap cieniowania geometrii (191)
  • 5.9. Obcinanie (191)
  • 5.10. Etap rasteryzacji (193)
    • 5.10.1. Przekształcenie okna widoku (193)
    • 5.10.2. Usuwanie niewidocznych powierzchni (194)
    • 5.10.3. Interpolacja atrybutów wierzchołków (195)
  • 5.11. Etap cieniowania pikseli (197)
  • 5.12. Etap łączenia wyników (197)
  • 5.13. Podsumowanie (197)
  • 5.14. Ćwiczenia (198)

Rozdział 6. Rysowanie w Direct3D (203)

  • 6.1. Wierzchołki i formaty wejścia (203)
  • 6.2. Bufory wierzchołków (208)
  • 6.3. Indeksy i bufory indeksów (212)
  • 6.4. Przykładowy shader wierzchołków (215)
  • 6.5. Bufor stały (218)
  • 6.6. Przykładowy shader pikseli (219)
  • 6.7. Stany renderowania (221)
  • 6.8. Efekty (224)
    • 6.8.1. Pliki efektów (224)
    • 6.8.2. Kompilacja shaderów (226)
    • 6.8.3. Łączenie efektów z aplikacją C++ (229)
    • 6.8.4. Rysowanie za pomocą efektów (230)
    • 6.8.5. Wczesna kompilacja efektu (231)
    • 6.8.6. Framework efektów jako "generator shaderów" (233)
    • 6.8.7. Kod asemblera (237)
  • 6.9. Aplikacja "Box" (242)
  • 6.10. Aplikacja "Hills" (248)
    • 6.10.1. Generowanie wierzchołków siatki (248)
    • 6.10.2. Generowanie indeksów siatki (251)
    • 6.10.3. Funkcja wyznaczająca wysokość (252)
  • 6.11. Aplikacja "Shapes" (254)
    • 6.11.1. Tworzenie siatki walca (255)
    • 6.11.2. Tworzenie siatki sfery (259)
    • 6.11.3. Tworzenie siatki sfery geodezyjnej (259)
    • 6.11.4. Kod aplikacji (262)
  • 6.12. Ładowanie geometrii z pliku (266)
  • 6.13. Dynamiczne bufory wierzchołków (266)
  • 6.14. Podsumowanie (269)
  • 6.15. Ćwiczenia (271)

Rozdział 7. Oświetlenie (275)

  • 7.1. Interakcja między światłem i materiałem (276)
  • 7.2. Wektory normalne (277)
    • 7.2.1. Obliczanie wektorów normalnych (279)
    • 7.2.2. Przekształcenia wektorów normalnych (280)
  • 7.3. Prawo Lamberta (283)
  • 7.4. Światło rozproszone (283)
  • 7.5. Światło otoczenia (285)
  • 7.6. Światło odbite (285)
  • 7.7. Podsumowanie modelu (288)
  • 7.8. Określanie kolorów materiałów (289)
  • 7.9. Światła równoległe (291)
  • 7.10. Światła punktowe (291)
    • 7.10.1. Wygaszanie (292)
    • 7.10.2. Zasięg (293)
  • 7.11. Światła reflektorowe (293)
  • 7.12. Implementacja (294)
    • 7.12.1. Struktury oświetlenia (294)
    • 7.12.2. Upakowanie struktur (296)
    • 7.12.3. Implementacja świateł kierunkowych (298)
    • 7.12.4. Implementacja świateł punktowych (299)
    • 7.12.5. Implementacja świateł reflektorowych (300)
  • 7.13. Aplikacja "Lighting" (301)
    • 7.13.1. Plik efektu (301)
    • 7.13.2. Kod aplikacji C++ (304)
    • 7.13.3. Obliczanie normalnych (306)
  • 7.14. Aplikacja "Lit Skull" (307)
  • 7.15. Podsumowanie (309)
  • 7.16. Ćwiczenia (310)

Rozdział 8. Tekstury (313)

  • 8.1. Podsumowanie wiadomości na temat tekstur i zasobów (313)
  • 8.2. Współrzędne tekstury (316)
  • 8.3. Tworzenie i włączanie obsługi tekstury (318)
  • 8.4. Filtry (320)
    • 8.4.1. Powiększanie (320)
    • 8.4.2. Pomniejszanie (323)
    • 8.4.3. Filtrowanie anizotropowe (324)
  • 8.5. Próbkowanie tekstur (324)
  • 8.6. Tekstury i materiały (326)
  • 8.7. Aplikacja "Crate" (326)
    • 8.7.1. Określanie współrzędnych tekstury (326)
    • 8.7.2. Tworzenie tekstury (327)
    • 8.7.3. Ustawianie tekstury (327)
    • 8.7.4. Aktualizacja efektu bazowego (328)
  • 8.8. Tryby adresowania (332)
  • 8.9. Przekształcanie tekstur (335)
  • 8.10. Aplikacja "Land Tex" (335)
    • 8.10.1. Generowanie współrzędnych tekstury dla siatki (336)
    • 8.10.2. Kafelkowanie (337)
    • 8.10.3. Animacja tekstury (338)
  • 8.11. Formaty kompresji tekstur (338)
  • 8.12. Podsumowanie (341)
  • 8.13. Ćwiczenia (341)

Rozdział 9. Mieszanie kolorów (345)

  • 9.1. Równanie mieszania (346)
  • 9.2. Operacje mieszania (347)
  • 9.3. Współczynniki mieszania (347)
  • 9.4. Stan mieszania (348)
  • 9.5. Przykłady (351)
    • 9.5.1. Mieszanie bez zapisu koloru (351)
    • 9.5.2. Dodawanie i odejmowanie kolorów (352)
    • 9.5.3. Mnożenie kolorów (352)
    • 9.5.4. Przezroczystość (353)
    • 9.5.5. Mieszanie kolorów a bufor głębokości (354)
  • 9.6. Kanały alfa (355)
  • 9.7. Obcinanie pikseli (356)
  • 9.8. Mgła (360)
  • 9.9. Podsumowanie (365)
  • 9.10. Ćwiczenia (366)

Rozdział 10. Szablonowanie (369)

  • 10.1. Formaty buforów głębokości/szablonu i ich czyszczenie (370)
  • 10.2. Test szablonu (371)
  • 10.3. Blok stanu głębokości/szablonu (372)
    • 10.3.1. Ustawienia głębi (372)
    • 10.3.2. Ustawienia szablonu (373)
    • 10.3.3. Tworzenie i wiązanie stanu głębokości/szablonu (374)
    • 10.3.4. Stany głębokości/szablonu w plikach efektów (375)
  • 10.4. Implementacja luster płaskich (376)
    • 10.4.1. Symulowanie lustra (376)
    • 10.4.2. Definiowanie stanów głębokości/szablonu lustra (378)
    • 10.4.3. Rysowanie sceny (379)
    • 10.4.4. Kolejność nawijania i odbicia (381)
  • 10.5. Implementacja cieni płaskich (382)
    • 10.5.1. Cienie świateł równoległych (382)
    • 10.5.2. Cienie świateł punktowych (385)
    • 10.5.3. Uogólniona macierz cienia (386)
    • 10.5.4. Zapobieganie podwójnemu mieszaniu przy użyciu bufora szablonowego (386)
    • 10.5.5. Kod cienia (387)
  • 10.6. Podsumowanie (388)
  • 10.7. Ćwiczenia (389)

Rozdział 11. Cieniowanie geometrii (395)

  • 11.1. Programowanie shaderów geometrii (396)
  • 11.2. Aplikacja "Tree Billboards" (400)
    • 11.2.1. Założenia (400)
    • 11.2.2. Struktura wierzchołka (403)
    • 11.2.3. Plik efektu (403)
    • 11.2.4. Obiekt SV_PrimitiveID (408)
  • 11.3. Tablice tekstur (409)
    • 11.3.1. Założenia (409)
    • 11.3.2. Próbkowanie tablicy tekstur (410)
    • 11.3.3. Ładowanie tablic tekstur (410)
    • 11.3.4. Podzasoby tekstury (414)
  • 11.4. Technika alpha-to-coverage (415)
  • 11.5. Podsumowanie (416)
  • 11.6. Ćwiczenia (418)

Rozdział 12. Shader obliczeniowy (421)

  • 12.1. Wątki i grupy wątków (422)
  • 12.2. Prosty shader obliczeniowy (425)
  • 12.3. Zasoby danych wejściowych i wyjściowych (426)
    • 12.3.1. Wejściowe tekstury (426)
    • 12.3.2. Tekstury wyjściowe i widoki nieuporządkowanego dostępu (UAV) (426)
    • 12.3.3. Indeksowanie i próbkowanie tekstur (428)
    • 12.3.4. Zasoby ustrukturyzowanych buforów (430)
    • 12.3.5. Kopiowanie wyników shadera obliczeniowego do pamięci systemowej (433)
  • 12.4. Wartości systemowe identyfikujące wątki (436)
  • 12.5. Bufor dopisywania i bufor konsumowany (437)
  • 12.6. Pamięć współdzielona i synchronizacja (439)
  • 12.7. Aplikacja "Blur" (440)
    • 12.7.1. Algorytm rozmywania (440)
    • 12.7.2. Renderowanie do tekstury (443)
    • 12.7.3. Implementacja rozmycia (445)
    • 12.7.4. Program shadera obliczeniowego (449)
  • 12.8. Inne źródła (454)
  • 12.9. Podsumowanie (455)
  • 12.10. Ćwiczenia (457)

Rozdział 13. Etapy teselacji (459)

  • 13.1. Typy prymitywów teselacji (460)
    • 13.1.1. Teselacja i shader wierzchołków (461)
  • 13.2. Shader powłoki (461)
    • 13.2.1. Stały shader powłoki (461)
    • 13.2.2. Shader powłoki punktów kontrolnych (463)
  • 13.3. Etap teselatora (465)
    • 13.3.1. Przykłady teselacji czworokątnej łaty (465)
    • 13.3.2. Przykłady teselacji trójkątnej łaty (466)
  • 13.4. Shader dziedziny (466)
  • 13.5. Teselacja czworokąta (468)
  • 13.6. Czworokątne łaty Béziera trzeciego stopnia (471)
    • 13.6.1. Krzywe Béziera (471)
    • 13.6.2. Powierzchnie Béziera trzeciego stopnia (474)
    • 13.6.3. Kod do obliczeń powierzchni Béziera trzeciego stopnia (475)
    • 13.6.4. Określanie geometrii łat (476)
  • 13.7. Podsumowanie (478)
  • 13.8. Ćwiczenia (479)

CZĘŚĆ III. TEMATY

Rozdział 14. Kamera pierwszej osoby (483)

  • 14.1. Przekształcenie widoku (483)
  • 14.2. Klasa kamery (485)
  • 14.3. Implementacje wybranych metod (486)
    • 14.3.1. Metody zwracające wartość XMVECTOR (486)
    • 14.3.2. Metoda SetLens (487)
    • 14.3.3. Dodatkowe informacje o ostrosłupie widzenia (487)
    • 14.3.4. Przekształcanie kamery (488)
    • 14.3.5. Budowa macierzy widoku (489)
  • 14.4. Użycie klasy kamery (490)
  • 14.5. Podsumowanie (491)
  • 14.6. Ćwiczenia (492)

Rozdział 15. Instancjonowanie i usuwanie powierzchni poza ostrosłupem widzenia (493)

  • 15.1. Instancjonowanie sprzętowe (493)
    • 15.1.1. Shader wierzchołków (494)
    • 15.1.2. Przesyłanie strumieniowe danych instancji (495)
    • 15.1.3. Rysowanie danych instancji (496)
    • 15.1.4. Tworzenie bufora instancji (497)
  • 15.2. Bryły brzegowe i ostrosłupy widzenia (498)
    • 15.2.1. Biblioteka XNA Collision (498)
    • 15.2.2. Prostopadłościany (498)
    • 15.2.3. Sfery (503)
    • 15.2.4. Ostrosłupy widzenia (503)
  • 15.3. Usuwanie powierzchni poza ostrosłupem widzenia (508)
  • 15.4. Podsumowanie (511)
  • 15.5. Ćwiczenia (512)

Rozdział 16. Wskazywanie obiektów (515)

  • 16.1. Przekształcenie ekranu do okna rzutu (517)
  • 16.2. Promień wskazujący w przestrzeni świata/lokalnej (520)
  • 16.3. Przecięcie promienia i siatki obiektu (521)
    • 16.3.1. Przecięcie promienia i prostopadłościanu AABB (522)
    • 16.3.2. Przecięcie promienia i sfery (523)
    • 16.3.3. Przecięcie promienia i trójkąta (524)
  • 16.4. Aplikacja demonstracyjna (526)
  • 16.5. Podsumowanie (527)
  • 16.6. Ćwiczenia (527)

Rozdział 17. Mapowanie sześcienne (529)

  • 17.1. Mapowanie sześcienne (529)
  • 17.2. Tekstury otoczenia (531)
    • 17.2.1. Ładowanie i używanie tekstur sześciennych w Direct3D (534)
  • 17.3. Teksturowanie nieba (535)
  • 17.4. Modelowanie odbić (537)
  • 17.5. Dynamiczne tekstury sześcienne (539)
    • 17.5.1. Budowa tekstury sześciennej i widoków celu renderowania (539)
    • 17.5.2. Budowa bufora głębokości i okna widoku (542)
    • 17.5.3. Ustawianie kamery (543)
    • 17.5.4. Rysowanie do tekstury sześciennej (544)
  • 17.6. Dynamiczne tekstury sześcienne w shaderze geometrii (545)
  • 17.7. Podsumowanie (547)
  • 17.8. Ćwiczenia (548)

Rozdział 18. Mapowanie normalnych i mapowanie przemieszczeń (551)

  • 18.1. Do czego nam to potrzebne? (551)
  • 18.2. Mapy normalnych (552)
  • 18.3. Przestrzeń tekstury (przestrzeń styczna) (555)
  • 18.4. Przestrzeń styczna do wierzchołka (557)
  • 18.5. Przekształcanie z przestrzeni stycznej do przestrzeni obiektu (558)
  • 18.6. Mapowanie normalnych w kodzie shadera (559)
  • 18.7. Mapowanie przemieszczeń (563)
  • 18.8. Mapowanie przemieszczeń w kodzie shadera (565)
    • 18.8.1. Typ prymitywu (565)
    • 18.8.2. Shader wierzchołków (566)
    • 18.8.3. Shader powłoki (567)
    • 18.8.4. Shader dziedziny (569)
  • 18.9. Podsumowanie (570)
  • 18.10. Ćwiczenia (571)

Rozdział 19. Renderowanie terenu (575)

  • 19.1. Mapy wysokości (575)
    • 19.1.1. Tworzenie mapy wysokości (577)
    • 19.1.2. Ładowanie pliku RAW (578)
    • 19.1.3. Wygładzanie (579)
    • 19.1.4. Widok zasobu shadera mapy wysokości (582)
  • 19.2. Teselacja terenu (583)
    • 19.2.1. Budowa siatki (583)
    • 19.2.2. Shader wierzchołków terenu (586)
    • 19.2.3. Współczynniki teselacji (587)
    • 19.2.4. Mapowanie przemieszczeń (589)
    • 19.2.5. Szacowanie wektora stycznego i normalnego (590)
  • 19.3. Usuwanie łat poza ostrosłupem widzenia (591)
  • 19.4. Teksturowanie (596)
  • 19.5. Wysokość terenu (598)
  • 19.6. Podsumowanie (601)
  • 19.7. Ćwiczenia (602)

Rozdział 20. Systemy cząsteczek i wyjście strumieniowe (605)

  • 20.1. Reprezentacja cząsteczek (605)
  • 20.2. Ruch cząsteczek (607)
  • 20.3. Losowość (609)
  • 20.4. Mieszanie kolorów i systemy cząsteczek (611)
  • 20.5. Wyjście strumieniowe (613)
    • 20.5.1. Tworzenie shadera geometrii dla wyjścia strumieniowego (613)
    • 20.5.2. Wyjście strumieniowe bez renderowania (614)
    • 20.5.3. Tworzenie bufora wierzchołków dla wyjścia strumieniowego (616)
    • 20.5.4. Wiązanie z etapem wyjścia strumieniowego (616)
    • 20.5.5. Odwiązywanie od etapu wyjścia strumieniowego (616)
    • 20.5.6. Automatyczne rysowanie (617)
    • 20.5.7. Przełączanie buforów wierzchołków (617)
  • 20.6. System cząsteczek bazujący na procesorze graficznym (618)
    • 20.6.1. Efekty cząsteczkowe (618)
    • 20.6.2. Klasa ParticleSystem (618)
    • 20.6.3. Emitery (620)
    • 20.6.4. Inicjalizacja bufora wierzchołków (620)
    • 20.6.5. Metoda Update/Draw (621)
  • 20.7. Ogień (623)
  • 20.8. Deszcz (627)
  • 20.9. Podsumowanie (632)
  • 20.10. Ćwiczenia (633)

Rozdział 21. Mapowanie cieni (635)

  • 21.1. Renderowanie głębokości sceny (635)
  • 21.2. Rzutowanie ortograficzne (638)
  • 21.3. Współrzędne rzutowe tekstury (640)
    • 21.3.1. Implementacja (642)
    • 21.3.2. Punkty poza ostrosłupem widzenia (643)
    • 21.3.3. Rzutowanie ortograficzne (643)
  • 21.4. Mapowanie cieni (644)
    • 21.4.1. Opis algorytmu (644)
    • 21.4.2. Obciążanie głębokości i aliasing (645)
    • 21.4.3. Filtrowanie PCF (648)
    • 21.4.4. Budowa mapy cieni (652)
    • 21.4.5. Współczynnik cienia (656)
    • 21.4.6. Test zacienienia (657)
    • 21.4.7. Renderowanie mapy cieni (661)
  • 21.5. Duże jądra PCF (661)
    • 21.5.1. Funkcje DDX i DDY (662)
    • 21.5.2. Rozwiązanie problemu dużego jądra PCF (663)
    • 21.5.3. Alternatywne rozwiązanie problemu dużego jądra PCF (665)
  • 21.6. Podsumowanie (666)
  • 21.7. Ćwiczenia (667)

Rozdział 22. Okluzja otoczenia (669)

  • 22.1. Okluzja otoczenia na podstawie śledzenia promieni (669)
  • 22.2. Okluzja otoczenia przestrzeni ekranu (674)
    • 22.2.1. Przebieg renderowania normalnych i głębokości (674)
    • 22.2.2. Przebieg okluzji otoczenia (675)
    • 22.2.3. Przebieg rozmycia (683)
    • 22.2.4. Wykorzystanie mapy okluzji otoczenia (686)
  • 22.3. Podsumowanie (689)
  • 22.4. Ćwiczenia (689)

Rozdział 23. Siatki (693)

  • 23.1. Format .m3d (694)
    • 23.1.1. Nagłówek (694)
    • 23.1.2. Materiały (695)
    • 23.1.3. Podzbiory (696)
    • 23.1.4. Wierzchołki i indeksy trójkątów (697)
  • 23.2. Geometria siatki (699)
  • 23.3. Klasa BasicModel (700)
  • 23.4. Aplikacja "Mesh Viewer" (701)
  • 23.5. Podsumowanie (701)
  • 23.6. Ćwiczenia (702)

Rozdział 24. Kwaterniony (703)

  • 24.1. Liczby zespolone (704)
    • 24.1.1. Definicje (704)
    • 24.1.2. Interpretacja geometryczna (705)
    • 24.1.3. Postać biegunowa i obroty (705)
  • 24.2. Algebra kwaternionów (707)
    • 24.2.1. Definicja i podstawowe działania (707)
    • 24.2.2. Wzory skróconego mnożenia (708)
    • 24.2.3. Własności (708)
    • 24.2.4. Konwersje (709)
    • 24.2.5. Sprzężenie i norma (709)
    • 24.2.6. Kwaterniony odwrotne (710)
    • 24.2.7. Postać biegunowa (711)
  • 24.3. Kwaterniony jednostkowe i obroty (712)
    • 24.3.1. Operator obrotu (712)
    • 24.3.2. Kwaternionowy operator obrotu w postaci macierzy (714)
    • 24.3.3. Zapis macierzy w postaci kwaternionowego operatora obrotu (716)
    • 24.3.4. Złożenie (717)
  • 24.4. Interpolacja kwaternionów (718)
  • 24.5. Funkcje kwaternionowe XNA Math (723)
  • 24.6. Aplikacja "Quaternions" (723)
  • 24.7. Podsumowanie (728)
  • 24.8. Ćwiczenia (729)

Rozdział 25. Animacja postaci (731)

  • 25.1. Hierarchie układów odniesienia (731)
    • 25.1.1. Ujęcie matematyczne (733)
  • 25.2. Siatki-skóry (735)
    • 25.2.1. Definicje (735)
    • 25.2.2. Przekształcenie kość - szkielet (736)
    • 25.2.3. Przekształcenie siatka - kość (736)
    • 25.2.4. Animacja szkieletu (737)
    • 25.2.5. Obliczanie przekształcenia finalnego (738)
  • 25.3. Uśrednianie wierzchołków (740)
  • 25.4. Ładowanie danych animacji w formacie .m3d (743)
    • 25.4.1. Dane wierzchołka skóry (743)
    • 25.4.2. Przekształcenia siatka - kość (744)
    • 25.4.3. Hierarchia (745)
    • 25.4.4. Dane animacji (746)
    • 25.4.5. Klasa M3DLoader (748)
  • 25.5. Aplikacja "Skinned Mesh" (749)
  • 25.6. Podsumowanie (750)
  • 25.7. Ćwiczenia (751)

Dodatek A. Wprowadzenie do programowania Windows (753)

  • A.1. Zagadnienia podstawowe (754)
    • A.1.1. Zasoby (754)
    • A.1.2. Zdarzenia, kolejka komunikatów, komunikaty i pętla komunikatów (754)
    • A.1.3. Interfejs graficzny (755)
    • A.1.4. Unicode (755)
  • A.2. Prosta aplikacja Windows (755)
  • A.3. Analiza prostej aplikacji Windows (760)
    • A.3.1. Dołączanie plików, zmienne globalne i prototypy (761)
    • A.3.2. Funkcja WinMain (761)
    • A.3.3. Struktura WNDCLASS i jej rejestracja (762)
    • A.3.4. Tworzenie i wyświetlanie okna (763)
    • A.3.5. Pętla komunikatów (765)
    • A.3.6. Procedura okna (766)
    • A.3.7. Funkcja MessageBox (768)
  • A.4. Ulepszona pętla komunikatów (768)
  • A.5. Podsumowanie (769)
  • A.6. Ćwiczenia (770)

Dodatek B. Język HLSL (771)

  • Typy zmiennych (771)
    • Typy skalarne (771)
    • Typy wektorowe (771)
    • Typy macierzowe (772)
    • Tablice (773)
    • Struktury (774)
    • Słowo kluczowe typedef (774)
    • Modyfikatory zmiennych (774)
    • Rzutowanie typów (775)
  • Słowa zastrzeżone i operatory (775)
    • Słowa kluczowe (775)
    • Operatory (775)
  • Przepływ programu (777)
  • Funkcje (778)
    • Funkcje użytkownika (778)
    • Funkcje wbudowane (779)

Dodatek C. Wybrane zagadnienia geometrii analitycznej (783)

  • C.1. Promienie, proste i odcinki (783)
  • C.2. Równoległoboki (784)
  • C.3. Trójkąty (785)
  • C.4. Płaszczyzny (786)
    • C.4.1. Płaszczyzny XNA Math (787)
    • C.4.2. Wzajemne położenie punktu i płaszczyzny (787)
    • C.4.3. Obliczanie płaszczyzny (788)
    • C.4.4. Normalizacja płaszczyzny (789)
    • C.4.5. Przekształcanie płaszczyzny (789)
    • C.4.6. Najbliższy punkt na płaszczyźnie względem danego punktu (789)
    • C.4.7. Przecięcie promienia i płaszczyzny (790)
    • C.4.8. Odbijanie wektorów (791)
    • C.4.9. Odbijanie punktów (791)
    • C.4.10. Macierz odbicia (792)
  • C.5. Ćwiczenia (793)

Dodatek D. Rozwiązania wybranych ćwiczeń (795)

  • Rozdział 1. (795)
  • Rozdział 2. (798)
  • Rozdział 3. (802)
  • Rozdział 5. (810)
  • Rozdział 8. (816)
  • Rozdział 10. (818)
  • Rozdział 11. (819)
  • Rozdział 12. (819)
  • Rozdział 14. (819)
  • Rozdział 15. (820)
  • Rozdział 18. (823)
  • Rozdział 21. (823)
  • Rozdział 24. (825)
  • Dodatek C (832)

Bibliografia (837)

Skorowidz (841)

Kategoria: Gry
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 978-83-246-7475-6
Rozmiar pliku: 46 MB

BESTSELLERY

Kategorie: