Tartalomjegyzék. Köszönetnyilvánítás... xv. Előszó... xvii. 1. Bevezető... 1. 2. 3D-történelem... 3. 3. Matematikai alapok... 7



Hasonló dokumentumok
1. Bevezetés 1. Köszönetnyilvánítás A számítógépes játékfejlesztésről 3

Lineáris algebra I. Vektorok és szorzataik

Matematika emelt szint a évfolyam számára

Matematika. Specializáció évfolyam

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

9. ÉVFOLYAM. Tájékozottság a racionális számkörben. Az azonosságok ismerete és alkalmazásuk. Számok abszolútértéke, normál alakja.

MATEMATIKA TAGOZAT 5-8. BEVEZETŐ. 5. évfolyam

Tartalomjegyzék. Typotex Kiadó III. Tartalomjegyzék

Osztályozóvizsga követelményei

CNC PROGRAMOZÁS A CNC szerszámgépek alkalmazásának főbb előnyei: CNC szerszámgépek fő részei Számjegyvezérlési módok CNC gépeken

Tanmenet Matematika 8. osztály HETI ÓRASZÁM: 3,5 óra ( 4-3) ÉVES ÓRASZÁM: 126 óra

Tartalom. Descartes-koordináták. Geometriai értelmezés. Pont. Egyenes. Klár Gergely 2010/2011. tavaszi félév

Gyõrffy Magdolna. Tanmenetjavaslat. A matematika csodái 4. osztályos tankönyvcsaládhoz A KERETTANTERV SZERINT ÁTDOLGOZVA!

Klár Gergely 2010/2011. tavaszi félév

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 11.E OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

Robotino programozása

TDK DOLGOZAT SZERZŐ: POZSEGOVICS PÉTER

TARTALOMJEGYZÉK ELŐSZÓ ÉVI I. TÖRVÉNY A MUNKA TÖRVÉNYKÖNYVÉRŐL*.4 ELSŐ RÉSZ ÁLTALÁNOS RENDELKEZÉSEK.4 I. FEJEZET BEVEZETŐ RENDELKEZÉSEK.

Tartalom. Matematikai alapok. Termékgyártási példafeladat. Keverési példafeladat Szállítási példafeladat Hátizsák feladat, egészértékű feladat

Osztályozóvizsga követelményei

HLSL programozás. Szécsi László

Farkas Gyula Szakkollégium Bit- és számtologatók. DirectX9 felhasználása számítógépes grafikában (bevezető egy primitív keretrendszer)

Loványi István vizsgakérdései kidolgozva (béta)

Helyi tanterv Német nyelvű matematika érettségi előkészítő. 11. évfolyam

NT Matematika 9. (Heuréka) Tanmenetjavaslat

Nyugat-magyarországi Egyetem Geoinformatikai Kara. Dr. Engler Péter. Fotogrammetria 2. FOT2 modul. A fotogrammetria geometriai és matematikai alapjai

Pákh György a Szent Margit Gimnázium tanára Budapest, augusztus 27.

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Geometria I.

Ferde fényképezés. Szalkai István Pannon Egyetem, Veszprém, June 18, 2015

Számítógépes grafika

7. Szisztolikus rendszerek (Eberhard Zehendner)

elérhetősége: 1037 Budapest, Csillaghegyi út 25. postacím: 1300 Budapest, Pf.: 152., tel: , fax:

Geometriai modellezés. Szécsi László

Geometria, évfolyam

Dr. Mikó Balázs

Árvainé Libor Ildikó Murátiné Szél Edit. Tanítói kézikönyv. tanmenetjavaslattal. Sokszínû matematika. 4

MATEMATIKA ÉRETTSÉGI VIZSGA ÁLTALÁNOS KÖVETELMÉNYEI

NBI/B Nıi Keleti csoport bajnokság évi sorsolása

Plakátok, részecskerendszerek. Szécsi László

Fejezetek az abszolút geometriából 6. Merőleges és párhuzamos egyenesek

Széchenyi István Szakképző Iskola

I. Gondolkodási módszerek: (6 óra) 1. Gondolkodási módszerek, a halmazelmélet elemei, a logika elemei. 1. Számfogalom, műveletek (4 óra)

Halmazok Halmazok, részhalmaz, halmazműveletek, halmazok elemszáma

MATEMATIKA évfolyam. Célok és feladatok. Fejlesztési követelmények

Számítógépes geometria (mester kurzus)

Készítette:

AKCIÓS BETÉT HIRDETMÉNY

A MAGYAR FÖLDGÁZRENDSZER ÜZEMI ÉS KERESKEDELMI SZABÁLYZATA

Zitterbewegung. általános elmélete. Grafén Téli Iskola Dávid Gyula ELTE TTK Atomfizikai Tanszék

A továbbhaladás feltételei fizikából és matematikából

Tanmenetjavaslat 5. osztály


ÁBRÁZOLÓ GEOMETRIA. Csavarvonal, csavarfelületek. Összeállította: Dr. Geiger János. Gépészmérnöki és Informatikai Kar MISKOLCI EGYETEM

