pelna-wersja-directx-rendering-w-czasie-rzeczywistym_dxrzec.pdf

(16295 KB) Pobierz
656492059 UNPDF
IDZ DO
PRZYK£ADOW Y ROZDZIA£
DirectX. Rendering
SPIS TRECI
w czasie rzeczywistym
Autor: Kelly Dempski
T³umaczenie: Rados³aw Meryk (wstêp, rozdz. 1 – 25,
37 – 40, dod. A), Krzysztof Jurczyk (rozdz. 26 – 36)
ISBN: 83-7361-120-7
Tytu³ orygina³ u: Real-Time Rendering
Tricks and Techniques in DirectX
Format: B5, stron: 688
W ci¹gu kilku ostatnich lat przetwarzanie grafiki w czasie rzeczywistym osi¹gnê³o stopieñ
najwy¿szego zaawansowania. Obecnie powszechnie dostêpne s¹ procesory przetwarzania
grafiki, które dorównuj¹ szybkoci¹ i mo¿liwociami najdro¿szym stacjom graficznym
sprzed zaledwie kilku lat.
Je¿eli jeste gotów na pog³êbienie swojej wiedzy na temat programowania grafiki, siêgnij
po tê ksi¹¿kê. Opisuje ona zaawansowane zagadnienia w taki sposób, ¿e nawet
pocz¹tkuj¹cy przyswajaj¹ je ³atwo. Czytelnicy, którzy bêd¹ studiowaæ tê ksi¹¿kê od
pocz¹tku i dok³adnie j¹ przeanalizuj¹, nie powinni mieæ problemu z nauczeniem siê coraz
bardziej skomplikowanych technik. Czytelnicy zaawansowani mog¹ wykorzystywaæ tê
ksi¹¿kê jako u¿yteczne ród³o informacji, przeskakuj¹c od rozdzia³u do rozdzia³u, wtedy
kiedy maj¹ potrzebê nauczenia siê lub dok³adniejszego poznania wybranych problemów.
Ksi¹¿ka zawiera:
• Powtórzenie wiadomoci o wektorach i macierzach
• Omówienie zagadnieñ zwi¹zanych z owietleniem
• Opis potoków graficznych
• Opis konfiguracji rodowiska
• Sposoby korzystania z DirectX
• Dok³adne omówienie renderingu
• Opis sposobów nak³adania tekstur
• Problemy zwi¹zane z przezroczystoci¹
• Opis technik vertex shader i pixel shader
• Zasady tworzenia cieni przestrzennych
• Sposoby tworzenia animowanych postaci
... i wiele innych zaawansowanych technik, u¿ywanych przez profesjonalnych programistów.
Towarzysz¹ jej cenne dodatki na CD (m.in. Microsoft DirectX® 8.1 SDK, wersja
demonstracyjna przegl¹darki efektów NVidia®, program do zrzutów video — VirtualDub,
wersja demonstracyjna programu trueSpace firmy Caligari®)
Niezale¿nie od Twojego programistycznego dowiadczenia, ksi¹¿ka ta mo¿e pos³u¿yæ Ci
jako przewodnik pozwalaj¹cy na osi¹gniêcie mistrzostwa w wykorzystaniu mo¿liwoci
programowania grafiki w czasie rzeczywistym.
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWOCIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
656492059.001.png 656492059.002.png 656492059.003.png
Spis treci
O Autorze..............................................................................................15
Od wydawcy serii...................................................................................17
Słowo wstpne......................................................................................19
Wstp...................................................................................................21
Cz I Podstawy...........................................................................23
Rozdział 1. Grafika 3D. Rys historyczny ....................................................................25
Rozwój sprztu klasy PC..........................................................................................................25
Rozwój konsol do gier..............................................................................................................26
Rozwój technik filmowych.......................................................................................................27
Krótka historia DirectX.............................................................................................................27
Kilka słów na temat OpenGL....................................................................................................28
Rozdział 2. Powtórzenie wiadomo'ci o wektorach....................................................31
Czym jest wektor?.....................................................................................................................31
Normalizacja wektorów............................................................................................................32
Arytmetyka wektorów...............................................................................................................33
Iloczyn skalarny wektorów.......................................................................................................34
Iloczyn wektorowy wektorów...................................................................................................35
Kwaterniony..............................................................................................................................37
Działania na wektorach w bibliotece D3DX..............................................................................37
Podsumowanie..........................................................................................................................39
Rozdział 3. Powtórzenie wiadomo'ci o macierzach ....................................................41
Co to jest macierz?....................................................................................................................41
Macierz przekształcenia to4samo5ciowego..............................................................................43
Macierz translacji (przesunicia)..............................................................................................43
Macierz skalowania...................................................................................................................44
Macierz obrotu..........................................................................................................................44
Ł9czenie macierzy.....................................................................................................................45
Macierze a biblioteka D3DX....................................................................................................46
Podsumowanie..........................................................................................................................47
Rozdział 4. Kilka słów o kolorach i o'wietleniu ........................................................49
Czym jest kolor?.......................................................................................................................49
O5wietlenie otaczaj9ce i emisyjne............................................................................................51
O5wietlenie rozpraszaj9ce.........................................................................................................52
O5wietlenie zwierciadlane........................................................................................................53
Pozostałe rodzaje 5wiatła..........................................................................................................54
 
