57

Presentatie titel

  • Upload
    sunila

  • View
    35

  • Download
    0

Embed Size (px)

DESCRIPTION

Computer Graphics. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 3. Les 3 gaat over de hoofdstukken: 4.1 Meetkundige 2D transformaties 4.2 2D transformaties van coordinaten 4.3 Samengestelde 2D transformaties - PowerPoint PPT Presentation

Citation preview

Page 1: Presentatie titel
Page 2: Presentatie titel

Presentatie titel

Rotterdam, 00 januari 2007

Computer Graphics

Technische Informatica

www.hogeschool-rotterdam.nl/cmi

Page 3: Presentatie titel

Les 3 • Les 3 gaat over de hoofdstukken:

• 4.1 Meetkundige 2D transformaties

• 4.2 2D transformaties van coordinaten

• 4.3 Samengestelde 2D transformaties

• 4.4 Voorbeeld 2D transformaties

• 5.1 Window –viewport transformatie

• 5.2 Afbreken van punten (clipping)

• 5.3 Afbreken van lijnen

• 5.5 Grafische pijplijn in 2D

Page 4: Presentatie titel

Inleiding • Fundamenteel voor grafische systemen is de

mogelijkheid om objecten in de ruimte te manipuleren

• Dit noemt men transformatie• Bijv omzetten naar een ander

coordinatensysteem• 2 typen

1. Meetkundige transformatie

2. Coordinaten transformatie• Bijv. bij een auto die beweegt zijn er 2

standpunten (coordiatenstelsel auto of wereld gebruiken)

Page 5: Presentatie titel

Inleiding• Dit gedeelte gaat over transformaties in de 2-

dimensionale ruimte

• Basis transformaties

• Translatie (translation)

• Rotatie (rotation)

• Verschaling (scaling)

• En alle combinaties hiervan

Page 6: Presentatie titel

Meetkundige transformaties• Een object Obj in het vlak kan worden

beschouwd als een verzameling punten

• Ieder objectpunt P heeft coordinaat (x,y) en het object is de som van alle coordinaatpunten (zie fig 4-1)

Page 7: Presentatie titel

Meetkundige transformaties• Als het object beweegt naar een nieuwe

positie hebben we een nieuw object Obj’

• Alle punten P’ kunnen bepaald worden uit de orginele punten P door een meetkundige transformatie

Page 8: Presentatie titel

Translatie• Bij een translatie wordt een object verplaatst

over een gegeven afstand van de orginele positie

• De verplaatsing is gegeven door de vector v=txI + tyJ

• Het nieuwe punt P’(x’,y’) kan gevonden worden door de transformatie Tv vanuit P(x,y) (zie fig 4-2)

• P’= Tv (P)

Page 9: Presentatie titel

Translatie

• Met x’= x+ tx

• En y’= y +ty

Page 10: Presentatie titel

Rotatie om de oorsprong• Bij een rotatie wordt het object geroteerd over

een hoek θ om de oorsprong

• De afspraak is dat de rotatierichting tegen de klok in gaat als θ positief is (zie fig 4-3)

• De transformatie is van rotatie Rθ is:

• P’= Rθ(P)

• Met x’=xcos (θ) –ysin(θ)

• En y’=xsin(θ) + ycos(θ)

Page 11: Presentatie titel

Rotatie om de oorsprong

Page 12: Presentatie titel

Verschalen t.o.v. oorsprong• Verschalen is een proces van uitbreiden of

verkleinen van de dimensies van een object

• De verschalingsconstanten zijn:

• sx voor de x-richting

• sy voor de y-richting

• >1 vergroting

• < 1 verkleining

• De verschalingstransformatie Ssx,sy wordt

gegeven door: P’= Ssx,sy(P)

• Met x’= sx x

• En y’= sy y ( zie fig 4-4)

Page 13: Presentatie titel

Verschalen t.o.v. oorsprong

• Het punt P’is een andere positie gekomen t.o.v de oorsprong (die blijft als enige op zijn plaats)

