4.5. Raszter-konverzió

21
1 4.5. Raszter-konverzió 4.5. Raszter-konverzió A képelem látványát alkotó képpontok előállítása Egyenes szakasz képpontjai Sokszög lemez kitöltése

description

4.5. Raszter-konverzió. A képelem látványát alkotó képpontok előállítása Egyenes szakasz képpontjai Sokszög lemez kitöltése. 2. Raszter konverzió. A képelemet ábrázoló képpontok helye (és színe). Minden képelem-típusra más eljárás. - PowerPoint PPT Presentation

Transcript of 4.5. Raszter-konverzió

1

4.5. Raszter-konverzió4.5. Raszter-konverzió

• A képelem látványát alkotó

képpontok előállítása

• Egyenes szakasz képpontjai

• Sokszög lemez kitöltése

22

3

Raszter konverzió

• A képelemet ábrázoló képpontok helye

(és színe).

• Minden képelem-típusra más eljárás.

• 3D-ben:

4.7. Árnyalás (shading, textúra,stb.)

4

Szakaszok raszter-konverziója

• Adott: P és Q a KKR-ben

Keressünk köztes képpontokat

• Durva erőszak: m = dy / dx és

for x:= P.x to Q.x (step 1) do

GputPixel(x, y:= m*(x-P.x)+P.y, szín);

• Kifogások: lassú (valós aritmetika, kerekítés),

5

A felezőpontos (Bresenham) eljárás

• dx = Q.x - P.x, dy = Q.y - P.y

• (dx = 0, dy = 0, dx = dy könnyű esetek)

• Síknyolcadok; minta: 0 < dy < dx

• Növekményes eljárás:

• Ha Pi közelítő pont

K-re, vagy ÉK-re lépünk

• aszerint, hogy az egyenes

F alatt, vagy fölött

6

A PQ egyenes egyenlete

• G(x,y) = ax + by + c = 0 = dyx - dxy + (P.ydx - P.xdy) = 0

• fölötte G(x,y) negatív, alatta pozitív.

• e(xi) = 2G(F)=2G(xi+1,yi+1/2) = dy (2x) – dx(2y +1)+ 2 (P.y dx - P.xdy)

• Ha e(xi) < 0, akkor F az egyenes fölött: Kha >0, akkor F az egyenes alatt; ÉK

• e(x0) = 2dy- dx, deK = 2dy és deÉK = 2(dx - dy)

7

Az eljárás váza:

procedure GRasCoLine( P,Q, szín);

begin dx:=Q.x - P.x; dy:=Q.y - P.y;

{esetszétválasztás; a 0 < dy < dx ág: }

e := 2*dy-dx; deK := 2*dy; deEK := 2*(dy-dx);

while x <= Q.x do begin

if e<=0 then {az F alatt}

begin {K} x ++; y; e:= e+deK; end;

else {e>0} { az F fölött}

begin {ÉK} x ++; y++; e:= e+deEK; end;

GputPixel( x,y,szin );

end; {while}

end; { procedure}

8

Körvonal raszter-konverziója

• A (0,0) középpontú, r sugarúkör rajzolása

• Nyolcad: (0,r)-(r,0)-ig; put8pixel(x, y);

• Pi után K-re, vagy DK-re lépünk

• G(x,y) = xx + yy – rr = 0, e(xi) = 4G(F) = 4G(xi+1, yi-1/2)

• e(x0) = 5/4 - r, deK=2xi + 3, deDK=2 (xi - yi) + 5

függ az x-től (e másodfokú!), de a 2. differencia=2

• Minden lépésben módosítjuk y-t, e-t, deK-t és deDK-t

9

Sokszöglemezek kitöltése

1. Zárt terület elárasztása

2. Az Aktív Élek Listája - eljárás

3. A jobbra festő eljárás

10

Zárt terület elárasztása

• Interaktív programoknál

• Egy zárt területen belül rámutatunk egy pontra

• „forráspont” és „gát”

11

procedure GFloodFill4(x,y:Gpixxy; hatar: Gcolor);begin

{ festőszín: global fillColor } if GGetPixel(x,y)<>hatar AND GGetPixel(x,y)<> fillColor then begin Gputpixel (x ,y ,fillColor); FloodFill4(x+1,y ,hatar); FloodFill4(x ,y+1,hatar); FloodFill4(x-1,y ,hatar); FloodFill4(x ,y-1,hatar); end;{if}end; {GFloodFill}

{Az árasztás lassú és zabálja a vermet!! Javítások: koherenciával.}

12

Az Aktív Élek Listája - eljárás

• Egy sokszög belső pontja:

páratlan számú átmetszés,

• Külső pontja:

páros számú

átmetszés egy félegyenesen

• (minden félegyenesen egyformán)

13

1. A sokszög él-táblája (ÉT):

• A pászták láncolt listája: a pásztán kezdődő élek adatai; x szerint rendezve

HI, HGAB, AIBCGFDC, DE, EF

• minden élről: { y1, x1, dx, dy, next }; y1<=y2

14

2. Az Aktív Élek Listája (AÉL):

• Induláskor: az ÉT első pásztája (HI, HG)

• Ciklusban:

• Páronként festés a pásztán:az 1.-2., a 3.-4.,… él x értéke között

• Áttérés új pásztára: a kiürült élek eldobása az élek x értékének változása új élek az ÉT-ről az élek rendezése (x)

• Amíg AÉL és ÉT ki nem ürül

15

Az AÉL eljárás értékelése

• Tetszőleges sokszögre, szigetekre is

• Vízszintes élek és szélső csúcsok is.

• Adatszerkezet: 2x az élek száma;csak egészszámok (és mutatók)

• Rendezés: gyors, beszúró rendezés

16

A jobbra festő eljárás

• A sokszög minden élére:

• tőle jobbra minden képpontot XOR-ral befestünk.

• A külső pontokat páros számszor festjük; nem változnak.

• Egy „baloldali” él megváltozik, „jobboldali” nem! A körvonal után-festése.

• Elég a befoglaló dobozra

17

Terület kitöltése mintázattal

• Mintázat (pattern): képpont-lap (négyzet)

• „Csempézés” (hálóban)

• Egy horgonypontban kezdve

• A kitöltő eljárástól kapott képpontokkal maszkolva.

• A térben: textúra, a lap helyzete szerint transzformálva.

18

Megoldási elvek a szerelőszalagon

• Sebesség és tároló-igény

• Tárgytér és képtér (valós-egész)

• A pászták követése

• Koherenciák (pásztán, pászták között)

• Dobozolás

• Térfelosztás

• Rendezés

19

• Összefoglalás

• Grafikus szerelőszalag: a kép előállításának műveletei:

• A képelemek előkészítése

Leképezés a tárgytérből a képtérbe

Képkivágás

Láthatóság-takarás

Raszter-konverzió

2020

21

A grafikus alapszoftver

• BGI (és mások): KKR-ben kapott 2D képelemek, a Képelemek előkészítését és a Leképezést az AP végzi. korlátozott funkciók.

• OpenGL – 3D alapszoftver

• Grafikus munkaállomások: pl. a láthatóságot hard(firm)verben.

• Grafikus modellező rendszerekbe beépítve.