Presentatie titel

49

description

Computer Graphics. Presentatie titel. Technische Informatica www.hogeschool-rotterdam.nl/cmi. Rotterdam, 00 januari 2007. Les 5 . Les 5 gaat over de hoofdstukken 9.1 Eenvoudige meetkundige vormen 9.2 Draadmodellen 9.3 Gebogen oppervlakten 9.4 Ontwerp van krommen - PowerPoint PPT Presentation

Transcript of Presentatie titel

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 5 • Les 5 gaat over de hoofdstukken

• 9.1 Eenvoudige meetkundige vormen• 9.2 Draadmodellen • 9.3 Gebogen oppervlakten• 9.4 Ontwerp van krommen• 9.5 Basis functies met polynomen• 9.6 Interpolatie probleem• 9.7 Benaderings probleem• 9.8 Ontwerp van gebogen oppervlakten• 9.9 Transformatie van kromme en oppervlakte• 9.10 Kwadratische oppervlakten

Page 4: Presentatie titel

Inleiding • Een van de belangrijkste concepten in computer

graphics is het modelleren van objecten• Een model is een numerieke beschrijving van het

object in meetkundige eigenschappen (grootte, vorm) en hoe die inwerken op licht (reflectie, doorlaatbaarheid)

• Dit hoofdstuk gaat over meetkundige voorstelling van objecten

• Een grafisch systeem gebruikt een verzameling primitieven of meetkundige vormen

1. Eenvoudig efficient te implementeren2. Flexibel om te manipuleren(samenstellen)

Page 5: Presentatie titel

Inleiding• Hierdoor zijn veel objecten te maken of te

modelleren• Meetkundige vormen als primitieven zijn:• Punten• Lijnen• Polylijnen ( 2 dimensionale verzameling lijnen

open)• Polygonen ( 2 dimensionale verzameling lijnen

gesloten)• Polyhedra (3 dimensionale verzameling

polygonen)

Page 6: Presentatie titel

Eenvoudige meetkundige vorm• Punten en lijnen• Een punt is een coordinaat in 3-dimensionale

ruimte • Een lijn is gedefinieerd door zijn eindpunten

P1(x1,y1,z1) en P2(x2,y2,z2)

• Polylijnen• Een polylijn is een serie verbonden lijn

segmenten• De hoekpunten P0 …. Pn definieren de lijn

segmenten

Page 7: Presentatie titel

Eenvoudige meetkundige vorm• Het eerste hoekunt heet startpunt• Het laatste hoekunt heet eindpunt ( zie fig 9-1)

Page 8: Presentatie titel

Eenvoudige meetkundige vorm• Polygonen• Een polygoon is een gesloten polylijn • Een polygoon wordt gespecificeerd door de

hoekpuntenlijst P0 …. Pn ,P0 • De lijnsegmenten heten de

lijnen van de polygoon• Een vlakke (planaire) polygoon is een poly-

goon waarin alle hoekpunten in hetzelfde vlak liggen (zie fig 9-2)

Page 9: Presentatie titel

IJzerdraad Modellen• Een ijzerdraad (wire frame) model bestaat uit

lijnen, hoekpunten en polygonen • De hoekpunten worden verbonden met lijnen

en polygonen zijn een reeks van hoekpunten of lijnen.

• De lijnen kunnen gebogen of rechte lijnen zijn• Bij rechte lijnen heet het ijzerdraad model een

polygonaal net of polygonaal netwerk (zie fig 9-3)

Page 10: Presentatie titel

IJzerdraad Modellen

Page 11: Presentatie titel

IJzerdraad Modellen• Voorstelling polygoon netwerk:

1. Een expliciete hoekpuntenlijst V= { P0 ,P1 ,P2 , ….. ,PN }

• De punten Pi(xi,yi,zi ) zijn de hoekpunten van het polygoon netwerk opgeslagen in de volgorde die ze tegenkomen door rond het model te gaan

• Dit is inefficient omdat hoekpunten meerdere keren voorkomen in de lijst (en ook meerdere keren getekend worden) ( zie opg. 9.1)

Page 12: Presentatie titel

IJzerdraad Modellen2. Polygoon lijst• Ieder hoekpunt is exact 1 keer opgeslagen in

een hoekpuntenlijst V= (P0 ,….. ,PN) • Iedere polygoon heeft een pointer naar deze

hoekpuntenlijst (zie opg 9.2)• Gemeenschappelijke lijnen worden wel

meerdere keren geschreven bij presentatie

Page 13: Presentatie titel

IJzerdraad Modellen3. Expliciete lijnenlijst• We houden een hoekpuntenlijst bij ,waarbij

een hoekpunt 1 keer voorkomt en een lijnen lijst waarin elke lijn 1 keer is opgeslagen

