Forelesningsnotater SIF8039/ Grafisk databehandling

Like dokumenter
Forelesningsnotater SIF8039/ Grafisk databehandling

a. Hva er de inverse transformasjonene avfølgende tre transformasjoner T, R og S: θ θ sin( ) cos( ) Fasit: 1 s x cos( θ) sin( θ) 0 0 y y z

TDT4195 Bildeteknikk

UNIVERSITETET I OSLO

Leksjon G2: Transformasjoner

Forelesningsnotater SIF8039/ Grafisk databehandling

Universitetet i Agder Fakultet for teknologi og realfag LØSNINGSFORSLAG. Dato: 11. desember 2008 Varighet: Antall sider inkl.

HØGSKOLEN I BERGEN Avdeling for ingeniørutdanning

Leksjon G2: Transformasjoner

Forelesningsnotater SIF8039/ Grafisk databehandling

INF Obligatorisk oppgave 2

TMA4105 Matematikk 2 vår 2013

LØSNINGSFORSLAG. Universitetet i Agder Fakultet for Teknologi og realfag. Dato: 03. desember 2009 Varighet: Antall sider inkl.

FASIT OG TIPS til Rinvold: Visuelle perspektiv. Lineær algebra. Caspar forlag, 1.utgave 2003 og 2.opplag 2004.

EKSAMEN I EMNE TDT4195/SIF8043 BILDETEKNIKK ONSDAG 19. MAI 2004 KL

2D Transformasjoner (s. 51 i VTK boken) Translasjon. Del 2 Grafisk databehandling forts. Rotasjon. Skalering. y x = x + d x, y = y + d y.

Institutt for matematiske fag EKSAMEN i MA-132 Geometri Torsdag 4. desember 2008 kl Oppgave 1

LØSNINGSANTYDNING EKSAMEN

LØSNINGSANTYDNING. HØGSKOLEN I AGDER Fakultet for teknologi. DAT 200 Grafisk Databehandling. Ingen. Klasse(r): 2DTM, 2DT, 2 Siving, DT

MA-132 Geometri Torsdag 4. desember 2008 kl Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.

5.5.1 Bruk matriseregning til å vise at en rotasjon er produktet av to speilinger. Løsningsforslag + + = =

Emne 10 Litt mer om matriser, noen anvendelser

MA0002 Brukerkurs i matematikk B Vår 2013

Emne 6. Lineære transformasjoner. Del 1

Oppgave 1 (25 %) - Flervalgsoppgaver

EKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 18. DESEMBER 2007 KL LØSNINGSFORSLAG

Anvendt Robotteknikk Konte Sommer 2019 EKSAMEN HARIS JASAREVIC

( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 2.9 Løsningsforslag til oppgavene i avsnitt Løsningsforslag. a. b.

1 Geometri R2 Oppgaver

R2 kapittel 1 Vektorer Løsninger til kapitteltesten i læreboka

R2 - Vektorer i rommet

Eksamen i MA-104 Geometri 27. mai 2005

EKSAMEN I EMNE TDT4195 BILDETEKNIKK ONSDAG 3. JUNI 2009 KL

RF5100 Lineær algebra Løsningsforslag til prøveeksamen

Arbeidsoppgaver i vektorregning

Kap. 6 Ortogonalitet og minste kvadrater

Tegning av tredimensjonale figurer parallell sentral perspektiv Parallell-projeksjoner grunnlinje horisontalprojeksjon vertikalprojeksjon

Oppgaver MAT2500 høst 2011

Leksjon 2: Transformasjoner

3D modul for syntetisk kalkulator

Geometri Mona Røsseland Nasjonalt senter for matematikk i Opplæringen Leder i LAMIS Lærebokforfatter, MULTI Geometri i skolen Geometri etter 4.

Felt i naturen, skalar- og vektorfelt, skalering

Felt i naturen, skalar- og vektorfelt, skalering

Leksjon 2: Transformasjoner

Matematikk og fysikk RF3100

EKSAMEN. Informasjon om eksamen. Emnekode og -navn: ITD37018 Anvendt Robotteknikk. Dato og tid: , 3 timer. Faglærer: Haris Jasarevic

Test, 1 Geometri. 1.2 Regning med vektorer. X Riktig. X Galt. R2, Geometri Quiz løsning. Grete Larsen. 1) En vektor har lengde.

RF5100 Lineær algebra Leksjon 12

Velkommen til MA1103 Flerdimensjonal analyse

MA1102 Grunnkurs i analyse II Vår 2019

E K S A M E N S O P P G A V E