Eötvös Loránd Tudományegyetem Természettudományi Kar Geometriai Tanszék AZ EVOLUTÁK VILÁGA. BSc szakdolgozat. tanári szakirány. Budapest, 2013.

MATEMATIKA TANMENET SZAKKÖZÉPISKOLA 9.A-9.C-9.D OSZTÁLY HETI 4 ÓRA 37 HÉT/ ÖSSZ 148 ÓRA

Egy irányított szakasz egyértelműen meghatároz egy vektort.

GPGPU alapok. GPGPU alapok Grafikus kártyák evolúciója GPU programozás sajátosságai

Számítógépes Graka - 4. Gyak

E L T E I K I N F O R M A T I K A T A N Á R I S Z A K N A P P A L I T A G O Z A T B U D A P E S T, 2003.

Tartalomjegyzék ÁLTALÁNOS ISMERETEK... 1 LEVELEZÉS... 15

Tanmenetjavaslat a 6. osztályos matematika kísérleti tankönyvhöz

Tartalomjegyzék. Köszönetnyilvánítás. 1. Az alapok 1

EMMI kerettanterv 51/2012. (XII. 21.) EMMI rendelet 2. sz. melléklet Matematika az általános iskolák 5 8.

HELYI TANTERV MATEMATIKA (emelt szintű csoportoknak) Alapelvek, célok

3D koordináta-rendszerek

Az áprilisi vizsga anyaga a fekete betűkkel írott szöveg! A zölddel írott rész az érettségi vizsgáig még megtanulandó anyag!

Környezettani alapismeretek Tantárgy kódja

Matematika. Padányi Katolikus Gyakorlóiskola 1

MATEMATIKA 5 8. ALAPELVEK, CÉLOK

SHADOW MAPPING MODERN GPU-KON

MAGISTER GIMNÁZIUM TANMENET OSZTÁLY

Tanulási segédlet 4. osztály

Ügyeljen arra, hogy a programmodul sorszáma és megnevezése azonos legyen a I. A program általános tartalma fejezet 11. pontjában írtakkal!

1. sz. melléklet a 23./2013 SMKI Igazgatói intézkedéshez. A Somogy Megyei Katasztrófavédelmi Igazgatóság Adatvédelmi és Adatbiztonsági Szabályzata

AKCIÓS BETÉT HIRDETMÉNY

Pedagógiai program. IX. kötet

Számítógépes Grafika mintafeladatok

Matematika helyi tanterv 5 8. évfolyam számára Alapelvek, célok

Matematika (mesterképzés)

A kvantummechanika általános formalizmusa

Széchenyi István Egyetem, 2005

értelmezéséhez, leírásához és kezeléséhez. Ezért a tanulóknak rendelkezniük kell azzal a képességgel és készséggel, hogy alkalmazni tudják

Kombinatorika évfolyam. Szerkesztette: Surányi László Ábrák: Hraskó András december 6.

Vida János. Geometriai modellezés III. Görbék és felületek

WOP feladatgyűjtemény - marás. Mathematisch Technische Software-Entwicklung GmbH CNC-TECHNIKA. WOP feladatgyűjtemény - marás.

1. Telítetlen szénhidrogének (szerkezet, fizikai és kémiai tulajdonságok, előállítása, jelentőség).

ÍRÁSBELI SZAVAZÁS /ELJÁRÁSI SZABÁLYOK/ FŰTÉSI ENERGIAKÖLTSÉG-CSÖKKENTÉS 2013.

Matematika évfolyam. tantárgy 2013.

ARCHLine.XP Windows. Újdonságok. Felhasználói kézikönyv. ARCHLine.XP 2009 Újdonságok

Élpont osztályozáson alapuló robusztus tekintetkövetés

MATEMATIKA I. RÉSZLETES ÉRETTSÉGI VIZSGAKÖVETELMÉNY A) KOMPETENCIÁK

28/2011. (IX. 6.) BM rendelet az Országos Tűzvédelmi Szabályzatról

x = 1 = ı (imaginárius egység), illetve x 12 = 1 ± 1 4 2

A dinamikus meteorológia oktatása az ELTE-n. Tasnádi Péter, Weidinger Tamás ELTE Meteorológiai Tanszék

ORSZÁGOS TŰZVÉDELMI SZABÁLYZAT

TANMENET javaslat. a szorobánnal számoló. osztály számára. Vajdáné Bárdi Magdolna tanítónő

Műanyag szigetelő 2,8 mm-es csúszóérintkező hüvelyhez ( ) szín kiszerelés AP szám db/csomag fehér

XIII. Bolyai Konferencia Bodnár József Eötvös József Collegium, ELTE TTK, III. matematikus. A véletlen nyomában

MATEMATIKA A és B variáció

Finite Element Methods for Active Contour Models and Balloons for 2D and 3D Images