• Iedere lijn in de lijnenlijst heeft een pointer naar de 2 hoekpunten in de hoekpuntenlijst van die lijn

• Een polygoon heeft een lijst met pointers die naar de lijnenlijst verwijzen

• Extra informatie van polygonen die een gemeenschappelijke lijn hebben kun in de lijnenlijst geplaatst worden (zie opg. 9.9)

Page 14: Presentatie titel

IJzerdraad Modellen• Expliciete lijnenlijst kan worden gebruikt om

het ijzerdraad model in op te slaan. • Het ijzerdraad model wordt getekend door alle

lijnen te tekenen• Iedere lijn wordt maar 1 keer getekend

• Polyhedron• Een polyhedron is een gesloten polygoon net (

een gesloten volume) waarin iedere polygoon planair is

• De polygonen heten de wanden van de polyhedron

Page 15: Presentatie titel

IJzerdraad Modellen• Bij het modelleren worden gezien als vaste

lichamen • Bij draadmodellen is dit niet zo•

Page 16: Presentatie titel

IJzerdraad Modellen• Voor en nadelen ijzerdraadmodellen• Ze worden veel gebruikt bij engineering

opdrachten• Eenvoudig te construeren• Evenvoudig af te breken• Eenvoudige manipulatie (transformaties)• Nadeel is dat het geen realistisch beeld geeft

bij gekromde oppervlakten• Dan moeten veel polygonen gebruikt worden

om het realistische beeld te verkrijgen

Page 17: Presentatie titel

Gekromde oppervlakten• Hiermee kunenn realistische beelden gemaakt

worden• Verschillende benaderingen:1. Oppervlakte segmenten (surface patch) die

naast elkaar geplaatst worden2. Oppervlakten gebruiken die vaste objecten

gebruiken: polyhedra,bollen, cilinders, kegels• Een model kan deze als bouwblokken

gebruiken voor modelleren (solid modelling)

Page 18: Presentatie titel

Gekromde oppervlakten• 2 manieren voor modelleren:1. Additieve modelleren: model bouwen door

veel eenvoudige objecten samen te stellen2. Subtractieve modelleren: stukken verwijderen

van een bestaand object om een nieuw object te verkrijgen

• Bijvoorbeeld een cilindrisch gat maken in een bol of kubus

• Bijvoorbeeld een beeldhouwwerk

Page 19: Presentatie titel

Ontwerp van krommen• Gegeven n+1 datapunten P0(x0,y0),..,Pn (xn,yn)• Gevraagd een kromme door deze punten1. Exact door de punten heet interpolatie

(reconstructie doel )2. Benadering van de punten heet approximatie (

estethisch doel )

• Krommen bouwen met kleine krommen (curve segments)

• Ze kunnen gemaakt worden met kleine polygonen

Page 20: Presentatie titel

Ontwerp van krommen• Als we een kromme f(x) modelleren met curve

segmenten gebruiken we kleine segmenten Φi(x) (basis of blending of vermengings functies):

• We kiezen de blending functies met oog op berekeningen en afbeeldingen.

• Daarom polynomen (veeltermen) gebruiken• Een polynoom van de graad n is een functie

van de vorm: • Q(x)= anxn + an-1xn-1 +…+ a1x + a0

Page 21: Presentatie titel

Ontwerp van krommen• Deze polynoom is bepaald door zijn n+1

coefficienten [an,…,a0] • Een continue stuksgewijze polynoom Q(x)

van de graad n is een verzameling van k polynomen qi(x) ,elk van de graad n en k+1 knopen (nodes) voor t0,..,tk zodat

Q(x) = qi(x) voor ti ≤ x ≤ ti+1 en i = 0,…,k-1• Deze definitie vereist dat de polynomen

bijelkaar komen in de knopen• Dwz qi-1(ti)= qi(ti) met i=1,….,k-1• Deze eis geeft niet aan hoe vloeiend de

polynomen qi(x) aan elkaar zitten (zie fig 9-4)

Page 22: Presentatie titel

Ontwerp van krommen

• Polynomen van een hoge graad zijn niet bruikbaar omdat ze oscilleren

• De meest bruikbare zijn de stukgewijze waarvan de polynomen kubisch (van de graad 3) zijn, immers:

1. Een tekenaar gebruikt een flexibel latje (spline)

2. De 3e graad is de minimale graad om vloeiend te zijn

Page 23: Presentatie titel

Basisfuncties van polynomen • P0 (x0,y0),….,Pn (xn,yn) heeft n+1 datapunten

en tevens zijn er t0,t1,t2,.. enz knopen • Dan zijn er de volgende keuzen voor basis of

vermengingsfuncties:

1. Lagrange polynomen van de graad n

