500 likes | 657 Views
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
E N D
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 • 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
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 • Eenvoudig efficient te implementeren • Flexibel om te manipuleren(samenstellen)
Inleiding • Hierdoorzijnveelobjectentemaken of temodelleren • Meetkundigevormenalsprimitievenzijn: • Punten • Lijnen • Polylijnen ( 2 dimensionaleverzamelinglijnen open) • Polygonen ( 2 dimensionaleverzamelinglijnengesloten) • Polyhedra (3 dimensionaleverzamelingpolygonen)
Eenvoudige meetkundige vorm • Punten en lijnen • Een punt is eencoordinaat in 3-dimensionale ruimte • Eenlijn is gedefinieerd door zijneindpunten P1(x1,y1,z1) en P2(x2,y2,z2) • Polylijnen • Eenpolylijn is eenserieverbondenlijnsegmenten • De hoekpunten P0 …. Pndefinieren de lijnsegmenten
Eenvoudige meetkundige vorm • Heteerstehoekuntheetstartpunt • Hetlaatstehoekuntheeteindpunt ( zie fig 9-1)
Eenvoudige meetkundige vorm • Polygonen • Eenpolygoon is eengeslotenpolylijn • Eenpolygoonwordtgespecificeerd door de hoekpuntenlijst P0 …. Pn ,P0 • De lijnsegmentenheten de lijnen van de polygoon • Eenvlakke (planaire) polygoon is een poly-goon waarinallehoekpunten in hetzelfdevlakliggen (zie fig 9-2)
IJzerdraad Modellen • Eenijzerdraad (wire frame) model bestaatuitlijnen, hoekpunten en polygonen • De hoekpuntenwordenverbonden met lijnen en polygonenzijneen reeks van hoekpunten of lijnen. • De lijnenkunnengebogen of rechtelijnenzijn • Bijrechtelijnenheet het ijzerdraad model eenpolygonaal net of polygonaalnetwerk (zie fig 9-3)
IJzerdraad Modellen • Voorstellingpolygoonnetwerk: • Eenexplicietehoekpuntenlijst V= { P0 ,P1 ,P2 , ….. ,PN } • De punten Pi(xi,yi,zi) zijn de hoekpunten van hetpolygoonnetwerkopgeslagen in de volgorde die zetegenkomen door rondhet model tegaan • Dit is inefficient omdathoekpuntenmeerderekerenvoorkomen in de lijst (en ookmeerderekerengetekendworden) ( zieopg. 9.1)
IJzerdraad Modellen • Polygoonlijst • Iederhoekpunt is exact 1 keeropgeslagen in eenhoekpuntenlijst V= (P0 ,….. ,PN) • Iederepolygoonheefteen pointer naardezehoekpuntenlijst (zieopg 9.2) • Gemeenschappelijkelijnenwordenwelmeerderekerengeschrevenbijpresentatie
IJzerdraad Modellen • Explicietelijnenlijst • We houdeneenhoekpuntenlijstbij ,waarbijeenhoekpunt 1 keervoorkomt en eenlijnenlijstwaarinelkelijn 1 keer is opgeslagen • Iederelijn in de lijnenlijstheefteen pointer naar de 2 hoekpunten in de hoekpuntenlijst van die lijn • Eenpolygoonheefteenlijst met pointers die naar de lijnenlijstverwijzen • Extra informatie van polygonen die eengemeenschappelijkelijnhebben kun in de lijnenlijstgeplaatstworden (zieopg. 9.9)
IJzerdraad Modellen • Explicietelijnenlijstkanwordengebruiktomhetijzerdraad model in op teslaan. • Hetijzerdraad model wordtgetekend door allelijnentetekenen • Iederelijnwordtmaar 1 keergetekend • Polyhedron • Een polyhedron is eengeslotenpolygoon net ( eengesloten volume) waariniederepolygoonplanair is • De polygonenheten de wanden van de polyhedron
IJzerdraad Modellen • Bij het modellerenwordengezienalsvastelichamen • Bijdraadmodellen is ditnietzo
IJzerdraad Modellen • Voor en nadelenijzerdraadmodellen • Zewordenveelgebruiktbij engineering opdrachten • Eenvoudigteconstrueren • Evenvoudigaftebreken • Eenvoudigemanipulatie (transformaties) • Nadeel is dat het geenrealistischbeeldgeeftbijgekromdeoppervlakten • Dan moetenveelpolygonengebruiktwordenom het realistischebeeldteverkrijgen
Gekromde oppervlakten • Hiermeekunennrealistischebeeldengemaaktworden • Verschillendebenaderingen: • Oppervlaktesegmenten (surface patch) die naastelkaargeplaatstworden • Oppervlaktengebruiken die vasteobjectengebruiken: polyhedra,bollen, cilinders, kegels • Een model kandezealsbouwblokkengebruikenvoormodelleren (solid modelling)
Gekromde oppervlakten • 2 manierenvoormodelleren: • Additievemodelleren: model bouwen door veeleenvoudigeobjectensamentestellen • Subtractievemodelleren: stukkenverwijderen van eenbestaand object omeennieuw object teverkrijgen • Bijvoorbeeldeencilindrisch gat maken in eenbol of kubus • Bijvoorbeeldeenbeeldhouwwerk
Ontwerp van krommen • Gegeven n+1 datapunten P0(x0,y0),..,Pn(xn,yn) • Gevraagdeenkromme door dezepunten • Exact door de puntenheetinterpolatie (reconstructiedoel ) • Benadering van de puntenheetapproximatie ( estethischdoel ) • Krommenbouwen met kleinekrommen (curve segments) • Zekunnengemaaktworden met kleinepolygonen
Ontwerp van krommen • Als we eenkromme f(x) modelleren met curve segmentengebruiken we kleinesegmentenΦ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
Ontwerp van krommen • Dezepolynoom is bepaald door zijn n+1 coefficienten [an,…,a0] • Eencontinue stuksgewijze polynoom Q(x) van de graad n is een verzameling van kpolynomenqi(x) ,elk van de graad n en k+1 knopen (nodes) voor t0,..,tkzodat Q(x) = qi(x) voor ti≤ x ≤ ti+1 en i = 0,…,k-1 • Deze definitie vereist dat de polynomenbijelkaar komen in de knopen • Dwz qi-1(ti)= qi(ti) met i=1,….,k-1 • Deze eis geeft niet aan hoe vloeiend de polynomenqi(x) aan elkaar zitten (zie fig 9-4)
Ontwerp van krommen • Polynomen van eenhogegraadzijnnietbruikbaaromdatzeoscilleren • De meestbruikbarezijn de stukgewijzewaarvan de polynomenkubisch (van de graad 3) zijn, immers: • Eentekenaargebruikteenflexibellatje (spline) • De 3e graad is de minimalegraadomvloeiendtezijn
Basisfuncties van polynomen • P0 (x0,y0),….,Pn (xn,yn) heeft n+1 datapunten en tevenszijner t0,t1,t2,.. enzknopen • Dan zijner de volgendekeuzenvoor basis of vermengingsfuncties: • Lagrange polynomen van de graad n • Merk op dat Li(xi)=1 en Li(xj) = 0 voorallej≠I • Π betekent term voor term vermenigvuldigen
Basisfuncties van polynomen • HermitischeKubischePolynomen zie fig 9-5
Basisfuncties van polynomen • De formuleshiervoorzijn:
Basisfuncties van polynomen • B-splines Zie fig 9-6 alsti ≤ x ≤ ti+n+1
Basisfuncties van polynomen • Merk op datBi,n(x) is ongelijkaan 0 in het interval [ti,ti+n+1] • In het bijzonder : de cubic spline (3e macht) Bi,3 is ongelijkaan 0 in het interval [ti,ti+4] (welke de knopenti,ti+1,ti+2,ti+3,ti+4 omvat) • In aanvullingvoornietherhalendeknopen is de B-spline 0 bij de eindknopentien ti+n+1 • Volgensopg 9.3 geldt:
Basisfuncties van polynomen • Bernstein Polynomen • Zie fig 9-7
Basisfuncties van polynomen • De Cubic Bernstein polynomenzijn: • B0,3(x)= 1-3x + 3x2 – x3 • B1,3(x)= 3(x - 2x2 + x3) • B2,3(x)= 3(x2 – x3) • B3,3(x)= x3
Problemen van polynomen • Gegeven de datapunten P0(x0,y0),….. Pn(xn,yn) ,we willen door die punteneenkrommevinden die door die puntengaat • Oplosing Lagrange polynoominterpolatie • waarbij Li(x) de Lagrange polynomenzijn en L(x) de ndegraadspolynoominterpolatie van de datapunten
Problemen van polynomen • OplossingHermitischeKubischeInterpolatie • We willeneenstuksgewijzepolynoom H(x) van de graad 3 vinden die door alledatapuntengaat en die continue differentieerbaar is in die punten • We schrijvenook de waardesvoorvoor de afgeleide y’ van de gegevendatapunten, dwzdatzijn de punten (x0,y’0),….,(xn,y’ n), dan is:
Problemen van polynomen • Hierbijzijn H0 (x) en H0 (x) de hermitischekubischefuncties en t0=x0, t1=x1, t2=x2, .., tn=xnzijnde keuzesvoor de knopenverzameling • Splineinterpolatie • Alsvereistwordtdat de stuksgewijzepolynoomzovloeiendmogelijkmoetzijn in de datapuntengebruiken we splines • Eenspline van de graadmheeft continue afgeleiden tot de ordem-1 in de datapunten
Problemen van polynomen • Men kanaantonendatelkemdegraadspline die door n+1datapuntengaat met B-splinesbasisfunctieszodanigdat : • Om de B-splinefunctiesBi,m(x) tedefinieerenomhetinterpolatieprobleem op telossenmoeten de knopen t0, t1,…, tm+n+1gekozenwordenvolgens de Shoenberg-Whitney conditie ti< xi< ti+m+1 met i = 0,…,n
Problemen van polynomen • De volgendekeuzesvoor de knopenvoldoen: ( zieopg 9.4) • Stap 1: Kies t0=t1 …..=tm < x0 tn+1=tn+2=…..=tm+n+1 > xn • Stap 2: Kies de overgeblevenknopenvolgens • Voorkubischesplines (m=3) is eenalternatiefvoorstap 2: ti+4=xi+2 met i=0,…,n-4
Problemen van polynomen • De spline S2(x) heetkwadratischespline met : • De spline S3(x) heetkubischespline met : • We vervolgen met kubischesplines
Problemen van polynomen • Dan zijnern+3coefficientenai die n+3vergelijkingenvereisen • Hetinterpolatiecriterium S3(xj) = yj , j=0,…n voorziet in n+1vergelijkingen • De overige 2 vergelijkingenzijngrenscondities in de eindpunten x0 en xn
Problemen van polynomen • Sommigekeuzesvoorgrensconditieszijn: • Natuurlijkesplineconditie: (minstgekozen) S3”(x0)= 0 S3”(xn)= 0 • Samengeklemdesplineconditie: S3’(x0)= y0’ S3’(xn)= yn’ Met y0’yn’ voorgeschrevenafgeleiden • Cyclischesplineconditie: (geslotenkrommes) S3’(x0)= S3’(xn) S3”(x0)=S3”(xn) • Anticyclischeconditie: (parallelleeinden) S3’(x0)=- S3’(xn) S3”(x0)=-S3”(xn)
Probleem van benadering • Hetprobleem is omeenvloeiende 3-dimensionale krommetemaken, welke de datapuntenbenadert • Gegeven de controlepunten P0(x0,y0,z0), P1(x1,y1,z1), …., Pn(xn,yn,zn) (zie fig 9-8)
Probleem van benadering • Bézier-Bernstein benadering • Hierbijgebruiken we Bernstein polynomen, we vormen de parametrischekrommen
Probleem van benadering • P(t) heet de Bézierkromme • Eigenschappen van Bézier-Bernstein benadering • Erzijn 4 eigenschappen • De krommeheeft de zelfdeeindpuntenals de polyline P0=P(0)=[x(0),y(0),z(0)] Pn=P(1)=[x(1),y(1),z(1)] • De richting van de tangensvector in de eindpunten P0,Pn is dezelfdeals die van de vector bepaald door de eerstesegmenten en de laatstesegmenten van de bijbehorendepolyline
Probleem van benadering • Daarvoorgeldt P’(0) = n.(P1-P0) d.w.z.: • x’(0)= n.(x1-x0) , y’(0)= n.(y1-y0) , z’(0)=n.(z1-z0) • Tevensgeldt: P’(1) = n.(Pn-Pn-1) • Hier is neenbepaalde factor (afhankelijk van de hoek) • De Bézierkrommeligtgeheelbinnen de bolleomhulling van de bijbehorendepolyline • Bezier krommenzijnuitstekendvoorinteractiefontwerp • StukkenBézierkrommenkunnenaanelkaargelinktworen en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)
Probleem van benadering • StukkenBézierkrommenkunnenaanelkaargelinktworen en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)
Probleem van benadering • Bézier-B-Splinebenadering • Voordezebenaderinggebruiken we B-splines (zie fig 9-10)
Probleem van benadering • De m-degraad B-splinesBi,m(t),i=0,…n zijngedefinieerdvoort in het parameter bereik [0,n-m+1] • De knopenverzameling t0,…,tn+m+1 is gekozen met de verzameling
Probleem van benadering • Het gebruik van herhaaldeknopenzorgtervoordat de eindpunten van de splinesamenvallen met de eindpunten van de begeleidendepolylijn (zieopg. 9.6) • Daar de knopenverdeling over gelijk is kunnen we ook de explicietevormgebruikenom B-splinesuitterekenen (zieopg. 9.10)
Probleem van benadering • Geslotenkrommen • Om eengesloten B-splinekrommeteconstrueren die eengeslotenbegeleidendepolygoonheeft , hoeven we alleen de knopen t0….tn+m+1cyclischtekiezen ,dwz [0,1,….,n.1….] zodat • tn+1 = t0 =0 tm+2 = t1 tm+1+i = ti • In praktijkzijnkwadratische B-splines Bi,2 en kubische B-splines Bi,3 heteenvoudigsttegebruiken en geeftgenoegflexibiliteitbijontwerpen
Probleem van benadering • EigenschappenBézier-B-Splinebenadering • Erzijn 5 eigenschappen: • De Bézier-Bsplinebenaderingheeftdezelfdeeigenschappenals de Bézier-Bernstein benadering • Hetzijndezelfdepolynomenalsm=n • Als de begeleidendepolyline m+1 opeenvolgendehoekpunten (control punten) heeftwelke in 1 lijnliggendan is de resulterendeBézier-B-splinelineair
Probleem van benadering • De Bézier-B-splinebenaderingvoorziet in lokalecontrolevoor de vorm van de kromme • Als 1 control punt wordtveranderd, wordendelenverweg op de krommewordennietveranderd (m+1 puntenveranderen) • Bézier-B-splinesproduceerteenbeterebenaderingdan de Bézier-Bernstein benadering • De Bézier-B-splinebenaderingstaat het gebruik toe van control punten Pi met eenveelvoud van 2 of meer
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