De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi.

Verwante presentaties


Presentatie over: "Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi."— Transcript van de presentatie:

1

2 Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi

3 Les 7 Les 7 gaat over de hoofdstukken 10.1 Diepte vergelijkingen 10.2 Z buffer algoritme 10.3 Verwijdering van achterzijden 10.4 Het painters algoritme 10.5 Scan-lijn algoritme 10.6 Subdivision algoritme 10.7 Eliminatie van verborgen lijnen 10.8 Renderen van wiskundige oppervlakten

4 Inleiding Ondoorzichtige objecten verbergen objecten, die achter het object staan De oppervlakten die geblokkeerd zijn of verborgen, moeten worden verwijderd om een realistisisch beeld te maken De herkenning en verwijdering van deze oppervlakten heet hidden-surface ( verborgen oppervlakte) probleem

5 Inleiding

6 Diepte vergelijkingen Alle coordinaten (x,y,z) zijn genormaliseerde view coordinaten Ieder algoritme moet bepalen, welke lijnen en oppervlakten zichtbaar zijn vanuit het projectiecentrum Zowel voor parallelle als perspectief projectie Gegeven 2 punten P 1 (x 1,y 1,z 1 ) en P 2 (x 2,y 2,z 2 ) De vraag is welk punt is zichtbaar en welk niet?

7 Diepte vergelijkingen Antwoord: 1. Liggen P 1 en P 2 op dezelfde projectielijn? 2. Zo nee, dan verbergt zich geen van de 2 punten Zo ja, een vergelijking met de de diepte zegt, welk punt voor de ander staat Bij een orthografische projectie (richting van projectie loodrecht op het view plane) op het xy vlak: P 1 en P 2 op zijn dezelfde projectielijn als x 1 =x 2 en y 1 =y 2 Dan hoeft alleen bekeken te worden of z 1 < z 2. Als

8 Diepte vergelijkingen Als z 1 < z 2 dan ligt P 2 achter P 1 (zie fig.10-1a) Voor een perspectief projectie (zie fig.10-1b) zijn de berekeningen complexer (opg. 10.1) Vermijden door transformatie van 3- dimensionale objecten zodat de parallelle projectie van het getransformeerde object gelijk is aan de perspectief projectie van het orgineel (fig 10-2)

9 Diepte vergelijkingen

10 IJzerdraad Modellen

11 Voorstelling polygoon netwerk: 1. Een expliciete hoekpuntenlijst V= { P 0,P 1,P 2, …..,P N } De punten P i (x i,y i,z i ) 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)

12 IJzerdraad Modellen 2. Polygoon lijst Ieder hoekpunt is exact 1 keer opgeslagen in een hoekpuntenlijst V= (P 0,…..,P N ) Iedere polygoon heeft een pointer naar deze hoekpuntenlijst (zie opg 9.2) Gemeenschappelijke lijnen worden wel meerdere keren geschreven bij presentatie

13 IJzerdraad Modellen 3. 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)

14 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

15 IJzerdraad Modellen Bij het modelleren worden gezien als vaste lichamen Bij draadmodellen is dit niet zo

16 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

17 Gekromde oppervlakten Hiermee kunenn realistische beelden gemaakt worden Verschillende benaderingen: 1. Oppervlakte segmenten (surface patch) die naast elkaar geplaatst worden 2. Oppervlakten gebruiken die vaste objecten gebruiken: polyhedra,bollen, cilinders, kegels Een model kan deze als bouwblokken gebruiken voor modelleren (solid modelling)

18 Gekromde oppervlakten 2 manieren voor modelleren: 1. Additieve modelleren: model bouwen door veel eenvoudige objecten samen te stellen 2. 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

19 Ontwerp van krommen Gegeven n+1 datapunten P 0 (x 0,y 0 ),..,P n (x n,y n ) Gevraagd een kromme door deze punten 1. 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

