Inkrementális 3D képszintézis

Slides:



Advertisements
Hasonló előadás
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
Advertisements

Koordináta transzformációk
Koordináta transzformációk
2D képszintézis Szirmay-Kalos László.
Geometriai Transzformációk
Analitikus (koordináta) geometriai gyorstalpaló
Geometriai transzformációk
GPU Szirmay-Kalos László.
Geometriai modellezés
Sugárkövetés: ray-casting, ray-tracing
Animáció Szirmay-Kalos László. Animáció = időfüggés T1(t)T1(t) T2(t)T2(t) TV(t)TV(t) Transzformációk alak szín megjelenítési attribútumok, stb.
Inkrementális 3D képszintézis Szirmay-Kalos László.
OpenGL Szirmay-Kalos László In theory, there is no difference
2D képszintézis Szirmay-Kalos László. Számítógépes grafika feladata képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík.
Geometriai modellezés
Számítógépes grafika Szirmay-Kalos László
Sugárkövetés: ray-casting, ray-tracing Szirmay-Kalos László.
Számítógépes grafika Szirmay-Kalos László
3D képszintézis fizikai alapmodellje
Bevezetés.  A számítógépes grafika inkrementális képszintézis algoritmusának hardver realizációja  Teljesítménykövetelmények:  Animáció: néhány nsec.
Transzformációk kucg.korea.ac.kr.
A számítógépi grafika matematikai háttere
Számítógépes grafika, PPKE-ITK, Benedek Csaba, D képszintézis 4. előadás.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
3. Vetületi ábrázolások számítási eljárásai
Web-grafika II (SVG) 2. gyakorlat Kereszty Gábor.
2. Koordináta-rendszerek és transzformációk 2.1. Koordináta-rendszerek 2.2. Az egyenes és a sík egyenlete 2.3. Affin transzformációk 2.4. Projektív transzformációk.
2D képszintézis és textúrák
3.3. Axonometrikus ábrázolások Rövid áttekintés
4.7. Textúra A felület anyagszerűsége Sík-képek ráborítása a felületre
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
2. Koordináta-rendszerek és transzformációk
2. Koordináta-rendszerek és transzformációk
3. Vetületi ábrázolások számítási eljárásai
2008/2009 tavasz Klár Gergely  Gyakorlatok időpontjai: ◦ Szerda 10:05–11:35 ◦ Csütörtök 10:00+ε –11:30+ε  Gyakvez: ◦ Klár Gergely ◦
Sugárkövetés: ray-casting, ray-tracing
Vektorok különbsége e-x = [ex-xx ey-xy ez-xz] e e-x x szempozíció
Sugárkövetés: ray-casting, ray-tracing
2D képszintézis Szirmay-Kalos László.
Analitikus geometria gyorstalpaló
Inkrementális 3D képszintézis Szirmay-Kalos László.
Számítógépes grafika Bevezetés
3D képszintézis fizikai alapmodellje Szirmay-Kalos László Science is either physics or stamp collecting. Rutherford.
Rendering pipeline Ogre3D
Animáció Szirmay-Kalos László.
Transzformációk Szirmay-Kalos László. Transzformációk (x,y) (x’,y’) = T(x,y) l Tönkre tehetik az egyenletet l Korlátozzuk a transformációkat és az alakzatokat.
Inkrementális 3D képszintézis
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
3. Vetületi ábrázolások számítási eljárásai
Pipeline Vertex shader Fragment shader. Transzformációs modul A modellünket a saját koordinátarendszerében adjuk meg Azonban a saját koordinátarendszerükben.
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
2.2. Az egyenes és a sík egyenlete
2. Koordináta-rendszerek és transzformációk
Bevezetés a számítógépi grafikába 2. Paraméteres görbék Paraméteres görbe: 2D-ben: paraméter: általában: kikötések: legyen folytonos legyen folytonosan.
Fotorealisztikus képszintézis valós időben Szirmay-Kalos László, Csébfalvi Balázs BME IIT.
Máté: Orvosi képfeldolgozás8. előadás1 Kondenzált képek Transzport folyamat, pl. mukocilliáris klírensz (a légcső tisztulása). ROI kondenzált kép F 1 F.
Geometriai transzformációk
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Geometriai modellezés 2. előadás.
Növekményes képszintézis Jeni László Attila Magdics Milán
3.2. Axonometria – Műszaki rajzok párhuzamos vetítéssel
Bevezetés a számítógépi grafikába
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése 6.2. Térbeli alakzatok képe 6.3. Térbeli képelemek és modell-adatszerkezetek 6.4. Képelemek.
Perspektív projekció és kamera paraméterek. Szükséges transzformációk Világkoordináta rendszer (3D) Kamera koordinátarendszer (3D) Képsík koordináták.
Bevezetés.  Miért …  … egyszálúan programozunk?  … probléma ez?  Hogyan …  … változik ez?  … tudjuk kihasználni?  Megéri-e párhuzamosítani?
3D grafika összefoglalás
Grafikus Rendszerek 6. Camera.
Vizualizáció és képszintézis
Árnyalás - a képpontok színe.
Szécsi László 3D Grafikus Rendszerek 7. előadás
Bevezetés GPGPU Alkalmazások.
Előadás másolata:

Inkrementális 3D képszintézis Szirmay-Kalos László

Inkrementális képszintézis Árnyalás, láthatóság nehéz, különösen általános helyzetű objektumokra koherencia: oldjuk meg nagyobb egységekre feleslegesen ne számoljunk: vágás transzformációk: minden feladathoz megfelelő koordinátarendszert vágni, transzformálni nem lehet akármit: tesszelláció

3D inkrementális képszintézis Lokális k.r. Képernyő k.r. Világ k.r.

Tesszelláció felületi pontok kijelölése: rn,m = r(un,vm) felületi pontok összekötése: háromszögháló, huzalváz

Modellezési transzformáció 1. skálázás: sx, sy, sz 2. orientáció: , ,  3. pozíció: px, py, pz y x 1 px, py, pz, 1 sx sy sz 1 1 R TM=

Orientáció R TM = z (R21,R22,R23) (R31,R32,R33) y (R11,R12,R13) x = cos -sin 1 sin cos 1 cos sin -sin cos 1 1 cos sin -sin cos R TM = = Csavaró: Roll Billentő: Pitch Forduló: Yaw Orientáció = ortogonális mátrix Orientácó: 3 szabadságfok Orientáció = három szög

Kvaterniók Komplex számok általánosítása q = [s,x,y,z] = [s,w] = s+xi+yj+zk q1+q2 = [s1+s2, x1+x2, y1+y2, z1+z2] aq = [as,ax,ay,az] |q| =  s2+x2+y2+z2 Szorzás: i2 = j2 = k2 = ijk = -1, ij=k, ji=-k, jk=i, kj=-i, ki=j, ik=-j Szorzás asszociatív, de nem kommutatív Van egységelem: [1,0,0,0] Van inverz: q-1 = [s,-w]/|q|2 , q-1q = qq-1=[1,0,0,0] (q1q2)-1=q2-1q1-1

Kvaternió = forgatás az origón átmenő w tengely körül q = [s,x,y,z] = [s,w] q[0,u]q-1 = [0,v] v az u elforgatottja a w körül  szöggel cos  = 1 – 2(x2+y2+z2)/(s2+x2+y2+z2) q abszolút értéke nem számít Elforgatás legyen egység hosszú kvaternió [cos/2, w sin/2], |w| = 1 Elforgatások fűzése q1(q2 [0,u]q2-1 ) q1-1 = (q1q2 )[0,u](q1q2 )-1 Egység hosszú kvaternió = orientáció

