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

Slides:



Advertisements
Hasonló előadás
Koordináta transzformációk 2
Advertisements

L ÁTHATÓSÁG MEGHATÁROZÁSA tavaszi félév.
Készítette: Szinai Adrienn
Árnyalás – a felületi pontok színe A tárgyak felületi pontjainak színezése A fényviszonyok szerint.
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
Inkrementális 3D képszintézis
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.
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.
Textúrák, világmodellek
3. Vetületi ábrázolások számítási eljárásai
P z : egy „elemi” projektív transzformáció M = ( m m m m ); P z = ( ) | m m m m | | | | m m m m | | | ( p p p p ) ( 0 0 r 1 ) az.
2D képszintézis és textúrák
3.3. Axonometrikus ábrázolások Rövid áttekintés
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
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 ◦
Pixel műveletek, képek Szirmay-Kalos László.
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
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.
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.
Számítógépes grafika, PPKE-ITK, Benedek Csaba, 2010 Színek és megvilágítás 5. előadás.
Geometriai transzformációk
Bevezetés - Vonalak. Koordinátarendszer Windows form x y Az y lefelé nő Transzformáció a hagyományosra x Eltolás y Ellentett és eltolás.
Informatikai eszközök a virtuális valóság szolgálatában Hapák József ELTE-IK X. Eötvös Konferencia.
Máté: Orvosi képfeldolgozás12. előadás1 Három dimenziós adatok megjelenítése Metszeti képek transzverzális, frontális, szagittális, ferde. Felület síkba.
A számítógépes grafika alapjai, PPKE-ITK, Benedek Csaba, 2010 Tanagyag forrás © Szirmay-Kalos László, BME A számítógépes grafika céljai és feladatai 1.
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
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
6. A 3D grafika alapjai 6.1. A 3D szerelőszalag fölépítése
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 l koherencia: oldjuk meg nagyobb egységekre l feleslegesen ne számoljunk: vágás l transzformációk: minden feladathoz megfelelő koordinátarendszert –vágni, transzformálni nem lehet akármit: tesszelláció

3D inkrementális képszintézis Modell referencia helyzetben TesszellációVilágkoordináta r. Kamerakoordináta r. Normalizált eszközkoordináta r. Vágás Képernyőkoordináta r. Láthatóság + vetítés Takarás és vetítés triviális! Árnyalt kép T modell T view T persp T viewport z

Tesszelláció l Felületi pontok kijelölése: r n,m = r(u n,v m ) l Normálvektor: l „Paramétertérben szomszédos” pontokból háromszögek u,v r(u,v) N1N1 N2N2 N3N3 N(u n,v m )=  r(u,v)  u  r(u,v)  v  r3r3 r1r1 r2r2 N(u,v)

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

cos  sin  -sin  cos  1 Orientáció T M = cos  -sin  1 sin  cos  1 cos  sin  -sin  cos  1 Csavaró: Roll Billentő: Pitch Forduló: Yaw R = z y x (R 11,R 12,R 13 ) (R 21,R 22,R 23 ) (R 31,R 32,R 33 ) Orientáció = ortogonális mátrix Orientácó: 3 szabadságfok Orientáció = három szög+fix tengelyek vagy tengely+szög

Kvaterniók l Komplex számok általánosítása l q = [s,x,y,z] = [s,w] = s+xi+yj+zk l q 1 +q 2 = [s 1 +s 2, x 1 +x 2, y 1 +y 2, z 1 +z 2 ] l aq = [as,ax,ay,az] l |q| =  s 2 +x 2 +y 2 +z 2 l Szorzás: –i 2 = j 2 = k 2 = ijk = -1, ij=k, ji=-k, jk=i, kj=-i, ki=j, ik=-j Szorzás asszociatív, de nem kommutatív, Összeadásra disztributí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] [0,w]  [0,u]=[-w  u, w  u] [a,0]  [s,w]=[as, aw] [s,w]  [a,0]=[as, aw] [s,w]  [s,-w]=s 2 -sw+sw+[w 2,-w  w] =s 2 +w 2

Egység kvaternió = forgatás az origón átmenő w tengely körül l q = [cos(  /2), w sin(  /2)], |w| = 1 l q  [0,u]  q -1 = [0,v] –v az u elforgatottja a w körül  szöggel l Bizonyítás: –Ha w||u, akkor u megmarad –Ha w  u: [C, Sw]  [0,u]=[-Sw  u, Cu+Sw  u] =[0, Cu+Sw  u] [0,u’]  [C,-Sw]=[Su’  w, Cu’-Su’  w] =[0, Cu’+Sw  u’] w u wuwu C S  /2 u’ [cos(  /2), w sin(  /2)]= [C, Sw]