• In fig 4-4 zijn de verschalingsfactoren: sx =2 en sy =1/2

• Als ze gelijk zijn noemt men dit homogeen

• Als sx >1 is vergroting

• Als sx <1 is verkleining

Page 14: Presentatie titel

Spiegeling om een as• Als de x of y-as gebruikt wordt als spiegel

heeft het object een spiegelbeeld

• Het spiegelbeeld ligt op dezelfde afstand als het object ( zie fig 4-5)

• De transformatie voor de x-as is gegeven door: P’= MX(P)

• Met x’= x en y’=-y

Page 15: Presentatie titel

Spiegeling om een as• Evenzo spiegeling om de y-as geeft:

P’= My(P)

• Met x’= -x en y’=y

• Merk op dat

• Mx=S 1,-1 en My=S-1,1

• De spiegel transfomaties zijn speciale gevallen van verschaling

Page 16: Presentatie titel

Inverse meetkundige transformaties

• Iedere transformatie heeft een inverse welke beschreven wordt door de tegengestelde operatie

• Translatie: Tv-1 = T-v tegengestelde richting

• Rotatie: Rθ-1 = R- θ tegengestelde richting

• Verschalen: Ssx,sy-1 = S 1/sx,1/sy

• Spiegeling: Mx-1 = Mx en My

-1 = My

Page 17: Presentatie titel

Coordinaten transformatie• In fig 4-6 wordt beschreven hoe de

transformatie van een coordinatensysteem plaats vindt

• Punt P(,x,y) van stelsel (x,y) is hetzelfde punt P(x’,y’) van stelsel (x’,y’)

Page 18: Presentatie titel

Coordinaten transformatie• Translatie

• Als het coordinaat systeem (x,y) verplaatst wordt naar een nieuwe positie met verplaatsing v=txI +tyJ met transformatie TD v

• Dan is: (x’,y’)= TD v (x,y)

• Met x’=x-tx en y’= y-ty

• Om het verschil aan te geven tussen geometrische transformatie Tv en coordinaat transformatie TD v wordt een streepje gebruikt

Page 19: Presentatie titel

Coordinaten transformatie• Rotatie

• Als het coordinaat systeem (x,y) geroteerd wordt om de oorsprong (zie fig 4-7) over een hoek θ worden de nieuwe coordinaten van een punt in beide systemen met transformatie RD θ :

• (x’,y’)= RD θ (x,y)

• Met x’=xcos(θ)+ysin(θ)

• y’= -xsin(θ)+ycos(θ)

Page 20: Presentatie titel

Coordinaten transformatie• Verschalen t.o.v. de oorsprong

• Bij verschaling van een coordinaatsysteem blijven de oorsprong en de assen gelijk

• Alleen de eenheden van die as veranderen

• Het nieuwe systeem heeft een transformatie ondergaan van : SD sx,sy De transformatie is:

• (x’,y’) = SD sx,sy (x,y) met :

• x’= (1/sx)x en y’= (1/sy)y

• Fig 4-8 geef de coordinaat verschaling van sx = 2 en sy = ½

Page 21: Presentatie titel

Coordinaten transformatie

Page 22: Presentatie titel

Coordinaten transformatie• Spiegeling om een as

• Als het nieuwe coordinaatsysteem verkregen wordt door het oude coordinaat systeem te spiegelen om de x of y-as dan wordt:

• De relatie tussen de coordinaten gegeven door de transformaties MD x en MD y

• Voor spiegeling om de x-as zie fig 4-9a en dan is (x’,y’) = MD x(x,y) met:

• x’=x en y’=-y

Page 23: Presentatie titel

Coordinaten transformatie

• Voor spiegeling om de y-as zie fig 4-9b geldt:

• (x’,y’) = MD y(x,y) met:

• x’=-x en y’=y

• Spiegeling verandert de orientatie van het coordinaatsysteem

Page 24: Presentatie titel

Coordinaten transformatie• Inverse Coordinaat Transformaties

• Iedere transformatie heeft een inverse door de tegengestelde transformatie uit te voeren

• Translatie: v-1 = -v tegengestelde richting