• Merk op dat Li(xi)=1 en Li(xj) = 0 voor alle j≠I• Π betekent term voor term

vermenigvuldigen

Page 24: Presentatie titel

Basisfuncties van polynomen 2. Hermitische Kubische Polynomen zie fig 9-5

Page 25: Presentatie titel

Basisfuncties van polynomen • De formules hiervoor zijn:

Page 26: Presentatie titel

Basisfuncties van polynomen 2. B-splines Zie fig 9-6

als ti ≤ x ≤ ti+n+1

Page 27: Presentatie titel

Basisfuncties van polynomen • Merk op dat Bi,n (x) is ongelijk aan 0 in het

interval [ti ,ti+n+1]• In het bijzonder : de cubic spline (3e macht)

Bi,3 is ongelijk aan 0 in het interval [ti ,ti+4] (welke de knopen ti ,ti+1,ti+2,ti+3,ti+4 omvat)

• In aanvulling voor niet herhalende knopen is de B-spline 0 bij de eindknopen ti en ti+n+1

• Volgens opg 9.3 geldt:

Page 28: Presentatie titel

Basisfuncties van polynomen 3. Bernstein Polynomen• Zie fig 9-7

Page 29: Presentatie titel

Basisfuncties van polynomen • De Cubic Bernstein polynomen zijn:

• B0,3(x)= 1-3x + 3x2 – x3

• B1,3(x)= 3(x - 2x2 + x3)

• B2,3(x)= 3(x2 – x3)

• B3,3(x)= x3

Page 30: Presentatie titel

Problemen van polynomen• Gegeven de datapunten P0(x0,y0),…..

Pn(xn,yn) ,we willen door die punten een kromme vinden die door die punten gaat

• Oplosing Lagrange polynoom interpolatie

• waarbij Li(x) de Lagrange polynomen zijn en L(x) de nde graads polynoom interpolatie van de datapunten

Page 31: Presentatie titel

Problemen van polynomen• Oplossing Hermitische Kubische

Interpolatie• We willen een stuksgewijze polynoom H(x) van

de graad 3 vinden die door alle datapunten gaat en die continue differentieerbaar is in die punten

• We schrijven ook de waardes voor voor de afgeleide y’ van de gegeven datapunten, dwz dat zijn de punten (x0,y’0),….,(xn,y’ n), dan is:

Page 32: Presentatie titel

Problemen van polynomen• Hierbij zijn H0 (x) en H0 (x) de hermitische

kubische functies en t0=x0, t1=x1, t2=x2, .., tn=xn zijn de keuzes voor de knopenverzameling

• Spline interpolatie• Als vereist wordt dat de stuksgewijze

polynoom zo vloeiend mogelijk moet zijn in de datapunten gebruiken we splines

• Een spline van de graad m heeft continue afgeleiden tot de orde m-1 in de datapunten

Page 33: Presentatie titel

Problemen van polynomen• Men kan aantonen dat elke mde graad spline

die door n+1 datapunten gaat met B-splines basisfuncties zodanig dat :

• Om de B-spline functies Bi,m(x) te definieeren om het interpolatieprobleem op te lossen moeten de knopen t0, t1,…, tm+n+1 gekozen worden volgens de Shoenberg-Whitney conditie

ti< xi< ti+m+1 met i = 0,…,n

Page 34: Presentatie titel

Problemen van polynomen• De volgende keuzes voor de knopen voldoen:

( zie opg 9.4)• Stap 1: Kies

t0=t1 …..=tm < x0

tn+1=tn+2= …..=tm+n+1 > xn

• Stap 2: Kies de overgebleven knopen volgens

• Voor kubische splines (m=3) is een alternatief voor stap 2:

ti+4=xi+2 met i=0,…,n-4

Page 35: Presentatie titel

Problemen van polynomen• De spline S2(x) heet kwadratische spline met :

• De spline S3(x) heet kubische spline met :

• We vervolgen met kubische splines

Page 36: Presentatie titel

Problemen van polynomen• Dan zijn er n+3 coefficienten ai die n+3

vergelijkingen vereisen• Het interpolatie criterium S3(xj) = yj , j=0,…n

voorziet in n+1 vergelijkingen

• De overige 2 vergelijkingen zijn grenscondities in de eindpunten x0 en xn

Page 37: Presentatie titel

Problemen van polynomen• Sommige keuzes voor grenscondities zijn:1. Natuurlijke spline conditie: (minst gekozen)

S3”(x0)= 0 S3

”(xn)= 0 2. Samengeklemde spline conditie:

S3’(x0)= y0

’ S3’(xn)= yn

Met y0’ yn

’ voorgeschreven afgeleiden3. Cyclische spline conditie: (gesloten krommes)