Origón átmenő w tengely körül  szöggel forgató mátrix: R w egységvektor, q = [cos/2, w sin/2] (0, R11,R12,R13) = q[0,1,0,0]q-1 (0, R21,R22,R23) = q[0,0,1,0]q-1 (0, R31,R32,R33) = q[0,0,0,1]q-1 Rodriquez formula glRotate(alpha, wx, wy, wz); fokban!!!

Transzformációk Modellezési transzformáció: [rlokális,1] TM = [rvilág,1] Nézeti transzformáció: [rvilág,1] Tv = [rképernyőh, h] Összetett transzformáció: [rlokális,1] TMTv = [rlokális,1] TC = [rképernyőh, h]

Nézeti transzformáció: Kamera modell vup fp eye fov aspect vrp (lookat) bp z y x

Nézeti transzformáció lépései Bal!!! y eye 1 z z 2. Kamera 4. Normalizált képernyő 90 látószög y x 3. Normalizált kamera 1 1. Világ 5. Képernyő

Kamera transzformáció gluLookAt(eye,lookat,vup) w u v w = (eye-lookat)/|eye-lookat| u = (vup x w)/ |w x vup| v = w x u lookat z w u v -1 y ux uy uz 0 vx vy vz 0 wx wy wz 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 0 -eyex -eyey -eyez 1 x [x’,y’,z’,1] = [x,y,z,1] ux vx wx 0 uy vy wy 0 uz vz wz 0 0 0 0 1

Normalizálás bp*tg(fov/2) fp bp Tnorm 1/(tg(fov/2)·aspect) 0 0 0 0 0 1 0 0 0 0 1 90 látószög

Perspektív transzformáció: gluPerspective(fov, aspect, fp, bp) [-mx*z, -my*z, z] [mx, my, -1] [mx, my, 1] 1 -bp -fp [mx*fp, my*fp, -fp]  [mx, my, -1 ] [mx*bp, my*bp, -bp]  [mx, my, 1 ] [mx*fp, my*fp, -fp, 1]  [mx, my, -1, 1]a // mi: a = fp [mx*bp, my*bp, -bp, 1]  [mx, my, 1, 1] b // ekkor: b = bp [mx*fp, my*fp, -fp, 1]  [mx*fp, my*fp, -fp, fp]

Perspektív transzformáció bp Tpersp t11 t12 t13 t14 t21 t22 t23 t24 t31 t32 t33 t34 t41 t42 t43 t44 -fp*t33+t43 = -fp -fp*t34+t44 = fp 90 látószög [mx*fp,my*fp,-fp,1] * [mx*fp, my*fp, -fp, fp] [mx*bp,my*bp,-bp,1]*[mx*bp, my*bp, bp, bp] fp 1, 1 -bp*t33+t43 = bp -bp*t34+t44 = bp 1 0 0 0 0 1 0 0 0 0 -(fp+bp)/(bp-fp) -1 0 0 -2fp*bp/(bp-fp) 0

Perspektív transzformáció: gluPerspective(fov,asp,fp,bp) y Perspektív transzformáció: gluPerspective(fov,asp,fp,bp) z 1/(tg(fov/2)·asp) 0 0 0 0 1/tg(fov/2) 0 0 0 0 -(fp+bp)/(bp-fp) -1 0 0 -2fp*bp/(bp-fp) 0 [Xh,Yh,Zh,h] = [xc,yc,zc,1] Tpersp [X,Y,Z,1] = [Xh/h, Yh/h, Zh/h,1] 1

Nézeti csővezeték Modell: x,y,z TM TPERSP TVIEW Vágás Vetítés Takarás transzf Homogén osztás Rasztertár: X, Y Huzalváz képszintézis esetén kimaradhat