20 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)= a n x n + a n-1 x n-1 +…+ a 1 x + a 0

21 Ontwerp van krommen Deze polynoom is bepaald door zijn n+1 coefficienten [a n,…,a 0 ] Een continue stuksgewijze polynoom Q(x) van de graad n is een verzameling van k polynomen q i (x),elk van de graad n en k+1 knopen (nodes) voor t 0,..,t k zodat Q(x) = q i (x) voor t i ≤ x ≤ t i+1 en i = 0,…,k-1 Deze definitie vereist dat de polynomen bijelkaar komen in de knopen Dwz q i-1 (t i )= q i (t i ) met i=1,….,k-1 Deze eis geeft niet aan hoe vloeiend de polynomen q i (x) aan elkaar zitten (zie fig 9-4)

22 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

23 Basisfuncties van polynomen P 0 (x 0,y 0 ),….,P n (x n,y n ) heeft n+1 datapunten en tevens zijn er t 0,t 1,t 2,.. enz knopen Dan zijn er de volgende keuzen voor basis of vermengingsfuncties: 1. Lagrange polynomen van de graad n Merk op dat L i (x i )=1 en L i (x j ) = 0 voor alle j≠I Π betekent term voor term vermenigvuldigen

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

25 Basisfuncties van polynomen De formules hiervoor zijn:

26 Basisfuncties van polynomen 2. B-splines Zie fig 9-6 als t i ≤ x ≤ t i+n+1

27 Basisfuncties van polynomen Merk op dat B i,n (x) is ongelijk aan 0 in het interval [t i,t i+n+1 ] In het bijzonder : de cubic spline (3e macht) B i,3 is ongelijk aan 0 in het interval [t i,t i+4 ] (welke de knopen t i,t i+1,t i+2,t i+3,t i+4 omvat) In aanvulling voor niet herhalende knopen is de B-spline 0 bij de eindknopen t i en t i+n+1 Volgens opg 9.3 geldt:

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

29 Basisfuncties van polynomen De Cubic Bernstein polynomen zijn: B 0,3 (x)= 1-3x + 3x 2 – x 3 B 1,3 (x)= 3(x - 2x 2 + x 3 ) B 2,3 (x)= 3(x 2 – x 3 ) B 3,3 (x)= x 3

30 Problemen van polynomen Gegeven de datapunten P 0 (x 0,y 0 ),….. P n (x n,y n ),we willen door die punten een kromme vinden die door die punten gaat Oplosing Lagrange polynoom interpolatie waarbij L i (x) de Lagrange polynomen zijn en L(x) de n de graads polynoom interpolatie van de datapunten

31 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 (x 0,y’ 0 ),….,(x n,y’ n ), dan is:

32 Problemen van polynomen Hierbij zijn H 0 (x) en H 0 (x) de hermitische kubische functies en t 0 =x 0, t 1 =x 1, t 2 =x 2,.., t n =x n 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

33 Problemen van polynomen Men kan aantonen dat elke m de graad spline die door n+1 datapunten gaat met B-splines basisfuncties zodanig dat : Om de B-spline functies B i,m (x) te definieeren om het interpolatieprobleem op te lossen moeten de knopen t 0, t 1,…, t m+n+1 gekozen worden volgens de Shoenberg-Whitney conditie t i < x i < t i+m+1 met i = 0,…,n

34 Problemen van polynomen De volgende keuzes voor de knopen voldoen: ( zie opg 9.4) Stap 1: Kies t 0 =t 1 …..=t m < x 0 t n+1 =t n+2 = …..=t m+n+1 > x n Stap 2: Kies de overgebleven knopen volgens Voor kubische splines (m=3) is een alternatief voor stap 2: t i+4 =x i+2 met i=0,…,n-4

35 Problemen van polynomen De spline S 2 (x) heet kwadratische spline met : De spline S 3 (x) heet kubische spline met : We vervolgen met kubische splines