Eksamen MA-104 Geometri, 22. mai 2006

Øving 3. Oppgave 1 (oppvarming med noen enkle oppgaver fra tidligere midtsemesterprøver)

Oppgavesett. Kapittel Oppgavesett 1

KONTINUASJONSEKSAMEN I EMNE TDT4230 VISUALISERING TIRSDAG 9. AUGUST 2005 KL LØSNINGSFORSLAG

SIF5005 MATEMATIKK 2 VÅR r5 drdθ = 1 m. zrdzdrdθ = 1 m. zrdzdrdθ =

EKSAMEN RF5100, Lineær algebra

INF 2310 Digital bildebehandling

A.3.e: Ortogonale egenfunksjonssett

Oppgaver MAT2500. Fredrik Meyer. 29. august 2014

Krystaller, symmetri og krystallvekst. Krystallografi: Geometrisk beskrivelse av krystaller, deres egenskaper og indre oppbygning.

2 Vektorer. 2.1 Algebraiske operasjoner på vektorer

5.8 Iterative estimater på egenverdier

Morleys teorem, Eulerlinja og nipunktsirkelen

Løsningsforslag til øving 12

Computer Graphics with OpenGL

INF{3 4}320 - Obligatorisk oppgave 3

Trekanter er mangekanter med tre sider. Vi skal starte med å bli kjent med verktøyet som brukes til å tegne mangekanter.

SIF5025: Differensiallikninger og dynamiske systemer

Diffraksjonsgitter (diffraction grating)

8 Eksamenstrening 8 Eksamenstrening

Innlevering FO929A - Matematikk forkurs HIOA Obligatorisk innlevering 3 Innleveringsfrist Fredag 14. november 2014 kl. 14 Antall oppgaver: 13

Kapittel 4 - Fotorealistisk fremstilling... 3

1 Introduksjon GeoGebra 2 Speiling, rotasjon og parallellforskyvning 3 Perspektivtegning 4 Symmetriakser

Notat om trigonometriske funksjoner

Lab 1 Kamerageometri med Eigen

1. En tynn stav med lengde L har uniform ladning λ per lengdeenhet. Hvor mye ladning dq er det på en liten lengde dx av staven?

Vi viser denne ekvivalensen ved å vise begge implikasjoner. " "Anta at G virker trofast på X og anta at g, h G er slik at gx = hx for alle

Komplekse tall og komplekse funksjoner

LØSNINGSFORSLAG EKSAMEN TMA4105 MATEMATIKK 2 Lørdag 14. aug 2004

10 Tøyninger og kinematisk kompatibilitet

TMA4100 Matematikk1 Høst 2008

EKSAMEN RF3100 Matematikk og fysikk

Innlevering i FORK Matematikk forkurs OsloMet Obligatorisk innlevering 3 Innleveringsfrist Onsdag 14.november 2018 kl. 10:30 Antall oppgaver: 13

Konstruksjon og bruk av rutenett i perspektivtegning

EKSAMEN FY1003 ELEKTRISITET OG MAGNETISME I Mandag 5. desember 2005 kl

4_Komplekse_tall.odt tg. Kap.4 Komplekse tall

Regneoppgaver i GEOF110 Innføring i atmosfærens og havets dynamikk

Transkript:

Forelesningsnotater SIF839/ Grafisk databehandling Notater til elesninger over: Kapittel 5: Viewing i: Edward Angel: Interactive Computer Graphics Vårsemesteret 22 Torbjørn Hallgren Institutt datateknikk og inmasjonsvitenskap Norges teknisk-naturvitenskapelige universitet

Behandlet hittil Generelt om grafiske sstem Interaksjon i grafiske sstemer odelleringstransmasjoner odellering med OpenGL (selvstudium) 2

Neste tema Avbildning: Projeksjonsmetoder Posisjonering av (sntetisk kamera) kamera Spesifikasjon av betraktningsvolum Klipping Avbildningstransmasjonene 3

Projeksjonsmetoder Oppgave: Avbilde 3D objekter på en 2D flate 3D 2D avbildningstransmasjon Begrensning: Planare projeksjoner Hovedklasser av planare projeksjoner: Parallellprojeksjoner Perspektiviske projeksjoner 4

Parallellprojeksjoner Objekt Bilde Projeksjonsplan Punktene til objektet projiseres langs parallelle linjer Spesifiseres ved projeksjonsplan og projeksjonsretning 5