• Rotatie: -1 = -θ tegengestelde richting

• Verschalen: SD sx,sy-1 = SD 1/sx,1/sy

• Spiegelen: MD x-1=MD x en MD y

-1=MD y

Page 25: Presentatie titel

Samengestelde transformaties• Meer complexe transformaties worden

gebouwd vanuit de basis transformaties met compositie van functies ( zie appendix 1)

• Bijv. Rotatie om een ander punt dan de oorsprong of spiegeling om andere assen

• Voorbeeld 1:

• Vergroting van een object terwijl het centrum vast staat (zie fig 4-10)

• Het meetkundige centrum is C(h,k) (fig 4-10a) en de vergrotingsfactor is s >1

• De volgende transformaties worden dan uitgevoerd:

Page 26: Presentatie titel

Samengestelde transformaties

Page 27: Presentatie titel

Samengestelde transformaties1. Translatie naar de oorsprong ( fig 4-10b)

2. Verschalen van het object t.o.v. de oorsprong (fig 4-10c)

3. Translatie terug naar het centrum C (fig 4-10d)

• De vereiste transformatie: Ss,c=Tv.Ss,s. Tv-1

• Met v= v=hI + kJ

Page 28: Presentatie titel

Matrix beschrijving van transformaties

• De transformaties kunnen ook als matrices worden voorgesteld:

• Meetkundig: Coordinaat

Page 29: Presentatie titel

Matrix beschrijving van transformaties

• De translatie transformatie kan niet uitgedrukt worden in een 2*2 matrix

• x’= x+ tx en y’= y +ty Anders noteren:

• x’= 1.x+ 0.y+ tx

y’= 0.x+ 1.y +ty

• In matrixvorm is dit een 3*2 matrix:

• Je kunt hiermee geen matrix vermeniguldi -gingen maken (moet vierkant zijn)

Page 30: Presentatie titel

Matrix beschrijving van transformaties

• Daarom homogene matrices om een 3*3 matrix te verkrijgen (zie appendix 2)

• x’= 1.x+ 0.y+ tx

y’= 0.x+ 1.y +ty

• 1 =0.x+ 0.y +1

• Met matrices

Page 31: Presentatie titel

Matrix beschrijving van transformaties

• Opeenvolging van matrices

• Het voordeel is dat we nu complexe transformaties kunnen maken met de basistransformaties

• De resulterende matrix heet de samengestelde transformatiematrix( CTM)

• De composite van matrices is gelijk aan matrixvermenigvuldiging (appendix 1)

• We moeten alle matrices in een 3*3 homogene coordinaten matrix brengen (appendix 2)

• De 2*2 matrix moet uitgebreid worden met een 3e rij en kolom

Page 32: Presentatie titel

Matrix beschrijving van transformaties

• 3e rij: [0 0 1] ; 3e kolom

• De matrix wordt dan:

• Voorb 2: Bepaal de homogene matrix voorb 1

• Ss,C= Tv.Ss,s.Tv-1

Page 33: Presentatie titel

Matrix beschrijving van transformaties

• Hieruit volgt:

• Matrix notaties

• In veel computer graphics wordt een andere notatie gebruikt , nl. met rij-vectoren

• Gelijk aan voorbeeld 2

Page 34: Presentatie titel

Window-Viewport transformatie• We zien meestal een klein gedeelte van een

groter geheel met een camera

• Objecten worden geplaatst in Wereld Coordinaten Systeem (WCS)

• Een rechhoekig window selecteert de scene (zie fig 5-1)

• Als de camera een verplaatsing ondergaat spreken we van een Viewing Coordinaten Systeem (VCS)

• Een device onafhankelijk display werkt met een Genormaliseerd Device Coordinaten Systeem (NDCS)

Page 35: Presentatie titel

Window-Viewport transformatie• Dit is een display van 1*1 eenheid met de

oorsprong in de linker onderhoek (virtueel)

• Een rechthoekige viewport in NDCS geeft een gebied aan wat op het display wordt getoond

Page 36: Presentatie titel