36 Problemen van polynomen Dan zijn er n+3 coefficienten a i die n+3 vergelijkingen vereisen Het interpolatie criterium S 3 (x j ) = y j, j=0,…n voorziet in n+1 vergelijkingen De overige 2 vergelijkingen zijn grenscondities in de eindpunten x 0 en x n

37 Problemen van polynomen Sommige keuzes voor grenscondities zijn: 1. Natuurlijke spline conditie: (minst gekozen) S 3 ” (x 0 )= 0 S 3 ” (x n )= 0 2. Samengeklemde spline conditie: S 3 ’ (x 0 )= y 0 ’ S 3 ’ (x n )= y n ’ Met y 0 ’ y n ’ voorgeschreven afgeleiden 3. Cyclische spline conditie: (gesloten krommes) S 3 ’ (x 0 )= S 3 ’ (x n ) S 3 ” (x 0 )=S 3 ” (x n ) 4. Anticyclische conditie: (parallelle einden) S 3 ’ (x 0 )=- S 3 ’ (x n ) S 3 ” (x 0 )=-S 3 ” (x n )

38 Probleem van benadering Het probleem is om een vloeiende 3- dimensionale kromme te maken, welke de datapunten benadert Gegeven de controle punten P 0 (x 0,y 0,z 0 ), P 1 (x 1,y 1,z 1 ), …., P n (x n,y n,z n ) (zie fig 9-8)

39 Probleem van benadering Bézier-Bernstein benadering Hierbij gebruiken we Bernstein polynomen, we vormen de parametrische krommen

40 Probleem van benadering P(t) heet de Bézier kromme Eigenschappen van Bézier-Bernstein benadering Er zijn 4 eigenschappen 1. De kromme heeft de zelfde eindpunten als de polyline P 0 =P(0)=[x(0),y(0),z(0)] P n =P(1)=[x(1),y(1),z(1)] 2. De richting van de tangensvector in de eindpunten P 0,P n is dezelfde als die van de vector bepaald door de eerste segmenten en de laatste segmenten van de bijbehorende polyline

41 Probleem van benadering Daarvoor geldt P’(0) = n.(P 1 -P 0 ) d.w.z.: x’(0)= n.(x 1 -x 0 ), y’(0)= n.(y 1 -y 0 ), z’(0)=n.(z 1 -z 0 ) Tevens geldt: P’(1) = n.(P n -P n-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 polyline 4. 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)

42 Probleem van benadering Stukken Bézier krommen kunnen aan elkaar gelinkt woren en zijn in de verbindingspunten continue differentieerbaar ( zie fig 9-9)

43 Probleem van benadering Bézier-B-Spline benadering Voor deze benadering gebruiken we B-splines (zie fig 9-10)

44 Probleem van benadering De m-de graad B-splines B i,m (t),i=0,…n zijn gedefinieerd voor t in het parameter bereik [0,n-m+1] De knopen verzameling t 0,…,t n+m+1 is gekozen met de verzameling

45 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)

46 Probleem van benadering Gesloten krommen Om een gesloten B-spline kromme te construeren die een gesloten begeleidende polygoon heeft, hoeven we alleen de knopen t 0 ….t n+m+1 cyclisch te kiezen,dwz [0,1,….,n.1….] zodat t n+1 = t 0 =0 t m+2 = t 1 t m+1+i = t i In praktijk zijn kwadratische B-splines B i,2 en kubische B-splines B i,3 het eenvoudigst te gebruiken en geeft genoeg flexibiliteit bij ontwerpen

47 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

48 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 P i met een veelvoud van 2 of meer

49 Probleem van benadering D.w.z. P i = P i+1 =…= P i+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


Download ppt "Presentatie titel Rotterdam, 00 januari 2007 Computer Graphics Technische Informatica www.hogeschool-rotterdam.nl/cmi."

Verwante presentaties


Ads door Google