Parallellprojeksjoner Ortografiske parallellprojeksjoner Projeksjonsretningen er ortogonal til projeksjonsplanet Projeksjoner i plan som er vinkelrette på koordinataksene askintegninger - målriktighet Aksonometriske projeksjoner Projeksjonsplanet står skjevt i hold til to eller tre akser Dimetriske projeksjoner Trimetriske projeksjoner Isometriske projeksjoner (en spesiell trimetrisk projeksjon) Rørtegninger Skjeve parallellprojeksjoner 6

Ortografiske projeksjoner 7

Aksonometriske projeksjoner 8

Isometriske projeksjoner En trimetrisk projeksjon der projeksjonsplanet skjærer alle tre akser i samme avstand fra origo Linjer parallelle med koordinataksene sees under samme vinkel (er likt kortet ) Lengder finnes ved multiplikasjon med en fast faktor 9

Skjeve parallellprojeksjoner

Perspektiviske projeksjoner Objekt Projeksjonsplan Bilde Projeksjonssenter Punktene til objektet projiseres langs linjer som samles i et projeksjonssenter Spesifiseres ved projeksjonsplan og projeksjonssenter

Perspektiviske transmasjoner Egenskaper: Parallelle linjer som er parallelle med projeksjonsplanet, blir parallelle Parallelle linjer som ikke er parallelle med projeksjonsplanet, samles i et svinningspunkt (som representerer uendelig langt borte) Forsvinningspunktene gitt når projeksjonsplan og projeksjonssenter er gitt Ingen grense antall mulige svinningspunkter Brukes å bidra til realistisk utseende bilder 2

Perspektivprojeksjoner Trepunkts Topunkts Enpunkts 3

En-punkts perspektivprojeksjon Ett svinningspunkt 4

Topunkts perspektivprojeksjon To svinningspunkt 5

Trepunkts perspektivprojeksjon Tre svinningspunkt 6

Perspektivisk transmasjon (,,) ( p, p, p ) d d er negativ Projeksjonssenter (COP) Projeksjonsplanets skjæringspunkt med -aksen 7

Perspektivisk projeksjon (,,) ( p, p, p ) d p d p / d Tilsvarend e : p / d Dessuten : p d 8

Homogene koordinater [ ] T Ser på: som et punkt i et firedimensjonalt rom med homogene koordinater,, og w med w. w t t t t Er en linje i det firedimensjonale rommet De kartesiske koordinatene ligger i planet w: Kartesiske koordinater: / w, / w, / w 9

2 Perspektivisk projeksjon Perspektivprojeksjonen slik vi har spesifisert den, representeres med matrisen: / d Vi får: som gir de kartesiske koordinatene: d / d d d p p p / /

Ortografisk transmasjon ( p, p, p ) (,,) Projeksjonsplanet er --planet 2

22 Ortografisk projeksjon Projeksjonen er: p p p atrisen ortografisk projeksjon er som her: p p p

Posisjonering av kameraet Fltte kameraet i hold til scenen? Transmere fra verdenskoordinatsstemet til kamerakoordinatsstemet Eller: Fltte scenen i hold til kameraet? Fltte scenen i kamerakoordinatsstemet SAE TRANSFORASJONSATRISE I BEGGE TILFELLE 23

Posisjonering av kameraet PHIGS s metode: Bestemme projeksjonssenter Bestemme snsretning (normalen til projeksjonsplanet) Bestemme viewup -vektor Dette fastlegger kamerakoordinatsstemet entdig 24

Posisjonering av kameraet v VUP u COP n VPN Center Of Projection 2 View Plane Normal 3 View Up Vector 4 u-ais 25

26 Posisjonering av kameraet Posisjonen til origo i kameraets koordinatsstem: COP COP COP p Projeksjonsplannormalen og viewup -vektoren: n n n n up up up up v v v v

Koordinatakser i kamerasstemet Har n-aksen (svarende til -aksen) i retning vektoren n: Søker v-aksen (svarende til -aksen): n v up n n n n v up v v up v up n nn n Projeksjonsplanet v Søker u-aksen (svarende til -aksen): u v n 27

Enhetsvektorer i akseretningene Enhetsvektorer akseretningene i uvn-sstemet (kamerakoordinatsstemet): u v n u u v v n n 28