Window-Viewport transformatie• Het proces om object coordinaten in WCS om te

zetten naar NDCS heet Window-Viewport Transformatie of Normalisatie Transformatie

• Het proces dat de NDSC afbeeldt naar het dis- crete device heet Workstation Transformatie

• Er vindt een 2e Window-Viewport transformatie plaats

• Samen vormen ze de Viewing Transformatie

Page 37: Presentatie titel

Window-Viewport transformatie• Naast de transformatie kan ook nog afbreken

plaats vinden als het object zich buiten het window bevindt (of scherm of gedeeltelijk)

• In fig 5-1 is een gedeelte van de berg te zien

• Afbreken elimineert het niet-zichtbare deel

• Afbreken kan in WCS,VCS,NDCS

• Het window heet overal het afbreek window (clipping window)

Page 38: Presentatie titel

Window-Viewport transformatie• Een window is gedefinieerd door 4

wereldcoordinaten:

• wxmin, wxmax, wymin, wymax (zie fig 5-2)

Page 39: Presentatie titel

Window-Viewport transformatie• Tevens door 4 genormaliseerde device

coordinaten: vxmin,vxmax,uymin, ymax

• Converteren van wereld –device, waarbij een punt gelijk blijft:

• Nodig is: en

• Hieruit volgt:

Page 40: Presentatie titel

Window-Viewport transformatie• De 8 coordinaatwaarden zijn constanten

• vx,vy,wx,wy zijn variabelen. We kunnen die d.m.v . een transformatie uitdrukken.

• N is een matrix die door een translatie – verschaling en weer een translatie terug verkregen wordt ( zie fig 5-2)

Page 41: Presentatie titel

Window-Viewport transformatie

• Als de verschalingsconstante verschillend zijn dan treedt vervorming op n.l een vierkant in het window wordt een rechthoek in de viewport

• Nu als verschaling geschreven:

Page 42: Presentatie titel

Afbreken van punten• Voor punten dienen de volgende

ongelijkheden te worden bepaaald

• xmin ≤ x ≤ xmax en ymin ≤ y ≤ ymax

• Met xmin,xmax ,ymin,ymax de grenzen van het window waar het afbreken plaats vindt

• Een punt (x,y) ligt binnen het window als de ongelijkheid waar is

Page 43: Presentatie titel

Afbreken van lijnen• Lijnen die geen snijpunt hebben met het

clipping window zijn of buiten of binnen het window

• Een lijn die wel een snijpunt heeft wordt verdeeld in lijnsegmenten binnen of buiten

• Er zijn 3 algoritmes om efficient de relatie te bepalen of een lijn binnen of buiten het window is n.l:

1. Cohen-Sutherland

2. Midpoint onderverdeling

3. Liang-Barsky

• Alleen 1 wordt behandeld

Page 44: Presentatie titel

Afbreken van punten• Cohen-Sutherland

• 2 fasen:

1. Indentificeer de lijnen die het window snijden en of ze afgebroken moeten worden

2. Het uitvoeren van de afbreking

• Een lijn valt in 1 van de volgende afbreek categorieen:

1. Zichtbaar: beide eindpunten van de lijn liggen binnen het window

Page 45: Presentatie titel

Afbreken van punten2. Niet zichtbaar: De lijn ligt buiten het window

Als de lijn van (x1,y1) tot (x2,y2) voldoet aan de volgende ongelijkheden:

x1,x2 > xmax y1,y2 > ymax

x1,x2 > xmin y1,y2 > xmin

3. Afbreek kandidaat: De lijn valt niet in categorie 1 en/of 2

• In fig 5-3 :

Categorie 1: Lijn AB

Categorie 2: Lijn CD en EF

Categorie 3: Lijn GH en IJ en KL

Page 46: Presentatie titel

Afbreken van punten

Page 47: Presentatie titel

Afbreken van punten• Het algoritme heeft een efficiente procedure

om de categorieen te bepalen:

1. Ken een 4-bit code toe aan ieder eindpunt van een lijn