Origón átmenő w tengely körül  szöggel forgató mátrix: R l w egységvektor, q = [cos(  /2), w sin(  /2)] –(0, R 11,R 12,R 13 ) = q  [0,1,0,0]  q -1 –(0, R 21,R 22,R 23 ) = q  [0,0,1,0]  q -1 –(0, R 31,R 32,R 33 ) = q  [0,0,0,1]  q -1 l Rodriquez formula l glRotate(alpha, wx, wy, wz); fokban!!!

Transzformációk l Modellezési transzformáció: [r,1] T modell = [r világ,1] [N,d] (T modell ) T = [N világ,d világ ] l Kamera transzformáció: [r világ,1] T view = [r kamera, 1] [N világ,d világ ] (T view ) T = [N kamera,d kamera ] l Perspektív transzformáció: [r kamera,1] T persp = [r képernyő h, h] l Összetett transzformáció: T modell T view T persp = T C

Kamera modell x y z vrp (lookat) vup eye fp bp fov asp Nézeti téglalap szem Mi: Camera obscura

Világból a képernyőre z y látószög 1. Világ 2. Kamera 3.1. Normalizált kamera 3.2. Normalizált képernyő 4. Képernyő x y z eye Bal!!!

Kamera transzformáció x y z lookat vup w = (eye-lookat)/|eye-lookat| u = (vup  w)/|w  vup| v = w  u [x’,y’,z’,1] = [x,y,z,1] u x u y u z 0 v x v y v z 0 w x w y w z eye w u v eye x -eye y -eye z 1 w u v u x v x w x 0 u y v y w y 0 u z v z w z gluLookAt(eye,lookat,vup)

fp bp 90 látószög 1/(tg(fov/2)·asp) /tg(fov/2) T norm Normalizálás bp · tg(fov/2)

-fp -bp 1 Normalizálás utáni perspektív transzformáció [-mx · z, -my · z, z] [mx, my, 1] [mx, my, -1] (mx · fp, my · fp, -fp)  (mx, my, -1) (mx · bp, my · bp, -bp)  (mx, my, 1)

t11 t12 t13 t14 t21 t22 t23 t24 t31 t32 t33 t34 t41 t42 t43 t44 T persp -fp · t33+t43 = -fp -fp · t34+t44 = fp [mx · fp, my · fp, -fp, 1] * [mx, my, -1, 1]  a [mx · fp, my · fp, -fp, 1] * [mx · fp, my · fp, -fp, fp] -fp Perspektív transzformáció kitalálás: első vágósíkon lévő pont

t11 t12 t13 t14 t21 t22 t23 t24 t31 t32 t33 t34 t41 t42 t43 t44 T persp -bp · t33+t43 = bp -bp · t34+t44 = bp [mx · bp,my · bp,-bp,1] * [mx, my, 1, 1] b [mx · bp,my · bp,-bp,1] * [mx · bp, my · bp bp, bp] -fp · t33+t43 = -fp -fp · t34+t44 = fp -bp-bp Szem: [0,0,0,1]  [0,0, -2fp·bp/(bp-fp),0] [0,0,1,0] -(fp+bp)/(bp-fp) -1 -2fp · bp/(bp-fp) 0 Perspektív transzformáció kitalálás: hátsó vágósíkon lévő pont

1 [X h,Y h,Z h,h] = [xc,yc,zc,1] T persp [X,Y,Z,1] = [X h /h, Y h /h, Z h /h,1] Teljes perspektív transzformáció z y 1/(tg(fov/2)·asp) /tg(fov/2) (fp+bp)/(bp-fp) fp · bp/(bp-fp) 0 gluPerspective(fov,asp,fp,bp) h = -zc

Képszintézis csővezeték Modell: x,y,z T modell T view T persp Homogén osztás TakarásVetítés Rasztertár: X, Y Vágás Huzalváz képszintézis esetén kimaradhat T viewport csúcspontok primitívek 1

Vágni a homogén osztás előtt kell zc<0 zc>0 Ha a homogén osztás után vágnánk h = -zc

Vágni a homogén osztás előtt kell h = -zc h>0 h<0 zc<0 zc>0 [X(t),Y(t),Z(t),h(t)]=[X 1,Y 1,Z 1,h 1 ]·t + [X 2,Y 2,Z 2,h 2 ]·(1-t) Homogén lineáris transzformáció konvex kombinációkat konvex kombinációkba visz át. Ideális pont Szakasz

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

