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

2D képszintézis Szirmay-Kalos László. Számítógépes grafika képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík.

Hasonló előadás


Az előadások a következő témára: "2D képszintézis Szirmay-Kalos László. Számítógépes grafika képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík."— Előadás másolata:

1 2D képszintézis Szirmay-Kalos László

2 Számítógépes grafika képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík

3 2D képszintézis

4 Vektorizáció [0,1]: t 1 = 0, t 2,..., t n =1 r 1 =r(0), r 2 = r(t 2 ), …, r n = r(1) r1r1 r(t)r(t) r2r2 rn rn

5 Modellezési transzformáció (x, y) = o +  u +  v u x u y 0 v x v y 0 o x o y 1 [x, y, 1] = [ , , 1]  TMTM u v o ,  ) (x, y) [0, 0, 1] [o x o y 1 ] [1, 0, 1] [o x +u x o y +u y 1 ] [0, 1, 1] [o x +v x o y +v y 1 ] S x S y cos  sin  0 -sin  cos  p x p y 1

6 Ablak-nézet transzformáció (x, y) ablak nézet (X, Y) X = (x-w x ) v w /w w + v x Y = (y-w y ) v h /w h + v y (wx,wy)(wx,wy) w whwh (vx,vy)(vx,vy) vwvw vhvh v w /w w 0 0  v h /w h 0 v x -w x v w /w w v y -w y v h /w h 1 [X, Y, 1] = [x, y, 1] TVTV

7 Összetett transzformáció l T V nézeti transzformáció számítása l for each object o –T M előállítása –T C = T M T V –for each point of object o: transzformáció T C -vel l endfor [X, Y, 1] = ([ , , 1] T M ) T V [X, Y, 1] = [ , , 1] (T M T V ) = [ , , 1] T C

8 Vágás l Vektorizáció miatt: pont, szakasz, poligon –Pontok vágása x > x min x y min y < y max x min x max y min y max Ablak: Belső konvex Külső konkáv Félsík: Belső konvex Külső konvex

9 Szakasz vágás félsíkra l x(t) = x 1 + (x 2 - x 1 )t, y(t) = y 1 + (y 2 - y 1 )t l x = x max – Metszéspont: – x max = x 1 + (x 2 - x 1 )t  t = (x max -x 1 )/(x 2 -x 1 ) l x i = x max y i = y 1 + (y 2 - y 1 ) (x max -x 1 )/(x 2 -x 1 ) x1, y1x1, y1 x2, y2x2, y2 x max xi, yixi, yi

10 Cohen-Sutherland vágás Code = (y > y max, x > x max, y < y min, x < x min )

11 Sutherland-Hodgeman poligonvágás PolygonClip(p[n]  q[m]) m = 0; for( i=0; i < n; i++) { if (p[i] belső) { q[m++] = p[i]; if (p[i+1] külső) q[m++] = Intersect(p[i], p[i+1], vágóegyenes); } else { if (p[i+1] belső) q[m++] = Intersect(p[i], p[i+1], vágóegyenes); } Első pontot még egyszer a tömb végére

12 Konkáv sokszögek vágása

13 Raszterizáció transzformációvágás raszterizációPixel műveletek rasztertár model Geometriai primitívek: microsec / primitív Pixelek néhány nanosec / pixel

14 Szakasz rajzolás Egyenes egyenlete: y = mx + b Egyeneshúzás for( x = x1; x <= x2; x++) { Y = m*x + b; y = Round( Y ); write( x, y ); } x1x2

15 Inkrementális elv l Y(X) kiszámítása –Y(X) = F( Y(X-1) ) = Y(X-1) + dY/dX l Szakasz rajzolás: Y(X) = mX + b –Y(X) = F( Y(X-1) ) = Y(X-1) + m l Összeadás: fixpontos ábrázolás: y = Y 2 T –T: hiba < 1 a leghosszabb műveletsornál –N 2 -T log 2 N –round( y ): y+0.5-t csonkítjuk

16 DDA szakaszrajzolás DDADrawLine(x1, y1, x2, y2) { m = (y2 - y1)/(x2 - x1) y = y FOR X = x1 TO x2 { Y = round(y)trunc(y) WRITE(X, Y, color) y = y+m }

17 DDA szakaszrajzoló hardver X számlálóy regiszter x1 m y1 0.5 = XY  CLK

18 Terület elárasztás működése Flood(x, y) { if (pixel[x][y] belső pont) { Write(x, y, color); Flood(x, y-1); Flood(x, y+1); Flood(x-1, y); Flood(x+1, y); } Belső pont = sötétkék mag Flood Write Flood(x,y-1); Flood(x,y+1); Write Flood(x,y-1); Flood(x,y+1); Flood(x-1,y); Flood(x+1,y); Flood(x-1,y); Flood(x+1,y); 0 1 2

19 Területkitöltés l Geometriai reprezentáció alapján –p1,p2,...,pn csúcsok –p1-p2, p2-p3,...,pn-p1 élek l Belső pixel –páratlanszor metszünk élt, ha végtelenből jövünk –végtelen: vágás után a nézet széle

20 Területkitöltés p1p1 p2p2 p3p3 p4p4 y x1x1 x4x4x2x2x3x3 Egyenesek = vízszintes pászták Amíg nincs metszéspont addig nincs változás (koherencia)

21 Kitöltés gyorsítása l Vizsgálatok csak az aktív élekre l Metszéspontszámítás inkrementális elv szerint y x(y)x(y) Dx/Dy x(y+1)x(y+2) Dx/Dy

22 Aktív él lista ymax Dx/Dy x nextAETymax Dx/Dy x next ymin=0 ymin=1 ymin=1024 ymax Dx/Dy x1 next ET: éltábla AET: aktív éltábla


Letölteni ppt "2D képszintézis Szirmay-Kalos László. Számítógépes grafika képszintézis Virtuális világ modell modellezés Metafórák: 2D rajzolás világ = sík."

Hasonló előadás


Google Hirdetések