De code wordt bepaald door te kijken in welk van de 9 gebieden het eindpunt ligt:

Page 48: Presentatie titel

Afbreken van punten• Start met het linkse bit, die wordt 1 of 0

overeenkomstig onderstaand schema:

bit 1:eindpunt=boven het window=teken(y-ymax)

bit 2:eindpunt=onder het window=teken(ymin-y)

bit 3:eindpunt=rechts van window=teken(x-xmax)

bit 4:eindpunt=links van window=teken(xmin-x)

• Met de afspraak dat:

teken(a)=1 als a positief

teken(a)=0 als a negatief

Page 49: Presentatie titel

Afbreken van punten2. Een lijn is zichtbaar als beide eindpunten code

0000 hebben en niet zichtbaar als bitsgewijze logische AND van de eindpuntcodes is niet 0000 en een kandidaat voor afbreken als de code 0000 is

• Bij een lijn van categorie 3 moeten de snijpunten met de grenzen van het window bepaald worden (zie fig 5-4)

Page 50: Presentatie titel

Afbreken van punten

Page 51: Presentatie titel

Afbreken van punten

• We kiezen een eindpunt van een lijn(x1,y1) buiten het window (code ≠ 0000)

• Daarna selecteren we een verlengde grenslijn

• Deze lijnen zijn kandidaat als snijpunt met een lijn , waarbij de toestand van de region bit verandert van 1 naar 0 (zie snijpunt D’ in fig 5-4)

• Dit betekent:

Als bit1=1 snijpunt met lijn y=ymax

Als bit2=1 snijpunt met lijn y=ymin

Als bit3=1 snijpunt met lijn x=xmax

Als bit4=1 snijpunt met lijn x=xmin

Page 52: Presentatie titel

Afbreken van punten• Bekijk de lijn CD in fig 5-4

• Als eindpunt C is gekozen dan wordt de lijn y=ymin gekozen als snijpunt (C-code=0100)

• Als eindpunt D is gekozen dan wordt de lijn y=ymax of x=xmax gekozen als snijpunt (omdat D-code =1010)

• De coordinaten van het snijpunt met de grenslijn zijn:

1. Als de grenslijn vertikaal is

Page 53: Presentatie titel

Afbreken van punten2. Als de grenslijn horizontaal is

• Met m = (y2-y1)/(x2-x1) de helling van de lijn

• We vervangen het eindpunt (x1,y1) door het snijpunt (xi,yi) , daarmee het gedeelte buiten het window elimineren

• Van het nieuwe eindpunt wordt opnieuw de gebiedscode bepaald

• Opnieuw wordt de categorie bepaald van die lijn

Page 54: Presentatie titel

Afbreken van punten• Dit iteratief proces wordt beeindigd als alle

lijnen afgebroken zijn

• D.w.z. Ze behoren tot categorie 1 (zichtbaar) of categorie 2 (niet zichtbaar)

Page 55: Presentatie titel

De grafische pijplijn (2D)• De totale systeem architectuur heet grafische

pijplijn

• De operationele organisatie van een 2D pijplijn is in fig 5-13 gegeven:

Page 56: Presentatie titel

De grafische pijplijn (2D)• Aan het begin van de pijplijn: object data

( hoekpunten, polygonen) opgeslagen in een applicatie specifieke data-structuur

• Een grafische applicatie gebruikt systeem subroutines voor :

1. Initialisatie

2. Transformatie,

3. Window-Viewport instelling

4. Kleurenattributen instelling

• Als een tekenroutine gevraagd om een voorgedefinieerd object te renderen (tekenen) worden de volgende handelingen verricht:

Page 57: Presentatie titel

De grafische pijplijn (2D)1. Het grafisch systeem gaat eerst specifieke

Model Transformaties uitvoeren op orginele data (CTM=current transformation matrix)

2. Daarna wordt de Viewing Transformatie uitgevoerd van de bestaande window en viewport instellingen

3. Als laatste wordt de scanconversie uitgevoerd om de pixels te plaatsen in het framebuffer met de specifieke kleurenattribuut