Presentatie titel
description
Transcript of Presentatie titel
Presentatie titel
Rotterdam, 00 januari 2007
Computer Graphics
Technische Informatica
www.hogeschool-rotterdam.nl/cmi
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
1. Eenvoudig efficient te implementeren2. Flexibel om te manipuleren(samenstellen)
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)
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
Eenvoudige meetkundige vorm• Het eerste hoekunt heet startpunt• Het laatste hoekunt heet eindpunt ( zie fig 9-1)
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)
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)
IJzerdraad Modellen
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)
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
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)
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
IJzerdraad Modellen• Bij het modelleren worden gezien als vaste
lichamen • Bij draadmodellen is dit niet zo•
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
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)
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
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
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
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)
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
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
Basisfuncties van polynomen 2. Hermitische Kubische Polynomen zie fig 9-5
Basisfuncties van polynomen • De formules hiervoor zijn:
Basisfuncties van polynomen 2. B-splines Zie fig 9-6
als ti ≤ x ≤ ti+n+1
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:
Basisfuncties van polynomen 3. Bernstein Polynomen• Zie fig 9-7
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
•
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
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:
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
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
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
Problemen van polynomen• De spline S2(x) heet kwadratische spline met :
• De spline S3(x) heet kubische spline met :
• We vervolgen met kubische splines
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
•
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)
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)
Probleem van benadering • Bézier-Bernstein benadering • Hierbij gebruiken we Bernstein polynomen, we
vormen de parametrische krommen
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
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)
Probleem van benadering • Stukken Bézier krommen kunnen aan elkaar
gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)
Probleem van benadering • Bézier-B-Spline benadering • Voor deze benadering gebruiken we B-splines
(zie fig 9-10)
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
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)
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
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
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
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