Bevezetés - Számítógépes Grafika Csoport

Download Report

Transcript Bevezetés - Számítógépes Grafika Csoport

Játékfejlesztés
Időpontok
!!!MINDEN HÉTEN!!!


Kedd 16:15-17:00 IL407
Szerda 14:15-15:45 IL407
???
Követelmények



Órák látogatása
Házi feladat
Vizsga
Ebből kettőt kell teljesíteni…
Honlap
http://cg.iit.bme.hu/portal/oktatott-targyak/jatekfejlesztes
Miről lesz szó?








Modellezés - Blender
Textúrázás - GIMP
Animáció - Blender
Grafika - Ogre3D
Fizika – PhysX
??? GUI ???
??? Hálózat ???
??? Hangok ???
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…
Speciális Effektek
Történelem
Történelem
1973
1981
1991, Wolfenstein3D
 
I ( x,V )  I kd
1993, Doom
 
I ( x,V )  I kd  I shadow
1996, Quake
 
I ( x,V )  I kd  I LightMap
1997, Quake 2
I(x,V)=ILightMap+Ie(x,V)+ S I(L) fr(L,x,V) cos’
1999 Quake 3, Unreal Tournament
2004 Doom3
I(x,V)=Ie(x,V)+ S I(L) h(x, L) fr(L,x,V) cos’
2004 Half-Life 2
I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(w’,x,w) cos’dw’
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...
Design




Vezető designer (Lead Designer)
Játékmenet tervező
Pálya/küldetés tervező
Történet és párbeszéd tervező
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
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
Hang részleg



Szinkron
Hang effektek
Zene
Management



Line producer
Associate producer
Studio Head
Minőségbiztosítás

Kiadó minőségbiztosítási részlege
•
•
•
•
•
•

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
Üzleti részleg

Üzletfejlesztés
• Üzletfejlesztési igazgató(business
developement executive)
• Studió vezető
• Ügyvédek




Licenszelés
Eladás/Marketing
Kézikönyv
Gyártás
Egyébb


Hardver gyártók
Utóélet
Ismétlés
Számítógépes grafika feladata
illúzió
modellezés
számok
Virtuális világ
modell
képszintézis
Modellezés feladatai

Geometria megadása
• 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
Koordináta rendszerek
Yh
1
y
1
r
f
w
Xh
x
Descartes
Polár
Baricentrikus
Homogén
Descartes koordináták


x, y, z: tengelyek mentén
elmozdulás
kitüntetett
• origó
• x, y, z irányok

y
1
Miért hasznos?
1
x
• eltolás: összeadás
• irány: 1 hosszú vektor
• közbezárt szög cosinusa: skalárszorzat
(dot)
• merőleges: vektoriális szorzat (cross)
Baricentrikus koordináták
súlypont


a, b, c súlyok: pont a síkon
1
kitüntetett
3
• 3 csúcs

Miért hasznos?
1
• 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
Felületmodellezők

Test = határfelületek gyűjteménye

Topológiai ellenőrzés (Euler tétel):
csúcs + lap = él + 2
B-rep: Euler operátorok
MEF
MVE
E
.
V
E E1
Csinálj csúcsot
és élt
MEVVF
F
F
E F1
F
Csinálj élt
és lapot
V2
E
semmi
V1
Csinálj élt,
két csúcsot
és lapot
Poligon modellezés
Alapelemek
modellezési példa1 : házikó
modellezési példa2 : asztal
CSG
Operátorok
Modellezési példa : fogaskerék
Szabadformájú görbék



Definíció kontrolpontokkal
Polinom: x(t) = S ai ti,
ti
A polinomegyütthatók
származtatása:
•
•
Interpoláció
Approximáció
y(t) = S bi
Szabadformájú felületek: r(u,v)

Definíció kontrolpontokkal
r(u,v) = S S Bi (u) Bj(v) ri,j
r(u,v) = rv(u) = S Bi (u) ri (v)
ri (v) = S Bj(v) ri,j
Szabadformájú felületek

2D kontrolpont sereg:
szorzatfelületek
Súlyfüggények:
Interpoláció,
Approximáció
r(u,v) = S S Bi,j (u,v) ri, j
= S S Bi(u) Bj(v) ri, j
2.5 dimenziós módszerek
Kihúzás: extrude
Forgatás: rotate
Elemi affin transzformációk


Eltolás:
Skálázás:
Fix pont: origó

Forgatás:
r=r+p
x’= Sx x; y’= Sy y;
[x’,y’] = [x,y]
r’
r
r’ = r
Fix pont: origó
Sx
0
0
Sy
cos f
sin f
-sin f
cos f
Összetett transzformáció

Affin transzformáció: r’ = r
• A: lineáris transzformáció


A+p
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 )
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
Yh
w
Xh = x
Yh = y
w = 1 - Xh - Yh
ha a súlyösszeg 1,
különben ezek valahányszorosa (≠0)
Xh
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]
Mennyivel tud többet?

szemléletesen
• 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]
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 a12
[r’, 1] = [r, 1] a21 a22
p1 p2
p
0
0
= [r A + p, 1]
1
[r’,1] = (...([r,1] T1) T2)... Tn) = [r,1] (T1T2... Tn)
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


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
Irányok, irány halmazok : 3D

Irány:
, 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
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
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(w’,x,w)
=
f
(w’,x,w)
r
cos 
BRDF: fr (w’,x,w)
[1/sr]
Rendering egyenlet
I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(w’,x,w) cos’dw’
’
I(x,w)
I(h(x,-w),w)
h(x,-w)
w’
w
I = Ie +
t
x
I
fr (w’,x,w)
Absztrakt fényforrások
I(x,w)=Ie(x,w)+I(h(x,-w’),w’) fr(w’,x,w) 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’
Mért BRDF adatok reprezentálása
2
1
1
2
BRDF 5-változós függvény:
1 , 1 , 2 , 2 , 
Tábla méret: 100x100x100x100x10 = 109
Matematikai BRDF modellek
1
1
2
2
Anyagcsaládra
jellemző
matematikai
képlet
, BRDF paraméterek
fr
BRDF tulajdonságok



1. Pozitív
2. Szimmetrikus (reciprok) Helmholtz
fr (w’,x,w) = fr (w,x,w’)
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
Diffúz visszaverődés (Lambert)

Radiancia a nézeti iránytól
független
’


w’
Helmholtz: BRDF a megvilágítástól
is független
fr (w’,x,w) = kd()
A BRDF konstans:
Lambert árnyalás
Iout=Iin fr cos’
Iout=Iin kd cos’
Ideális visszaverődés

Visszaverődés a tükörirányba
’ ’
w’
Iout=Ireflect kr
wr


A BRDF Dirac-delta:
fr (w’,x,w) = d(w-wr ) kr /cos’
itt nem a fényforrás, hanem a
BRDF miatt nem kell integrálni
Spekuláris visszaverődés:
Phong modell
w’r
w
w’r
’
= diffúz +
w
y
’
Kell egy függvény, ami nagy y=0 -ra és gyorsan csökken
Iout=Iin kscosny
Diffúz+Phong anyagok
diffúz
Phong
diffúz +
Phong
n=
5
10
20
50
Árnyalásról még bővebben,
később…
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

R
G
B
R
G
B
R
G
B
R
G
B
R
G
B
R
G
B
függvény diszkrét mintapontjai
rácson
• rekonstrukció: szűrés
• függvény a 3D felületi pontok felett?
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
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
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
Textúrákról még bővebben,
később…
Ismétlés vége