A beállítást mentettük, naponta értesítjük a beérkező friss kiadványokról
A beállítást mentettük, naponta értesítjük a beérkező friss kiadványokról
Fülszöveg
Eltelt három év a „Grafika és játékprogramozás DirectX-szel" című könyvünk megjelenése óta. A fogadtatás nagyon jó, és ezúton is köszönjük a számos visszajelzést: semmi sem motivál jobban egy szakkönyvírót. mint Olvasói köszönő szavai. És íme, itt az ígért folytatás!
A könyv egy igencsak aktuális témakörrel foglalkozik, amely nélkül egyre nehezebb elképzelni a 3D-alkalmazást és a játékfejlesztést. A shaderekről van szó, amelyek teljességgel leváltották a rugalmatlan, rögzített műveleti sorrendű csővezetéket Utóbbit a Microsoft teljességgel leváltotta a DirectX 10-es verziójától felfele, és a Microsoft Xbox 360-as konzoljára sem fejleszthetünk már alkalmazást a régi jó „Fixed Function Pipeline" támogatásával.
A PC-s grafikus kártyák szédületes fejlődésen estek át az utóbbi 15-20 évben. Ugyanakkor a programozhatóságuk furcsa ívet írt le. Eleinte alacsony, portszinten kellett programozni a grafikus chipeket, hogy mai szemmel hihetetlen hatásokat csalogassunk elő az immár...
Tovább
Fülszöveg
Eltelt három év a „Grafika és játékprogramozás DirectX-szel" című könyvünk megjelenése óta. A fogadtatás nagyon jó, és ezúton is köszönjük a számos visszajelzést: semmi sem motivál jobban egy szakkönyvírót. mint Olvasói köszönő szavai. És íme, itt az ígért folytatás!
A könyv egy igencsak aktuális témakörrel foglalkozik, amely nélkül egyre nehezebb elképzelni a 3D-alkalmazást és a játékfejlesztést. A shaderekről van szó, amelyek teljességgel leváltották a rugalmatlan, rögzített műveleti sorrendű csővezetéket Utóbbit a Microsoft teljességgel leváltotta a DirectX 10-es verziójától felfele, és a Microsoft Xbox 360-as konzoljára sem fejleszthetünk már alkalmazást a régi jó „Fixed Function Pipeline" támogatásával.
A PC-s grafikus kártyák szédületes fejlődésen estek át az utóbbi 15-20 évben. Ugyanakkor a programozhatóságuk furcsa ívet írt le. Eleinte alacsony, portszinten kellett programozni a grafikus chipeket, hogy mai szemmel hihetetlen hatásokat csalogassunk elő az immár kőkorszakinak számító EGA- és VGA-kártyákból Aztán jött a szép új világ - a Windows95 és a 3D-gyorsítással felvértezett videokártyák; az assembly-tudásnál egyszer csak fontosabb lett néhány keretrendszer-API és az objektumorientáltság ismerete. Azonban viszonylag gyorsan mindenkinek - játékosoknak és fejlesztőknek egyaránt - elege lett a matt műanyag hatású képi világból, amely a korai DirectX-es játékokból visszaköszönt.
A változás törvényszerű volt. Az idő kereke kisvártatva fordult: gyakorlatilag újra felismertük, hogy sokkal többet ki lehet hozni a hardverből, ha az Ő nyelvét beszéljük. A mai fejlesztő helyzete azonban sokkal jobb, hiszen a hardverközeli szintaxis helyett egyből valamelyik magas szintű shadernyelvvel kezdheti, és a tényleges feladatra koncentrálhat, a grafikus processzor regisztereinek megismerése helyett.
Könyvünknek egyik célja a programozható grafikus csővezeték megismertetése, a lehető legérthetőbb formában. A másik célkitűzés a játékfejlesztés és játéktervezés további, gyakorlati aspektusainak bemutatása.
Reményeink szerint ennek a könyvnek is hasonlóan jó fogadtatása lesz, mint elődjének, és hozzájárul a méltán híres magyar játékfejlesztői tábor bővítéséhez.
Vissza
Tartalom
Köszönetnyilvánítás xv
Előszó xvii
1. Bevezető 1
2. 3D-történelem 3
3. Matematikai alapok 7
3.1. Trigonometriai gyorstalpaló 7
3.1.1. A szög. Fok és radián 7
3.1.2. Szögfüggvények a derékszögű háromszögben 9
3.1.3. Szögfüggvények az egységsugarú körben 10
3.1.4. A Descartes-féle derékszögű koordinátarendszer 12
3.1 Vektorok 17
3.2.1. Szabadvektor, helyvektor 17
3.2.2. Vektor megadása koordinátákkal 18
323. A vektor hossza 19
3.2.4. Vektorok összeadása 22
323. Vektorok kivonása 24
32.6. Vektor szorzása számmal 25
32.7. Egységvektor, vektor normalizálása 26
3.28. A skalárszorzat (dot product) 27
32.9. A vektoriális szorzat (cross product) 29
32.10. Koordinátarendszer-váltás 31
Vektorok transzformációja koordinátarendszerek között 31
Pontok transzformációja koordinátarendszerek között 33
32.11. Sugarak 35
33. A sík 38
3.3.1. A normálvektor 36
3.3.2. A sík létrehozása normál vektora és egy pontja segítségével 38
3.3.3. A sík létrehozása három pontja alapján 39
3.3.4. Pont és sík helyzete 41
3.3.5. Sík normálveklorának normalizálása 41
3.3.6. Sík transzformálása 42
3.3.7. Szakasz és sík döféspontja 43
331 Baricentrikus koordináták 45
3.4. Mátrixok 46
3.4.1. A mátrix meghatározása 47
3.4.2. Négyzetes mátrixok 48
3.4.3. A sor- és az oszlopmátrix 49
3.4.4. Egységmátrix és nullamátrix 49
3.45. Mátrixok összeadása és kivonása 50
3.4.6. Mátrixok szorzása skalárral 51
3.4.7. Mátrix szorzása mátrixszal 51
3.4.8. Vektorok szorzása mátrixszal 52
3.4.9. Koordinátarendszer-váltó transzformációs mátrix 53
3.4.10. Mátrix transzponáltja 54
3.4.11. Az inverz mátrix 55
35. Kvaterniók 56
Geometriai transzformációk 61
4.1. lineáris transzformációk 61
4.1.1. Átméretezés (skálázás) két dimenzióban 62
4.12. Háromdimenziós skálázás 64
4.13. Forgatás 2D-ben 64
4.1.4. Háromdimenziós forgatás a koordinátatengelyek körül 67
4.2. Affin transzformációk 70
4.2.1. Eltolás 71
4.2.2. Háromdimenziós eltolás 71
4.2.3. Homogén koordináták 73
4.2.4. Az eltolás transzformációs mátrixa 74
4.2.5. A skálázás transzformációs mátrixa 75
4.2.6. A koordinátatengelyek körüli forgatás transzformációs mátrixai 76
4.2.2. Tetszőleges tengely körüli forgatástranszformációt mátrixa 80
4.3. A "gimbal lock" 80
4.4 Forgatás kvaterniókkal 83
4.5. Transzformációk összekapcsolása 86
A számítógépes képszintézis 89
5.1. Poligonhálók. A háromszög-modellezés 92
5.1.1. Geometriai primitívek 95
5.2. A virtuális kamera 98
5.3. Vetítések 99
5.3.1. Párhuzamos vetítések 101
5.3.2. Perspektívavetítések 102
5.4. A számítógépes képszintézis szakaszai 103
5.4.1. Világ-transzformáció 103
5.4.2. Nézeti transzformáció 105
5.4.3. Megvilágítás, fényforrások 107
5.4.4. Vetületi transzformáció 1 107
5.4.5. Látható felületek meghatározása. Hátsó lap eldobása 114
5.4.6. Képpontok takarása. A Z-puffer algoritmus 118
5.4.7. Optimalizálás mélységi rendezéssel 122
5.4.8. Vágás 123
5.4.9. Képernyő-transzformáció 123
5.4.10. Raszterizáció 125
Megvilágítás és árnyalás 127
6.1. Fényforrások 128
6.1.1. Szórt háttérvilágítás 128
6.1.2. Direkciónál b fényforrások (directional light) 129
6.13. Pontszerű fényforrások (point light) 130
6.1.4. Reflektorszerű fényforrások 131
62. Megvilágítási modellek 131
62.1. Általános háttér-megvilágítás 132
622. Terjedő, Lambert-féle fényvisszaverődés 132
623. A Lambert-féle távolság- és koszinuszfüggvény 132
6.2.4. Fényfolt-visszaverődés 134
625. Tükröződő fényvisszaverődés -135
6.2.6. Átlátszóság -135
6.2.7. Árnyékképzés 135
63. Árnyalási modellek 136
63.1. Konstans árnyalás 136
63.2. Interpolált árnyalás 137
7. Mintafeszítés 143
7.1. Textúrakoordináták 144
7.2. Mintaburkolás paraméterezés 146
72.1. Gömbfelületek mintaburkolása 146
722 Hengeres mintaburkolás 146
73. Textúracímzési módok 149
7.4. Mintaszűrés 151
73. Textúrarészletességi szintek 152
7.6. Mántalkeverés, multitextúrázás 153
7.7. Tömörített textúraformátumok 154
A Direct3D 157
8.1. Alapfogalmak 157
8.1.1. HAL, SW és REF eszközök 159
8.1.2. A COM szoftverfejlesztési modell 160
8.1.3. Felületek 162
8.1.4. Lapváltás 165
8.1.5. Pixelformátumok 166
8.1.6. Memóriaosztályok 166
8.1.7. Csúcspontfeldolgozási képességei 169
82 A Direct3D környezet inicalizálása 170
821. Az IDirect3D9 interfész lekérdezése 172
822. Képpontformátum-támogatás ellenőrzése 172
8.2.3. Vertex-feldolgozási képességek lekérdezése 174
8.2.4. A létrehozandó eszköz paramétereinek beállítása 175
825. Az eszköz létrehozása 177
826. Az eszköz érvénytelenné válása 180
8.3. DirectX hibakereső 181
9. Direct3D-alapú alkalmazások fejlesztése 185
9.1. Fejlesztőkörnyezet, beállítások 185
9.2 A legegyszerűbb DirectX-program 187
921. A WinMain függvény 188
9.2.2. Az ablak létrehozása 189
923. Az Üzenetkezelő 191
9.2.4. A Direct3D inicializálása 193
9.2.5. Az alkalmazás főciklusa 195
9.2.6. Megjelenítés 197
9.2.7. Kilépés, erőforrások felszabadítása 200
9.3. Teljes képernyős üzemmód 201
9.4. A csúcspontformátum megadása 205
9.5. A vertex- és az indexpuffer 208
95.1. A pufferek osztályzása. Optimalizálási szempontok 212
9.6. Hozzáférés a puffermemóriához 214
9.7. Megjelenítés előtti beállítások 217
9.7.1. A vertexcsa torna 217
9.7.2. Az indexpuffer érvénybe léptetése 218
9.73. A vertexdeklaráció megadása 218
9.8. A geometria megjelenítése: DrawPrimitive és DrawIndexedPrimitive 218
10. Shaderprogramozás, HLSL és az effektkeretrendszer 221
10.1. HLSL, árnyalók, regiszterek - alacsony szintű megközelítés 222
102. Shadertámogatás ellenőrzése 225
103. Shaderek, effektek. Az FX-keretrendszer 227
103.1. A vertexshader 230
103.2. A pixelshader 235
1033. Az effektállomány 237
10.4. Az effektfordító 240
105. Az effcekt az alkalmazás perspektívájából 242
105.1. Effektparaméterek 245
1052. Az effekt bevetése 248
10.6. Hibakeresés a shaderben 250
11. Shaderalapú fejlesztés a gyakorlatban
11.1. A példaprogramok felépítése. A keretrendszer.
11.1.1. Hibakezelés, naplózás
Naplózás 256
Kivételkezelés 258
11.12 A központi függvény 260
11-13. Inicializálás, ellenőrzések 261
11.1.4. A CPrimitive osztály 264
11.15. Váltás teljes képernyős és ablakos üzemmód között 276
11.1 16. Beviteli eszközök - a billentyűzet és az egér kezelése 279
11.1.7. Szöveg megjelenítése 287
11.18. Időzítés 291
11.1 A Kamera kezelés 295
11.2. Az első effekt - Huzalvázas modell megjelenítése 299
11-2.1. Gyakorlatok 301
113. Színek 302
11.4. Színes geometria megjelenítése - 305
11.4.1. Gyakorlatok 310
115.3D-objektumok betöltése külső állományból.
Az X-formátum 311
115.1. Az X-modell betöltése 312
115.2. Anyagtulajdonságok és textúrák lekérdezése 314
1153. Megjelenítés 316
115.4. A modell csúcspontformátumának módosítása 317
1155. Az eredeti vertexformátum összevetése elvárásainkkal 319
115.6. A modellháló optimalizálása 320
11.6. Megvilágítási modellek 322
11.6.1. Általános háttérmegvilágítás 323
11.6.2. Terjedő, diffúz fényvisszaverődés 327
11.63. Fényfolt-visazaverődés 336
11.6.4. Pontszerű fényforrások 342
11.65. Reflektorszerű fényforrások 347
11.6.6. Képpontonkénti megvilágítás - a Phong-árnyalás 351
11.6.7. Képpontonkénti megvilágítás - a Phong-Blinn árnyalás 355
11.6.8. Gyakorlatok 358
11.7. Mintaillesztés 358
11.7.1. Textúrázon kocka megjelenítése 359
A textúrakoordinátákat tartalmazó vertexformátum 360
A kocka vertexpufferének feltöltése 361
A textúra betöltése- 363
A textúra bevetése. Az effektállomány 367
Mintavételezők 368
Mozaikszerű elrendezés, csempézés 370
A képpontárnyaló 372
11.7.2. Textúrakoordináta-alapú animáció 373
11.7.3. Textúrázott X-modell 375
11.7.4. Multitextúrázás 377
11.7.5. Gyakorlatok 385
11.8. Átlátszóság. Az anyag és a textúra alfacsatorna alkalmazása 385
11.8.1. Megjelenítési sorrend az átlátszó objektumok esetében 389
11.8.2. Anyag- és textúraalapú alfakeverés 390
11.8.3. Gyakorlatok 393
11.9. Speciális effektek 393
11.9.1. Rajzfilmszerű megjelenítés 393
11.9.2. Buckaleképzés 397
11.9.3. Környezeti térkép 404
Fényvisszaverő és fénytörő környezetleképzés 408
11.9.5. Gyakorlatok 411
HLSL-függelék 413
HLSL-utasítások (gyorsreferencia) 413
A HLSL alapelemei 417
Kulcsszavak 417
Adattípusok 418
Skalárok 418
Vektorok 418
A mátrix típus 419
Fontosabb kulcsszavak 420
Típusmódosítók 421
Tárgymutató 427
Nyisztor Károly műveinek az Antikvarium.hu-n kapható vagy előjegyezhető listáját itt tekintheti meg: Nyisztor Károly könyvek, művek
Megvásárolható példányok
Nincs megvásárolható példány
A könyv összes megrendelhető példánya elfogyott. Ha kívánja, előjegyezheti a könyvet, és amint a könyv egy újabb példánya elérhető lesz, értesítjük.
Google, Facebook, Apple, Microsoft fiókkal való belépés/regisztráció eseténautomatikusan elfogadja az Általános Szerződési Feltételeket.
Elfelejtett jelszó
Kérjük, adja meg azonosítóját, és a hozzá tartozó email címet, hogy jelszavát elküldhessük Önnek!
A *-gal jelölt mezők kitöltése kötelező!
Azonosító név/E-mail cím* Azonosító és e-mail cím megegyező
E-mail cím*
(2009 március óta a regisztrált ügyfelek azonosító neve megegyezik az email címmel)
Ha az azonosítóját sem tudja megadni, kérjük, hívja az ügyfélszolgálati vonalat:
+36-62-452-833
×
1
2
3
Regisztráció
×
Regisztráció
Regisztrációja sikeresen megtörtént.
Megadott e-mail címére megerősítő e-mailt küldtünk. Ahhoz, hogy a regisztrációja véglegesedjen, és le tudja adni rendeléseit, kérjük, kattintson a levélben található linkre. A megerősítő link a kiküldéstől számított 48 óráig érvényes, ezután a regisztrációs adatok törlésre kerülnek.
Kérjük, jelölje meg az érdeklődési körébe tartozó témaköröket!
Mehet
×
Regisztráció
Az ön által megjelölt témakörök:
Temakor_1
Beállíthatja, hogy emailben értesítőt kapjon az újonnan beérkezett példányokról a bejelölt témaköröknek megfelelően.
Beállított értesítőit belépés után bármikor módosíthatja az Értesítő menüpont alatt:
létrehozhat új témaköri értesítőt
inaktiválhatja értesítőjét, ha éppen nem kíván a megadott témában értesítőt kapni
törölheti véglegesen az adott értesítőjét
szerkesztheti jelenlegi értesítőjét, ha még részletesebben szeretné megadni mi érdekli.
Az Ön választása alapján naponta vagy 3 naponta kap tőlünk emailt a beállított értesítőjéről.