29 Koordinater i kamerasstemet Translasjon av kamerakoordinatsstemets origo til verdenskoordinatsstemets origo: ),, ( COP COP COP T T Rotasjon slik at kamerakoordinatsstemets akser faller sammen med verdenskoordinatsstemets akser: n n n v v v u u u R

3 Koordinater i kamerasstemet Transmasjon av koordinatrepresentasjoner i verdenskoordinatsstemet til koordinatrepresentasjoner i kamerakoordinatsstemet: + + + + + + ) ( ) ( ) ( COP COP COP COP COP COP COP COP COP COP COP COP W C n n n n n n v v v v v v u u u u u u n n n v v v u u u T R

Posisjonering av kameraet PHIGS: evaluate_vieworientationatri OpenGL: glulookat viewrefpoint viewplanenormal viewupvector øepunkt referansepunkt ( siktepunkt ) i scenen viewup -vektor 3

Betraktningsvolum Skjev parallellprojeksjon bakplan bilde (, ) (, ) frontplan betraktningsvolum (view volume) projeksjonsplan 32

Kanonisk betraktningsvolum Betraktningsvolum skjev parallellprojeksjon transmeres til kanonisk betraktningsvolum Terningen begrenset av planene: ± ± ± Enkelt å: - klippe - fjerne skjulte flater - projisere 33

34 Skjærtransmasjonen + ) cot( θ θ ) cot( ) (, θ θ H

Oppretting av skjevhet bak θ bak φ Vinklene θ og φ er gitt av projeksjonsretningen. Translere hjørnet (,, ) til origo 2. Opprette skjevheten med en skjærtransmasjon 3. Translere tilbake 35

36 Oppretting av skjevhet Skjærtransmasjon: ) cot( ) cot( ), (, φ θ φ θ H Den komplette opprettingstransmasjonen blir: ),, ( ), ( ),, (, opprett T H T φ θ

37 Oppretting av skjevhet Ferdig multiplisert: ) cot( ) cot( ) cot( ) cot( φ φ θ θ opprett

Kanonisk betraktningsvolum bak. Translere midtpunktet i betraktningsvolumet til origo 2. Skalere til kanonisk betraktningsvolum 38

39 Kanonisk betraktningsvolum Translasjon: ) 2, 2, 2 ( bak T T + + + Skalering: ) 2, 2, 2 ( bak S S

4 Kanonisk betraktningsvolum Konkatenert: + + + 2 2 2 bak bak bak T S parkan

Avbildning på skjermen Høde Viewport ( nvhj, nvhj ) Bredde Skjerm 4

42 Avbildning på skjermen Det kanoniske betraktningsvolumet projiseres ortografisk inn i frontplanet med transmasjonen: Frontplanet avbildes i viewport med transmasjonen viewport ort

43 Viewport-transmasjonen Transmasjonen består av en skalering til viewportens størrelse og m etterfulgt av en transmasjon (translasjon) til skjermkoordinater: + + + + 2 2 2 2 2 2 2 2 høde høde bredde bredde høde bredde høde bredde nvhj nvhj nvhj nvhj viewport

Parallellprojeksjon - komplett Komplett avbildningstransmasjon parallellprojeksjon: parallell viewport ort parkan opprett C W modellering 44

Komplett transmasjonsbilde Komplett transmasjonsbilde ved parallellprojeksjon: glviewport glortho Ikke støttet i OpenGL total viewport ort parkan opprett ( ( nvhj, ( θ, φ,, nvhj, bredde, høde), ),,, bak ) glulookat P P v C W ( COP, ref, up ) Basistransmasjoner modellering 45

Betraktningsvolum Perspektivprojeksjon (, ) bakplan (, ) bilde frontplan projeksjonsplan betraktningsvolum (view volume) 46

Betraktningsvolum snsvinkel Snsvinkel i -retningen gitt ved : aspekthold betraktningsvolum Perspektivisk betraktningsvolum kan også spesifiseres ved hjelp av snsvinkel 47

Normalisering Et perspektivisk betraktningsvolum i m av et skjevt frustrum, omgjøres til et terningmet kanonisk betraktningsvolum med følgende operasjoner: Oppretting av skjevheten (skjærtransmasjon) Omg til et normalisert frustrum (skalering) Transmasjon fra frustrum til terning 48

Oppretting av skjevhet Betraktningsvolum bak θ cot( θ ) cot( φ) + 2 + 2 Retter opp med skjærtransmasjon 49

5 Oppretting av skjevhet Skjevheten rettes fullstendig opp med transmasjonen: + + 2 2, H OBS! Både og vil her være negative.

Oppretting av skjevhet (, ) (, ) (, ) (, ) Etter oppretting Før oppretting OBS: - - - - Utnttes i påfølgende skalering 5

Kanonisk betraktningsvolum Kanonisk betraktningsvolum perspektivprojeksjon: (-,-,-) bak (,,-) 52

Kanonisk betraktningsvolum Skalering til kanonisk betraktningsvolum perspektivisk projeksjon: 2 (,, ) (,,-) 2 (-,-,-) (,, ) 53

54 Kanonisk betraktningsvolum Skalering til kanonisk betraktningsvolum perspektivisk projeksjon: 2 2 ), 2, 2 ( S per kan

Kanonisk betraktningsvolum Kanonisk betraktningsvolum perspektivprojeksjon: bak - - - Kanoniserer med skaleringstransmasjon 55

Perspektiv parallell Søker transmasjon som ommer et kanonisk betraktningsvolum perspektivprojeksjon til et kanonisk betraktningsvolum parallellprojeksjon. Vi stiller følgende krav: Siden skal transmeres til - - - - - og -koordinatene skal ikke påvirke transmasjonen av -koordinaten 56

Kanonisk betraktningsvolum Konverterer kanonisk betraktningsvolum perspektivisk projeksjon til kanonisk betraktningsvolum parallellprojeksjon Terningen begrenset av planene: ± ± ± 57

Perspektiv parallell Følgende matrise tilfredsstiller disse kravene: per par α β Videre langer vi at: Planet skal transmeres til - bak - der: bak - bak / 58

Perspektiv parallell Dette gir: per par per par T T [ ] [ β α ] [ ] T T [ ] [ α + β ] [ ] bak bak bak T T som gir disse to likningenetil bestemmelse avα og β : β α α bak + β bak 59

6 Perspektiv parallell Vi får: bak bak bak bak 2 + β α + 2 bak bak bak bak par per

Normalisering - komplett Den fullstendige normaliseringen fra skjevt frustrum (avkortet pramide) til terningmet kanonisk betraktningsvolum blir som følger: frus par per par kan per H, 2 2 + ( + ( bak + ( bak ) ) ) bak 2bak 6

Perspektivprojeksjon - komplett Komplett avbildningstransmasjon perspektivisk projeksjon: perspektiv viewport ort frus par C W modellering Til sammenlikning: parallell viewport ort parkan opprett C W modellering 62

Normalisering - komplett Utledningen av frus->par slik det er gjort her, representerer den vanlige og mest bent fram måten å gjøre det på OpenGL anvender en litt annen variant av matrisen Det eksisterer en enkel bindelse mellom OpenGL s versjon og den som er presentert her Læreboka utleder (med diverse feil under veis og i sluttsvaret) OpenGL s versjon 63

En alternativ matrise Vi kan danne en n (og kanskje litt enklere) matrise ved multiplikasjon med faktoren - : frus par frus 2 par + + + Hvordan har det seg at denne matrisen er gjør samme ntten som den opprinnelige!!!??? 2 bak bak 2bak bak 64

En alternativ matrise Vi arbeider med homogene koordinater Vi kan skalere alle ledd i en homogen transmasjonsmatrise med samme faktor uten at dette påvirker de resulterende kartesiske koordinatene (,,) som kommer fram av de homogene koordinatene (,,,w): w w w Skalering av matrisens ledd resulterer i lik skalering av teller og nevner 65

OpenGL s matrise OpenGL projiserer ortografisk inn i planet - i stedet i planet slik utledningen her legger opp til Dette har først og fremst betdning når det skal avgjøres hvilke flater som er snlige i bildet, og hvilken farge flatene skal ha Vi får OpenGL s matrise ved å reflektere vår matrise frus->par i planet 66

67 OpenGL s matrise + + + 2 2 2 bak bak bak bak par frus OpenGL par frus

OpenGL s matrise OpenGL s matrise kan utledes direkte ved å gjøre et par av valgene underveis i prosessen litt annerledes: Unnlate skaleringen i -retningen ved transmasjonen til kanonisk betraktningsvolum perspektivisk projeksjon: kan per S( 2 Vrenge det perspektiviske betraktningsvolumet ved transmasjonen til terningm:, 2 Planet transmeres til i stedet - bak -,) 68

69 Komplett transmasjonsbilde Komplett transmasjonsbilde ved perspektivprojeksjon: modellering up ref COP W C par frus ort nvhj nvhj viewport total v P P høde bredde ),, ( ),,,,, ( ),,, ( bak glviewport glfrustrum glulookat Basistransmasjoner

Komplett transmasjonsbilde Komplett transmasjonsbilde ved parallellprojeksjon: glviewport glortho Ikke støttet i OpenGL total viewport ort parkan opprett ( ( nvhj, ( θ, φ,, nvhj, bredde, høde), ),,, bak ) glulookat P P v C W ( COP, ref, up ) Basistransmasjoner modellering 7