S3’(x0)= S3

’(xn) S3”(x0)=S3

”(xn)4. Anticyclische conditie: (parallelle einden)

S3’(x0)=- S3

’(xn) S3”(x0)=-S3

”(xn)

Page 38: Presentatie titel

Probleem van benadering • Het probleem is om een vloeiende 3-

dimensionale kromme te maken, welke de datapunten benadert

• Gegeven de controle punten P0(x0,y0,z0), P1(x1,y1,z1), …., Pn(xn,yn,zn) (zie fig 9-8)

Page 39: Presentatie titel

Probleem van benadering • Bézier-Bernstein benadering • Hierbij gebruiken we Bernstein polynomen, we

vormen de parametrische krommen

Page 40: Presentatie titel

Probleem van benadering • P(t) heet de Bézier kromme• Eigenschappen van Bézier-Bernstein

benadering • Er zijn 4 eigenschappen1. De kromme heeft de zelfde eindpunten als de

polyline P0=P(0)=[x(0),y(0),z(0)] Pn=P(1)=[x(1),y(1),z(1)]

2. De richting van de tangensvector in de eindpunten P0,Pn is dezelfde als die van de vector bepaald door de eerste segmenten en de laatste segmenten van de bijbehorende polyline

Page 41: Presentatie titel

Probleem van benadering • Daarvoor geldt P’(0) = n.(P1-P0) d.w.z.:

• x’(0)= n.(x1-x0) , y’(0)= n.(y1-y0) , z’(0)=n.(z1-z0)

• Tevens geldt: P’(1) = n.(Pn-Pn-1) • Hier is n een bepaalde factor (afhankelijk van

de hoek)3. De Bézier kromme ligt geheel binnen de bolle

omhulling van de bijbehorende polyline4. Bezier krommen zijn uitstekend voor interactief

ontwerp• Stukken Bézier krommen kunnen aan elkaar

gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)

Page 42: Presentatie titel

Probleem van benadering • Stukken Bézier krommen kunnen aan elkaar

gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)

Page 43: Presentatie titel

Probleem van benadering • Bézier-B-Spline benadering • Voor deze benadering gebruiken we B-splines

(zie fig 9-10)

Page 44: Presentatie titel

Probleem van benadering

• De m-de graad B-splines Bi,m(t),i=0,…n zijn gedefinieerd voor t in het parameter bereik [0,n-m+1]

• De knopen verzameling t0,…,tn+m+1 is gekozen met de verzameling

Page 45: Presentatie titel

Probleem van benadering • Het gebruik van herhaalde knopen zorgt

ervoor dat de eindpunten van de spline samenvallen met de eindpunten van de begeleidende polylijn (zie opg. 9.6)

• Daar de knopenverdeling over gelijk is kunnen we ook de expliciete vorm gebruiken om B-splines uit te rekenen (zie opg. 9.10)

Page 46: Presentatie titel

Probleem van benadering • Gesloten krommen

• Om een gesloten B-spline kromme te construeren die een gesloten begeleidende polygoon heeft , hoeven we alleen de knopen t0….tn+m+1 cyclisch te kiezen ,dwz [0,1,….,n.1….] zodat

• tn+1 = t0 =0 tm+2 = t1 tm+1+i = ti

• In praktijk zijn kwadratische B-splines Bi,2 en kubische B-splines Bi,3 het eenvoudigst te gebruiken en geeft genoeg flexibiliteit bij ontwerpen

Page 47: Presentatie titel

Probleem van benadering • Eigenschappen Bézier-B-Spline benadering • Er zijn 5 eigenschappen:

1. De Bézier-Bspline benadering heeft dezelfde eigenschappen als de Bézier-Bernstein benadering

• Het zijn dezelfde polynomen als m=n

2. Als de begeleidende polyline m+1 opeenvolgende hoekpunten (control punten) heeft welke in 1 lijn liggen dan is de resulterende Bézier-B-spline lineair

Page 48: Presentatie titel

Probleem van benadering 3. De Bézier-B-spline benadering voorziet in

lokale controle voor de vorm van de kromme • Als 1 control punt wordt veranderd, worden

delen ver weg op de kromme worden niet veranderd (m+1 punten veranderen)

4. Bézier-B-splines produceert een betere benadering dan de Bézier-Bernstein benadering

5. De Bézier-B-spline benadering staat het gebruik toe van control punten Pi met een veelvoud van 2 of meer

Page 49: Presentatie titel

Probleem van benadering • D.w.z. Pi = Pi+1 =…= Pi+k voor k ≥ 1 • Dit geeft een benadering die dichter bij het

control punt getrokken wordt• Als de punten een veelvoud van m+1 hebben

gaar de kromme door de control punten