Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Játékfejlesztés
2
Időpontok !!!MINDEN HÉTEN!!! Kedd 16:15-17:00 IL407
Szerda 14:15-15:45 IL407 ???
3
Követelmények Órák látogatása Házi feladat Vizsga
Ebből kettőt kell teljesíteni…
4
Honlap
5
Miről lesz szó? Modellezés - Blender Textúrázás - GIMP
Animáció - Blender Grafika - Ogre3D Fizika – PhysX ??? GUI ??? ??? Hálózat ??? ??? Hangok ???
6
Miről lesz szó? Árnyalás, textúrázás, light map, árnyékok, bump map, shaderek (Cg) Csontváz animáció (sw / hw??) Arc animáció (sw / hw)?? Merevtest fizika (ragdoll??) Részecskerendszerek Speciális effektek…
7
Speciális Effektek
8
Történelem
9
Történelem 1973 1981
10
1991, Wolfenstein3D
11
1993, Doom
12
1996, Quake
13
1997, Quake 2 I(x,V)=ILightMap+Ie(x,V)+ S I(L) fr(L,x,V) cos’
14
1999 Quake 3, Unreal Tournament
15
2004 Doom3 I(x,V)=Ie(x,V)+ S I(L) h(x, L) fr(L,x,V) cos’
16
2004 Half-Life 2 I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(’,x,) cos’dw’
17
Játékfejlesztés szereplői
Design Programozói részleg Művészeti részleg Hang részleg Menedzsment Minőség biztosítás Üzleti részleg Utóélet...
18
Design Vezető designer (Lead Designer) Játékmenet tervező
Pálya/küldetés tervező Történet és párbeszéd tervező A játékot legelőször is meg kell tervezni. Ha a kiadó felvet egy ötletet, a fejlesztő cégnek egy vezető designert kell felmutatnia. Ez gyakran a fejlesztő cég vezetője, alapítója. Koordinálja a tervezőket, olyan mint egy rendező, nem kell az egész játékot neki megtervezni. Ő feladata, hogy eldöntse mi tartozik bele a játékba és mi nem. Játékmenet designer: általában programozói tapasztalata van. Lead designer, programozók és a pálya tervezők között helyezkedik el, koordinál. Pályatervező: a játékok kis talányok, megoldandó feladatok sorozatai. Ezek a tervezők gyakran programozók, scriptelők. Néha művészek, térképdarabokkal babrálva. Valamikor csak szövegesen terveznek. Történet és dialógus: egészen más, mint novellát írni. A játékok interaktív alkalmazások. Vezető designerrel sokat kell egyeztetni, hogy merre fusson a történet fonala, és a küldetés tervezőkkel is rengeteget kell egyeztetni, hogy mit lehet és mit nem, mit enged meg a technológia (pálytervező szoftver, scriptek stb.). Ezek a feladatkörök természetesen nem feltétlenül egy emberhez tartoznak, egy designer több részterület munkáját is lefedheti.
19
Programozói részleg Vezető programozó
Játék mechanika/játékmenet programozó 3D grafikai programozó AI programozó GUI programozó Fizika Audio Eszköz programozó Pályaszerkesztő programozás Hálózat programozás Sokak szerint az igazi tervezők mégiscsak a programozók és a művészek. A tervezők tervezgetnek, de a végső játék mégiscsak úgy néz ki ahogy azt a programozók és a művészek megcsinálják. A végső kép a designerek, programozók és művészek kollektív látomásaiból alakul ki. A programozók feladata a játék kódjának elkészítése: 3d motor, hálózat, ai stb. Általában a kódolási munkák miatt csúsznak a projektek. Ez jellemző a szoftverfejlesztésre általában. Nincs elég biztonságos kódolási struktúra. Ez persze folyamatosan fejlődik... Vezető programozó: általában a legtapasztaltabb programozó, a legnagyobb kihívást jelentő programozási feladatokkal birkóznak meg. Általában ők a projekt hősei (John Carmack). Általában sok programozó dolgozik egy projekten, akár 25 ember. Valakinek át kell látnia ezeknek az embereknek a munkáját és jelenteni tud a projekt vezetőség felé. Ezek az emberek a technical director-ok. Általában kevesebbet kódolnak, többet menedzselnek. A technikal director lehet a vezető programozó is, de előfordul, hogy külön embert igényel (a vezető programozó túl elfoglalt, nem érdekli a menedzsment v. alkalmatlan a menedzsmentre). Játék mechanika: a tervezők által megálmodott mechanikát önti kód formájába. Ez a játék nagy vonalú lényegét jelenti, mi történik a játékvilágban, milyen objektumok, fegyverek vannak, mit lehet csinálni a játékban. (Játékmenet programozás). Közép szintű programozást jelent. Általában a designerekkel gyakran érintkezik, ő rakja bele a „játékot” a játékba. Szórakoztató munka lehet. 3D: legmegbecsültebb poszt, erős programozói, matematikai tudást igényel. Erről sokat tudnánk még beszélni, de találkoztunk már és találkozni is fogunk vele a tanulmányaink során. Mesterséges intelligencia programozás: folyamatosan erősödik, fejlődik. Script szerű működéstől a tanuló algoritmusokig. Az igény nagyban függ a játék műfajától. GUI: panelek, HUD elemek, menuk. GUI könyvtárak ismerete szükséges (ez lehet saját fejlesztésű). Sok gyakorlatot igényel, nehéz jól csinálni. Audio. Viszonylag kis volumenű munka a jól használható könyvtáraknak köszönhetően. Eszköz: (akár 50%-a a programozási feladatoknak ez lehet).
20
Művészeti részleg Art director Concept artist
2D artist/interface designer 3D modellező Karakter modellező Textúrázó Animáció / MOCAP Forgatókönyvezés Kezdetben a programozó és a művész egy ember volt. Később ezek a szerepek elváltak. Manapság igen nagy mennyiségű digitális tartalomra van szükség egy játék elkészítéséhez. A különböző művészek képességei, tudása, szerepe alapján a következőképpen csoportosíthatók: Art director: a művészeti részleg vezetője. Függőségeket átlátja, felel a megfelelő időzítésért. Másik még fontosabb feladata az, hogy biztosítsa, hogy minden egyes elkészült alkotás egy egységes egész szerves része lehessen, minőségben, stílusban. A legtöbb tapasztalattal, megbecsüléssel rendelkező művész a csapatban, aki tud bánni az emberekkel. Concept artist: régen egy-két vázlat elég volt ahhoz hogy érzékeltessük a fő karaktereket, helyszíneket. Manapság, amikor egy-egy hibás művészeti alkotás (modell- háttér, textúra) súlyos pénzeket és erőforrásokat jelent, egyre nagyobb hangsúlyt fektetnek a látványtervekre. A fekete fehér rajzokat kiszínezik, és felküldik egyeztetésre az art direktorok, designerek, producerek felé jóváhagyásra. Ha ez megvan, kezdődhet a tényleges „gyártás”. 2D: klasszikus rajz és festészeti tudással bír. Hátterek, portrék, plakátok, website grafika, install grafika, marketing grafika stb... (Photoshop) Interface: tapasztalt 2D grafikus, néha programozó v. designer. Nagyon fontos szerep. Az egész játék arculatát meghatározza. 3D modellező: programozó-művész hibrid jelent meg, aki megbirkózott a technikai feladatokkal amit a modellezés jelent. Régebben nagyon nehéz volt jó ilyen munkaerőt szerezni (átcsábítani a filmiparból v. kiképezni), manapság a tanfolyamoknak és a modellező programok egyszerűsödésének köszönhetően már jobb a helyzet, de továbbra is fontos részét képezik a művészeti részlegnek. Karakter: speciális 3D modellező, akinek jó érzéke van ehhez. Textúrázó: 2x-3x lassabb folyamat a modellezésnél. Az elkészült modellt kell kifesteni. Animáció: karakter és egyéb animáció. Az egyéb egyszerű (pl. szélmalomkerék). Karakterek: kulcskeret animáció vagy/és MOCAP. Lassú folyamat, nagy gyakorlatot igényel. Storyboarder: kisfilmek (cinematik) készítésénél játszanak szerepet, sokszor concept artist-ok.
21
Hang részleg Szinkron Hang effektek Zene
Kezdetben csak hang effektek voltak: sípolás, prüttyögés, brummolás.... Manapság már 5.1-es dolby surround hangzás, fimliparban is tevékenykedő zeneszerzők művei, és hivatásos szinkronszínészek szólalnak meg. A jó szinkron fontos része egy játéknak, életet lehel bele. Szinkronrendezővel érdemes dolgozni, tudni fogja honnan szerezze be a megfelelő színészeket, gondoskodik arról, hogy minden időben és a megfelelő formátumban, minőségben kerüljön a fejlesztőkhöz. A hengeffektekért felelős hangmérnökök igazi varázslói annak, hogy mely hangmintákat kell hogyan torzítani, nyújtani, csavarni, hogy pontosan olyan hangot kapjunk, mint amilyet szerettünk volna. Tipikus outsourcing lehetőség. Zene: fontos érzelmi hátteret ad. Akár egy ember is elvégezheti a synthy zenét... Outsourcing
22
Management Line producer Associate producer Studio Head
A legkritikusabb komponens. Hatalmas fejlesztési feladat egy játék elkészítése. Általában a vezetés megoszlik több ember között, akiknek megvan a saját területük. Line producer: apró feladatok tömkelegét végzi, a dokumentumok összeállításától, elküldésétől akár az ételrendelésig... Associate producer: a studio vezető alatt helyezkedik el a hierarchiában. Egy csapatot koordinál, határidőkre figyel, jelentéseket ír ilyesmi.. Head: azért felel, hogy a projekt profit-orientáltan fusson, ennek megfelelően tervezi és irányítja. Szinte kivétel nélkül veteránok, alapítók, akik egyszerre játék tervezők, szoftver fejlesztők és üzletemberek.
23
Minőségbiztosítás Kiadó minőségbiztosítási részlege Béta tesztelés
Vezető Fő csapat Multiplayer csapat Friss csapat Kompatibilitási csapat Lokalizáció (pl. magyarítás) Béta tesztelés Béta tesztelő Béta tesztelő program manager Kritikus komponens. A legtöbb cégnek saját módszere van. Csak nagy cégeknél van értelme teljes munkaidőben foglalkoztatni ilyen embereket. Kis cégeknél gyakran a line és associate producereknak juthat ez a szerep. Minden jelentősebb játék átesik a kiadó saját belső tesztelési fázisain. Megfelelően rendezett hiba listát továbbítanak a fejlesztők felé. QA vezető: egy korábbi tesztelő, aki megfelelő képességekkel és tapasztalattal rendelkezik, ahhoz, hogy a tesztelési folyamatot irányítsa. Begyűjti a hibalistákat, rendszerezi, szortírozza, visszaküldi pontosításra. Fő csapat: elejétől a végéig jelen van. Friss csapat: szükség van friss szemekre, főleg a játék kiadása előtt. Béta teszt: fizetetlen vállalkozók, rajongók tesztje. Masszív multiplayer esetén különösen indokolt. Program manager: általában egy line v. associate producer veszi fel ezt a szerepet. A tesztelőkkel kommunikálni kell, stresszes munka.
24
Üzleti részleg Üzletfejlesztés Licenszelés Eladás/Marketing Kézikönyv
Üzletfejlesztési igazgató(business developement executive) Studió vezető Ügyvédek Licenszelés Eladás/Marketing Kézikönyv Gyártás A játékfejlesztés nagy üzlet. Több bevétel származik belőle, mint a filmiparból, annak ellenére, hogy a fejlesztések nagy része nem nyereséges. Biz. Dev.: figyeli mi történik az iparban, melyek fejlesztés alatt álló játékok (melyek esetleg kiadót keresnek). Gyártás: CD sokszorosítás, nyomtatás, dobozolás
25
Egyébb Hardver gyártók Utóélet
Hardver gyártók: folyamatos kapcsolat kell a hardver gyártókkal pl. NVidia Utóélet: javítások, forumok, support. MMO: folyamatos felügyelet, új tartalom, frissítések, külön fejlesztő csapatot igényel.
26
Ismétlés
27
Számítógépes grafika feladata
illúzió modellezés számok Virtuális világ modell képszintézis
28
Modellezés feladatai Geometria megadása Transzformációk
pont, görbe, terület, felület, test, fraktálok Transzformációk lokális modellezési és világkoordináta rendszer Színek, felületi optikai tulajdonságok
29
Koordináta rendszerek
Yh 1 y 1 r f w Xh x Descartes Polár Baricentrikus Homogén
30
Descartes koordináták
x, y, z: tengelyek mentén elmozdulás kitüntetett origó x, y, z irányok Miért hasznos? eltolás: összeadás irány: 1 hosszú vektor közbezárt szög cosinusa: skalárszorzat (dot) merőleges: vektoriális szorzat (cross) y 1 x 1
31
Baricentrikus koordináták
súlypont a, b, c súlyok: pont a síkon kitüntetett 3 csúcs Miért hasznos? mind pozitív: pont a háromszögön belül a súlyok használhatók a csúcsokhoz rendelt értékek közötti interpolációra homogén 2x súly: ugyanaz a pont 1 3 1
32
Felületmodellezők Test = határfelületek gyűjteménye
Topológiai ellenőrzés (Euler tétel): csúcs + lap = él + 2
33
B-rep: Euler operátorok
34
Poligon modellezés Alapelemek modellezési példa1 : házikó
modellezési példa2 : asztal
35
CSG Operátorok Modellezési példa : fogaskerék
36
Szabadformájú görbék Definíció kontrolpontokkal
Polinom: x(t) = S ai ti, y(t) = S bi ti A polinomegyütthatók származtatása: Interpoláció Approximáció
37
Szabadformájú felületek: r(u,v)
Definíció kontrolpontokkal r(u,v) = rv(u) = S Bi (u) ri (v) ri (v) = S Bj(v) ri,j r(u,v) = S S Bi (u) Bj(v) ri,j
38
Szabadformájú felületek
2D kontrolpont sereg: szorzatfelületek r(u,v) = S S Bi,j (u,v) ri, j = S S Bi(u) Bj(v) ri, j Súlyfüggények: Interpoláció, Approximáció
39
2.5 dimenziós módszerek Kihúzás: extrude Forgatás: rotate
40
Elemi affin transzformációk
Eltolás: r = r + p Skálázás: x’= Sx x; y’= Sy y; Forgatás: Sx Sy Fix pont: origó [x’,y’] = [x,y] r’ r cos f sin f -sin f cos f r’ = r Fix pont: origó
41
Összetett transzformáció
Affin transzformáció: r’ = r A + p A: lineáris transzformáció forgatás, skálázás, tükrözés, nyírás, stb. p: eltolás Amíg lineáris transzformáció: konkatenáció r’ = (...(r A1) A2)... An) = r (A1A2... An )
42
Homogén koordináták legyen a 3 pont: [0,0], [0,1] és [1,0] (Descartes koordinátákban megadva) ekkora súlyok kellenek [x,y]-hoz Xh = x Yh = y w = 1 - Xh - Yh ha a súlyösszeg 1, különben ezek valahányszorosa (≠0) Yh w Xh
43
Homogén koordináták w helyett inkább adjuk meg h súlyösszeget
homogén koordináták a síkon [Xh, Yh, h] ugyanez a pont 1 összsúllyal (/h): [Xh/h, Yh/h, 1] Descartesban: [Xh/h, Yh/h]
44
Mennyivel tud többet? szemléletesen h lehet 0 is!
Xh, Yh pont irányában, 1/h-szoros távolságra h lehet 0 is! ideális pont végtelen távol Descartesban nem ábrázolható [0,0,0] pont nincs! eltolás, középpontos vetítés lineáris transzformáció [2. előadás]
45
Homogén koordinátás transzformációk
Eltolás nem fér bele a 2x2-es mátrixba Dolgozzunk 3x3-as mátrixokkal A a11 a a21 a p1 p [r’, 1] = [r, 1] = [r A + p, 1] p [r’,1] = (...([r,1] T1) T2)... Tn) = [r,1] (T1T2... Tn)
46
Képszintézis = valós világ illuziója
Tone mapping pixel Virtuális világ színérzet Valós világ Sugársűrűség = egységnyi látható felület egységnyi térszögbe kisugárzott teljesítménye
47
Irányok, irány halmazok: 2D
2D eset Irány: szög egy referencia iránytól Irány halmaz: szög [rad] egység kör íve Méret: ívhossz Teljes halmaz: 2
48
Irányok, irány halmazok : 3D
, szögek 2 referencia iránytól Irány halmaz: térszög [sr] tartomány az egységgömbön Méret: tartomány területe Teljes halmaz: 4
49
Sugársűrűség (Radiancia): I(x,w)
Egy egységnyi látható felület által egységnyi térszög alatt kibocsátott teljesítmény [Watt/ sr/ m2] w dw dF I(x,w) = dF / (dA cos dw) dA
50
Fény-felület kölcsönhatás
w dw w’ x Visszaverődés valószínűség sűrűségfüggvénye: w(w’,x,w) dw = Pr{foton w dw -ba megy | w’-ből jön} w(’,x,) cos BRDF: fr (’,x,) [1/sr] = fr (’,x,)
51
Rendering egyenlet I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(’,x,) cos’dw’ I(h(x,-w),w) h(x,-w) I(x,w) ’ ’ w x fr (’,x,) I = Ie + t I
52
Absztrakt fényforrások
I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(’,x,) cos’dw’ mezei jelöléssel Iout=Iin fr cos’dw’ ha csak egy irányból jön be fény, nem kell az integrál pontfényforrás irányfényforrás Iout=Iin fr cos’
53
Mért BRDF adatok reprezentálása
1 2 1 2 BRDF 5-változós függvény: 1 , 1 , 2 , 2 , Tábla méret: 100x100x100x100x10 = 109
54
Matematikai BRDF modellek
Anyagcsaládra jellemző matematikai képlet 1 1 2 2 fr , BRDF paraméterek
55
BRDF tulajdonságok 1. Pozitív 2. Szimmetrikus (reciprok) - Helmholtz
3. Energia megmaradást nem sértő: a visszavert energia kisebb mint a beérkező a visszaverési valószínűség 1-nél kisebb fr (’,x,) = fr (,x,’)
56
Diffúz visszaverődés (Lambert)
Radiancia a nézeti iránytól független Helmholtz: BRDF a megvilágítástól is független A BRDF konstans: q’ ’ fr (’,x,) = kd(l)
57
Lambert árnyalás Iout=Iin fr cos’ Iout=Iin kd cos’
58
Ideális visszaverődés
Visszaverődés a tükörirányba A BRDF Dirac-delta: itt nem a fényforrás, hanem a BRDF miatt nem kell integrálni q’ Iout=Ireflect kr q’ w’ wr fr (’,x,) = d(w-wr ) kr /cos’
59
Spekuláris visszaverődés: Phong modell
y q’ q’ = diffúz + Kell egy függvény, ami nagy y=0 -ra és gyorsan csökken Iout=Iin kscosny
60
Diffúz+Phong anyagok diffúz Phong diffúz + Phong n=
61
Árnyalásról még bővebben, később…
62
Textúra interpretációk
kép a memóriában ugyanolyan mint a frame buffer pixel helyett texel adatok tömbje 1D, 2D, 3D tömb pl. RGB rekordok függvény diszkrét mintapontjai rácson rekonstrukció: szűrés függvény a 3D felületi pontok felett? R G B R G B R G B R G B R G B R G B
63
Textúra leképezés 3D felületi pont → 2D textúratérbeli pont
u = T(x) tetszőleges f(x) tárolható textúrában f(x) = f(u) = f(T(x)) megkeressük a pont textúrakoordinátáját értéket kiolvassuk a textúra megfelelő texeléből árnyaláshoz a felületi jellemzőket tárolhatjuk BRDF paraméterek: kd, ks, shininess, kr normálvektor: bump map, normal map
64
Textúra leképezés T(x) legyen könnyen számítható csúcsokban adott
modellezéskor u,v koordinátákat rendelünk a vertexekhez háromszögeken interpoláljuk a felületen NEM a képernyőn
65
Perspektív helyes interpoláció
ha a világban lineáris, akkor a képernyőn nem textúráknál látszik persp. helyes textúrázás de ma már mélység szín
66
Textúrákról még bővebben, később…
67
Ismétlés vége
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.