6
DirectX. Rendering w czasie rzeczywistym
Uwzgldnianie wszystkich rodzajów o5wietlenia w Direct3D.................................................55
Rodzaje cieniowania.................................................................................................................57
Podsumowanie..........................................................................................................................58
Rozdział 5. Kilka słów o potoku graficznym..............................................................59
Potok Direct3D.........................................................................................................................60
Wierzchołki oraz powierzchnie wy4szego rzdu......................................................................60
Faza stałych funkcji transformacji oraz o5wietlenia.................................................................61
Mechanizmy vertex shader.......................................................................................................62
Mechanizm obcinaj9cy.............................................................................................................63
Multiteksturowanie...................................................................................................................63
Mechanizmy pixel shader.........................................................................................................63
Mgła..........................................................................................................................................64
Testy głbi, matrycy oraz kanału alfa.......................................................................................64
Bufor ramek..............................................................................................................................65
Zagadnienia zwi9zane z wydajno5ci9.......................................................................................65
Podsumowanie..........................................................................................................................66
Cz II Tworzymy szkielet ..............................................................69
Rozdział 6. Konfiguracja 'rodowiska i prosta aplikacja Win32 ..................................71
Kilka słów o SDK.....................................................................................................................71
Konfiguracja 5rodowiska..........................................................................................................72
Prosta aplikacja Win32.............................................................................................................73
Plik Wykonywalny.h..........................................................................................................74
Plik Aplikacja.h..................................................................................................................75
Plik Wykonywalny.cpp.......................................................................................................76
Plik Aplikacja.cpp...............................................................................................................77
Kompilacja i uruchamianie prostej aplikacji............................................................................79
Analiza. Dlaczego to zrobili5my w taki sposób?......................................................................80
Podsumowanie..........................................................................................................................81
Rozdział 7. Tworzenie i zarz/dzanie urz/dzeniem Direct3D........................................83
Czym jest urz9dzenie Direct3D?...............................................................................................83
Krok 1: Tworzymy obiekt Direct3D.........................................................................................84
Krok 2: Dowiadujemy si czego5 wicej na temat sprztu.......................................................85
Krok 3: Utworzenie urz9dzenia Direct3D................................................................................86
Krok 4: Odtworzenie utraconego urz9dzenia............................................................................88
Krok 5: Zniszczenie urz9dzenia................................................................................................89
Rendering z wykorzystaniem urz9dzenia Direct3D..................................................................89
Zerowanie urz9dzenia...............................................................................................................90
Wracamy do pliku Aplikacja.h.................................................................................................91
Wracamy do pliku Aplikacja.cpp..............................................................................................93
Podsumowanie........................................................................................................................100
Cz III Rozpoczynamy renderowanie.............................................101
Rozdział 8. Wszystko rozpoczyna si od wierzchołków............................................103
Czym s9 wierzchołki?.............................................................................................................103
Czym tak naprawd s9 wierzchołki?.......................................................................................104
Tworzenie wierzchołków........................................................................................................106
Niszczenie bufora wierzchołków............................................................................................107
Konfiguracja i modyfikacja danych o wierzchołkach.............................................................108
Renderowanie wierzchołków..................................................................................................109
Spis treci
7
Zagadnienia zwi9zane z wydajno5ci9.....................................................................................111
Nareszcie co5 na ekranie!........................................................................................................112
Podsumowanie........................................................................................................................117
Rozdział 9. Zastosowanie transformacji.................................................................119
Co to s9 transformacje?...........................................................................................................119
Transformacje 5wiata..............................................................................................................120
Transformacje widoku............................................................................................................121
Tworzenie transformacji 5wiata i transformacji widoku.........................................................121
Rzuty.......................................................................................................................................123
Przekształcenia a urz9dzenie D3D..........................................................................................124
Zastosowanie stosu macierzy..................................................................................................126
Widok ekranu..........................................................................................................................127
Ł9czymy to razem...................................................................................................................128
Zalecane Gwiczenia.................................................................................................................132
Zagadnienia zwi9zane z wydajno5ci9.....................................................................................133
Podsumowanie........................................................................................................................133
Rozdział 10. Od wierzchołków do figur.....................................................................135
Przekształcanie wierzchołków w powierzchnie......................................................................135
Renderowanie powierzchni.....................................................................................................136
Renderowanie z wykorzystaniem list trójk9tów...............................................................137
Renderowanie z wykorzystaniem wachlarzy trójk9tów...................................................138
Renderowanie z wykorzystaniem pasków trójk9tów.......................................................138
Renderowanie z zastosowaniem prymitywów indeksowanych........................................139
Ładowanie i renderowanie plików .X.....................................................................................141
Problemy wydajno5ci..............................................................................................................143
Kod..........................................................................................................................................144
Podsumowanie........................................................................................................................155
Rozdział 11. O'wietlenie z wykorzystaniem funkcji wbudowanych.............................157
Struktura D3DLIGHT8...........................................................................................................157
Iwiatła kierunkowe..........................................................................................................158
Iwiatła punktowe..............................................................................................................159
Iwiatła reflektorowe.........................................................................................................160
Konfiguracja o5wietlenia w urz9dzeniu D3D.........................................................................162
Program...................................................................................................................................163
Kod..........................................................................................................................................165
Podsumowanie........................................................................................................................176
Rozdział 12. Wprowadzenie do tekstur.....................................................................177
Tekstury od 5rodka..................................................................................................................177
Powierzchnie i pamiG......................................................................................................178
Rozmiar a potga dwójki..................................................................................................179
Poziomy powierzchni i mipmapy.....................................................................................179
Tworzenie tekstur....................................................................................................................180
Tekstury i wierzchołki............................................................................................................183
Tekstury i urz9dzenie..............................................................................................................185
Problemy zwi9zane z wydajno5ci9.........................................................................................185
Zagadnienia zaawansowane....................................................................................................186
Tekstury i kolory...............................................................................................................186
Macierz tekstury...............................................................................................................187
Wielokrotne teksturowanie — multiteksturowanie..........................................................187
Program...................................................................................................................................187
Podsumowanie........................................................................................................................196
8
DirectX. Rendering w czasie rzeczywistym
Rozdział 13. Stany faz tekstur.................................................................................199
Ustawianie stanu fazy tekstury...............................................................................................200
Ł9czenie tekstur i multiteksturowanie....................................................................................200
D3DTSS_COLOROP i D3DTSS_ALPHAOP.................................................................201
D3DTSS_COLORARG1, D3DTSS_COLORARG2,
D3DTSS_ALPHAARG1 i D3DTSS_ALPHAARG2................................................201
Operacje trójargumentowe (D3DTSS_COLORARGO
i D3DTSS_ALPHAARGO)......................................................................................202
D3DTSS_RESULTARG..................................................................................................202
Sprawdzanie mo4liwo5ci urz9dzenia................................................................................202
Odwzorowania nierówno5ci (ang. bump mapping)................................................................203
Stany dotycz9ce współrzdnych tekstury...............................................................................203
D3DTSS_TEXTCOORDINDEX.....................................................................................203
D3DTSS_ADDRESSU, D3DTSS_ADDRESSV i D3DTSS_ADDRESSW...................203
D3DTSS_BORDERCOLOR............................................................................................205
D3DTS_TEXTURETRANSFORMFLAGS.....................................................................205
Sprawdzanie mo4liwo5ci urz9dzenia................................................................................205
Filtrowanie tekstury i mipmapy..............................................................................................205
D3DTSS_MAGFILTER...................................................................................................206
D3DTSS_MINFILTER....................................................................................................207
D3DTSS_MIPFILTER.....................................................................................................207
D3DTSS_MIPMAPLODBIAS.........................................................................................207
D3DTSS_MAXMIPLEVEL.............................................................................................207
D3DTSS_MAXANISOTROPY.......................................................................................207
Sprawdzanie mo4liwo5ci urz9dzenia................................................................................208
Stany faz tekstur, a mechanizmy shader.................................................................................208
Kod..........................................................................................................................................208
Podsumowanie........................................................................................................................215
Rozdział 14. Testowanie głbi i przezroczysto'4.......................................................217
Testowanie głbi.....................................................................................................................217
Bufor W............................................................................................................................219
Przesunicie Z...................................................................................................................219
Zerowanie bufora głbi.....................................................................................................220
Przezroczysto5G.......................................................................................................................220
Warto5G alfa w plikach formatu 32-bitowego..................................................................220
Kanał alfa wygenerowany za pomoc9 programu DirectX Texture Tool..........................221
Kanał alfa okre5lony za pomoc9 parametru KluczKoloru................................................221
Wł9czanie przezroczysto5ci..............................................................................................222
Test alfa...................................................................................................................................222
Problemy wydajno5ci..............................................................................................................223
Kod..........................................................................................................................................223
Podsumowanie........................................................................................................................231
Cz IV Mechanizmy shader..........................................................233
Rozdział 15. Mechanizmy vertex shader...................................................................235
Co to jest vertex shader?.........................................................................................................236
Rejestry danych o wierzchołkach.....................................................................................237
Rejestry stałych.................................................................................................................238
Rejestr adresowy...............................................................................................................238
Rejestry tymczasowe........................................................................................................238
Wynik działania mechanizmów vertex shader.................................................................238
Kod mechanizmów shader......................................................................................................239
Zgłoś jeśli naruszono regulamin