Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Inkrementális 3D képszintézis Szirmay-Kalos László."— Előadás másolata:

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

2 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ó

3 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

4 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)

5 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

6 cos  sin  -sin  cos  1 Orientáció T M = 0 0 0 0 1 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

7 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

8 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]

9 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!!!

10 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

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

12 Világból a képernyőre z y 1 1 90 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!!!

13 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 0 0 0 0 1 eye w u v 1 0 0 0 0 1 0 0 0 0 1 0 -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 0 0 0 0 1 gluLookAt(eye,lookat,vup)

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

15 -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)

16 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 1 0 0 1 0 0 0 [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

17 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 1 0 0 1 0 0 0 [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

18 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) 0 0 0 0 1/tg(fov/2) 0 0 0 0 -(fp+bp)/(bp-fp) -1 0 0 -2fp · bp/(bp-fp) 0 gluPerspective(fov,asp,fp,bp) h = -zc

19 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

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 Z-buffer algoritmus  = 1 0.6 0.3 0.6 0.3 0.8 1.2.3. z Szín buffer Mélység buffer Z-buffer

28 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)

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

30 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

31 Á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)

32 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

33 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

34 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

35 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!

36 Phong árnyalás

37 Gouraud versus Phong Gouraud Phong Gouraud


Letölteni ppt "Inkrementális 3D képszintézis Szirmay-Kalos László."

Hasonló előadás


Google Hirdetések