Átírás:

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.2. Vektorok... 17 3.2.1. Szabadvektor, helyvektor... 17 3.2.2. Vektor megadása koordinátákkal... 18 3.2.3. A vektor hossza... 19 3.2.4. Vektorok összeadása... 22 3.2.5. Vektorok kivonása... 24 3.2.6. Vektor szorzása számmal... 25 3.2.7. Egységvektor, vektor normalizálása... 26 3.2.8. A skalárszorzat (dot product)... 27 3.2.9. A vektoriális szorzat (cross product)... 29 3.2.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 3.2.11. Sugarak... 35 3.3. A sík... 35 3.3.1. A normálvektor... 36 3.3.2. A sík létrehozása normálvektora é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álvektorá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 3.3.8. 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.4.5. 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 3.5. Kvaterniók... 56 4. 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.1.2. Háromdimenziós skálázás... 64 4.1.3. 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 2D-ben... 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.7. Tetszőleges tengely körüli forgatás transzformációs mátrixa... 80 4.3. A gimbal lock... 80 4.4. Forgatás kvaterniókkal... 83 4.5. Transzformációk összekapcsolása... 86 viii

5. 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ó... 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 6. 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. Direkcionális fényforrások (directional light)... 129 6.1.3. Pontszerű fényforrások (point light)... 130 6.1.4. Reflektorszerű fényforrások... 131 6.2. Megvilágítási modellek... 131 6.2.1. Általános háttér-megvilágítás... 132 6.2.2. Terjedő, Lambert-féle fényvisszaverődés... 132 6.2.3. A Lambert-féle távolság- és koszinuszfüggvény... 132 6.2.4. Fényfolt-visszaverődés... 134 6.2.5. 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 6.3. Árnyalási modellek... 136 6.3.1. Konstans árnyalás... 136 6.3.2. Interpolált árnyalás... 137 ix

7. Mintafeszítés... 143 7.1. Textúrakoordináták... 144 7.2. Mintaburkolás, paraméterezés... 146 7.2.1. Gömbfelületek mintaburkolása... 146 7.2.2. Hengeres mintaburkolás... 148 7.3. Textúracímzési módok... 149 7.4. Mintaszűrés... 151 7.5. Textúrarészletességi szintek... 152 7.6. Mintakeverés, multitextúrázás... 153 7.7. Tömörített textúraformátumok... 154 8. 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... 168 8.1.7. Csúcspontfeldolgozási képességek... 169 8.2. A Direct3D környezet inicializálása... 170 8.2.1. Az IDirect3D9 interfész lekérdezése... 172 8.2.2. 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 8.2.5. Az eszköz létrehozása... 177 8.2.6. 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 9.2.1. A WinMain függvény... 188 9.2.2. Az ablak létrehozása... 189 9.2.3. Az üzenetkezelő... 191 9.2.4. A Direct3D inicializálása... 193 9.2.5. Az alkalmazás főciklusa... 195 x

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 9.5.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 vertexcsatorna... 217 9.7.2. Az indexpuffer érvénybe léptetése... 218 9.7.3. 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 10.2. Shadertámogatás ellenőrzése... 225 10.3. Shaderek, effektek. Az FX-keretrendszer... 227 10.3.1. A vertexshader... 230 10.3.2. A pixelshader... 235 10.3.3. Az effektállomány... 237 10.4. Az effektfordító... 240 10.5. Az effekt az alkalmazás perspektívájából... 242 10.5.1. Effektparaméterek... 245 10.5.2. Az effekt bevetése... 248 10.6. Hibakeresés a shaderben... 250 11. Shaderalapú fejlesztés a gyakorlatban... 253 11.1. A példaprogramok felépítése. A keretrendszer... 254 11.1.1. Hibakezelés, naplózás... 255 Naplózás... 256 Kivételkezelés... 258 11.1.2. A központi függvény... 260 11.1.3. Inicializálás, ellenőrzések... 261 11.1.4. A CPrimitive osztály... 264 xi

11.1.5. Váltás teljes képernyős és ablakos üzemmód között... 276 11.1.6. Beviteli eszközök a billentyűzet és az egér kezelése... 279 11.1.7. Szöveg megjelenítése... 287 11.1.8. Időzítés... 291 11.1.9. Kamerakezelés... 295 11.2. Az első effekt Huzalvázas modell megjelenítése... 299 11.2.1. Gyakorlatok... 301 11.3. Színek... 302 11.4. Színes geometria megjelenítése... 305 11.4.1. Gyakorlatok... 310 11.5. 3D-objektumok betöltése külső állományból. Az X-formátum... 311 11.5.1. Az X-modell betöltése... 312 11.5.2. Anyagtulajdonságok és textúrák lekérdezése... 314 11.5.3. Megjelenítés... 316 11.5.4. A modell csúcspontformátumának módosítása... 317 11.5.5. Az eredeti vertexformátum összevetése elvárásainkkal... 319 11.5.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.6.3. Fényfolt-visszaverődés... 336 11.6.4. Pontszerű fényforrások... 342 11.6.5. 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ázott 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 xii

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 xiii