Mélységi vágás a homogén osztás előtt kell [1,1,2] [1,1,-2] 1 bp=3 fp=1 1 0 0 0 0 1 0 0 0 0 -2 -1 0 0 -3 0 -(fp+bp)/(bp-fp) Homogén osztás: [X,Y,Z,1] = [Xh/h, Yh/h, Zh/h,1] -2fp*bp/(bp-fp) [1, 1,-2, 1] * [ 1 1 1 2] [1/2 1/2 1/2 1] [1, 1, 2, 1] * [ 1 1 -7 -2] [-1/2 -1/2 7/2 1]

Vágás homogén koordinátákban Cél: -1 < X = Xh/h < 1 -1 < Y = Yh/h < 1 -1 < Z = Zh/h < 1 Vegyük hozzá: h > 0 (h = -z a kamera koordinátarendszerben) h = Xh Belül -h < Xh < h -h < Yh < h -h < Zh < h Kívül [3, 0, 0, 2 ] h = 2 < Xh = 3 [2, 0, 0, 3 ] h = 3 > Xh = 2

Szakasz/poligon vágás -h < Xh < h -h < Yh < h -h < Zh < h h = h1·(1-t)+h2 ·t = = Xh = Xh1·(1-t) + Xh2·t t = … h = Xh [Xh1,Yh1,Zh1,h1] Xh = Xh1 · (1-t) + Xh2 · t Yh = Yh1 · (1-t) + Yh2 · t Zh = Zh1 · (1-t) + Zh2 · t h = h1 · (1-t) + h2 · t [Xh2,Yh2,Zh2,h2]

Huzalváz képszintézis (Xh,Yh,Zh,h) Modell: x,y,z TM TV Vágás TC Homogén osztás Szín (X,Y,Z) 2D szakasz rajzolás Rasztertár: X, Y Nézet transzf Vetítés (X,Y)

Tömör képszintézés Képernyő koordinátarendszerben, a szem a z irányba néz Objektumtér algoritmusok: láthatóság számítás nem függ a felbontástól Képtér algoritmusok: mi látszik egy pixelben

Hátsólab eldobás: back-face culling r3 Hátsólab eldobás: back-face culling n = (r3 - r1) (r2 - r1) r2 r1 nz < 0 nz > 0 Lapok a nézeti irányban: Kívülről: lap, objektum: első lap Belülről: objektum, lap: hátsó lap Feltételezés: Ha kívülről, akkor csúcsok óramutóval megegyező körüljárásúak

Z-buffer algoritmus 2. 1. 3.  1325 628 628 1325 3325

Z-koordináta: lineáris interpoláció (X2,Y2,Z2) Z Z(X,Y) = aX + bY + c (X1,Y1,Z1) Y (X3,Y3,Z3) Z(X,Y) Z(X+1,Y) = Z(X,Y) + a X

Z-interpolációs hardver X Z(X,Y) X számláló Z regiszter CLK S a

Árnyalás Koherencia: ne pixelenként kelljen az árnyalási egyenletet megoldani Háromszögenként: 1-szer sem: saját színnel árnyalás 1-szer: konstans árnyalás csúcspontonként 1-szer, belül lineáris interpoláció: Gouraud árnyalás pixelenként, a normál (view, light, reflection) vektort interpoláljuk: Phong árnyalás

Árnyalás saját színnel

Konstans árnyalás

Gouraud árnyalás (X2,Y2,R2) R(X,Y) = aX + bY + c (X1,Y1,R1) (X3,Y3,R3) R,G,B R(X,Y) = aX + bY + c (X1,Y1,R1) Y (X3,Y3,R3) R(X,Y) R(X+1,Y) = R(X,Y) + a X

Gouraud árnyalás spekuláris ambiens diffúz

Phong árnyalás N V L Y N(X,Y) N(X,Y) = A X + BY + C L(X,Y) = ... X V(X,Y) = ... X

Illumináció: világkoordinátarendszerben Nézeti transzformáció Pixelenként: vektorok lin. interpolációja vektorok normalizálása illuminációs képlet

Phong árnyalás

Gouraud, Phong Gouraud Gouraud Phong Phong