Szakasz/poligon vágás h = X h [X h 1,Y h 1,Z h 1,h 1 ] [X h 2,Y h 2,Z h 2,h 2 ] X h = X h 1 · (1-t) + X h 2 · t Y h = Y h 1 · (1-t) + Y h 2 · t Z h = Z h 1 · (1-t) + Z h 2 · t h = h 1 · (1-t) + h 2 · t h = h 1 ·(1-t)+h 2 ·t = = X h = X h 1 ·(1-t) + X h 2 ·t t = … -h < X h < h -h < Y h < h -h < Z h < h

Huzalváz képszintézis Modell: x,y,z TCTC Vágás Homogén osztás Nézet transzf Vetítés Rasztertár: X, Y 2D szakasz rajzolás (X,Y,Z) (X h,Y h,Z h,h) (X,Y) Szín Tesszel- láció poligon élek

Tömör képszintézis l Képernyő koordinátarendszerben –vetítősugarak a z tengellyel párhuzamosak! l Objektumtér algoritmusok (folytonos): –láthatóság számítás nem függ a felbontástól l Képtér algoritmusok (diszkrét): –mi látszik egy pixelben –Sugárkövetés ilyen volt! 1

Hátsólab eldobás: back-face culling n z > 0 n z < 0 Lapok a nézeti irányban: Kívülről: lap, objektum: elülső oldal Belülről: objektum, lap: hátsó oldal Feltételezés: Ha kívülről, akkor csúcsok óramutatóval megegyező körüljárásúak r1r1 r3r3 r2r2 n = (r 3 - r 1 )  (r 2 - r 1 ) z

Z-buffer algoritmus  = z Szín buffer Mélység buffer Z-buffer

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

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

X Y Z Z(X,Y) = aX + bY + c n x X+n y Y+n z Z+d = 0 (X1,Y1,Z1)(X1,Y1,Z1) (X2,Y2,Z2)(X2,Y2,Z2) (X3,Y3,Z3)(X3,Y3,Z3) Inkremens (triangle setup) Z 3 -Z 1 = a(X 3 -X 1 ) + b(Y 3 -Y 1 ) Z 2 -Z 1 = a(X 2 -X 1 ) + b(Y 2 -Y 1 ) (Z 3 -Z 1 )(Y 2 -Y 1 ) - (Y 3 -Y 1 )(Z 2 -Z 1 ) (X 3 -X 1 )(Y 2 -Y 1 ) - (Y 3 -Y 1 )(X 2 -X 1 ) a= Z 1 = aX 1 + bY 1 + c Z 2 = aX 2 + bY 2 + c Z 3 = aX 3 + bY 3 + c i j k X 3 -X 1 Y 3 -Y 1 Z 3 -Z 1 X 2 -X 1 Y 2 -Y 1 Z 2 -Z 1 n = (r 3 - r 1 )  (r 2 - r 1 ) = n nznz -nx-nx

Árnyalás L (V)   l  L l (L l )* f r (L l,N,V)  cos  ’ l Koherencia: ne mindent pixelenként l Háromszögenként: –csúcspontonként 1-szer, belül az L „szín” lineáris interpolációja: Gouraud árnyalás, (per-vertex shading) –pixelenként, a Normál (View, Light) vektort interpoláljuk: Phong árnyalás, (per-pixel shading)

Gouraud árnyalás R(X,Y) = aX + bY + c G(X,Y) =… B(X,Y) =… R(X,Y) R(X+1,Y) = R(X,Y) + a N1N1 N2N2 N3N3 r3r3 r1r1 r2r2 N1N1 N2N2 N3N3 r3r3 r1r1 r2r2 Modell [+kamera] Perspektív + nézeti Képernyő (per-vertex shading) V1V1 L1L1 L2L2 L3L3

Z-buffer + Gouraud árnyaló hw. Z X számláló z regiszter azaz X  R regiszter aRaR  G regiszter aGaG  R G B regiszter aBaB  B

Gouraud árnyalás hasfájásai ambiens diffúz spekuláris További bajok: anyagtulajdonság konstans árnyék nincs különben a színt nem lehet interpolálni

Phong árnyalás N(X,Y) = AX + BY + C L(X,Y) =… V(X,Y) =… N1N1 N2N2 N3N3 r3r3 r1r1 r2r2 N1N1 N2N2 N3N3 r3r3 r1r1 r2r2 Modell [+kamera] Pontokra: perspektív + nézeti Képernyő (per-pixel shading) V1V1 L1L1 L2L2 L3L3 Vektor másolás N1N1 V1V1 L1L1 N V L Normalizálás!

Phong árnyalás

Gouraud versus Phong Gouraud Phong Gouraud