Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 5: ”Viewing” i: Edward Angel: ”Interactive Computer Graphics”

Liknende presentasjoner


Presentasjon om: "1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 5: ”Viewing” i: Edward Angel: ”Interactive Computer Graphics”"— Utskrift av presentasjonen:

1 1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 5: ”Viewing” i: Edward Angel: ”Interactive Computer Graphics” Vårsemesteret 2002 Torbjørn Hallgren Institutt for datateknikk og informasjonsvitenskap Norges teknisk-naturvitenskapelige universitet

2 2 Behandlet hittil n Generelt om grafiske system n Interaksjon i grafiske systemer n Modelleringstransformasjoner n Modellering med OpenGL (selvstudium)

3 3 Neste tema n Avbildning: –Projeksjonsmetoder –Posisjonering av (syntetisk kamera) kamera –Spesifikasjon av betraktningsvolum –Klipping –Avbildningstransformasjonene

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

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

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

7 7 Ortografiske projeksjoner

8 8 Aksonometriske projeksjoner

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

10 10 Skjeve parallellprojeksjoner

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

12 12 Perspektiviske transformasjoner Egenskaper: n Parallelle linjer som er parallelle med projeksjons- planet, forblir parallelle n Parallelle linjer som ikke er parallelle med projek- sjonsplanet, samles i et forsvinningspunkt (som representerer uendelig langt borte) n Forsvinningspunktene gitt når projeksjonsplan og projeksjonssenter er gitt n Ingen grense for antall mulige forsvinningspunkter Brukes for å bidra til realistisk utseende bilder

13 13 Perspektivprojeksjoner Trepunkts EnpunktsTopunkts

14 14 En-punkts perspektivprojeksjon Ett forsvinningspunkt

15 15 Topunkts perspektivprojeksjon To forsvinningspunkt

16 16 Trepunkts perspektivprojeksjon Tre forsvinningspunkt

17 17 Perspektivisk transformasjon x y z d (x,y,z) (x p,y p,z p ) Projeksjonssenter (COP) Projeksjonsplanets skjæringspunkt med z-aksen d er negativ

18 18 Perspektivisk projeksjon y z d (x p,y p,z p ) (x,y,z)

19 19 Homogene koordinater Ser på: som et punkt i et fire- dimensjonalt rom med homogene koordinater x, y, z og w med w=1. Er en linje i det firedimensjonale rommet De kartesiske koordinatene ligger i planet w=1: Kartesiske koordinater:

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

21 21 Ortografisk transformasjon x y z (x,y,z) (x p,y p,z p ) Projeksjonsplanet er x-y-planet

22 22 Ortografisk projeksjon Projeksjonen er: Matrisen for ortografisk projeksjon er som her:

23 23 Posisjonering av kameraet n Flytte kameraet i forhold til scenen? –Transformere fra verdenskoordinatsystemet til kamerakoordinatsystemet Eller: n Flytte scenen i forhold til kameraet? –Flytte scenen i kamerakoordinatsystemet SAMME TRANSFORMASJONSMATRISE I BEGGE TILFELLE

24 24 Posisjonering av kameraet PHIGS’s metode: n Bestemme projeksjonssenter n Bestemme synsretning (normalen til projeksjons- planet) n Bestemme ”viewup”-vektor Dette fastlegger kamerakoordinatsystemet entydig

25 25 Posisjonering av kameraet x y z COP n VPN v VUPu 1 Center Of Projection 2 View Plane Normal 3 View Up Vector 4 u-axis

26 26 Posisjonering av kameraet Posisjonen til origo i kameraets koordinatsystem: Projeksjonsplannormalen og ”viewup”-vektoren:

27 27 Koordinatakser i kamerasystemet Har n-aksen (svarende til z-aksen) i retning vektoren n: Søker v-aksen (svarende til y-aksen): n v up v Projeksjonsplanet Søker u-aksen (svarende til x-aksen):

28 28 Enhetsvektorer i akseretningene Enhetsvektorer for akseretningene i uvn-systemet (kamerakoordinatsystemet):

29 29 Koordinater i kamerasystemet Translasjon av kamerakoordinatsystemets origo til verdenskoordinatsystemets origo: Rotasjon slik at kamerakoordinatsystemets akser faller sammen med verdenskoordinatsystemets akser:

30 30 Koordinater i kamerasystemet Transformasjon av koordinatrepresentasjoner i verdens- koordinatsystemet til koordinatrepresentasjoner i kamera- koordinatsystemet:

31 31 Posisjonering av kameraet PHIGS: evaluate_ViewOrientationMatrix n viewRefPoint n viewPlaneNormal n viewUpVector OpenGL: gluLookAt n øyepunkt n referansepunkt (”siktepunkt”) i scenen n ”viewup”-vektor

32 32 Betraktningsvolum z x y frontplan bakplan (x maks,y maks ) projeksjonsplan bilde betraktningsvolum (view volume) (x min,y min ) Skjev parallellprojeksjon

33 33 Kanonisk betraktningsvolum Terningen begrenset av planene: z x y Enkelt å: - klippe - fjerne skjulte flater - projisere Betraktningsvolum for skjev parallell- projeksjon transformeres til kanonisk betraktnings- volum

34 34 Skjærtransformasjonen x y

35 35 Oppretting av skjevhet z x z y z bak z for y min x min z bak y maks x maks z for Vinklene og er gitt av projeksjonsretningen 1. Translere hjørnet (x min, y min, z for ) til origo 2. Opprette skjevheten med en skjærtransformasjon 3. Translere tilbake

36 36 Oppretting av skjevhet Skjærtransformasjon: Den komplette opprettingstransformasjonen blir:

37 37 Oppretting av skjevhet Ferdig multiplisert:

38 38 Kanonisk betraktningsvolum z x z bak z for x maks x min 1. Translere midtpunktet i betraktningsvolumet til origo 2. Skalere til kanonisk betraktningsvolum

39 39 Kanonisk betraktningsvolum Translasjon: Skalering:

40 40 Kanonisk betraktningsvolum Konkatenert:

41 41 Avbildning på skjermen View- port Skjerm Bredde Høyde (x nvhj,y nvhj )

42 42 Avbildning på skjermen n Det kanoniske betraktningsvolumet projiseres ortografisk inn i frontplanet med transformasjonen: Frontplanet avbildes i ”viewport” med transforma- sjonen M viewport

43 43 Viewport-transformasjonen n Transformasjonen består av en skalering til viewportens størrelse og form etterfulgt av en transformasjon (translasjon) til skjermkoordinater:

44 44 Parallellprojeksjon - komplett Komplett avbildningstransformasjon for parallell- projeksjon:

45 45 Komplett transformasjonsbilde Komplett transformasjonsbilde ved parallellprojeksjon: glViewport glOrtho Ikke støttet i OpenGL gluLookAt Basistransformasjoner

46 46 Betraktningsvolum z x y frontplan bakplan (x min,y min ) (x maks,y maks ) projeksjonsplan bilde betraktningsvolum (view volume) Perspektivprojeksjon

47 47 Betraktningsvolum z y betraktningsvolum synsvinkel Perspektivisk betraktningsvolum kan også spesifiseres ved hjelp av synsvinkel Synsvinkel i x-retningen gitt ved : aspektforhold

48 48 Normalisering Et perspektivisk betraktningsvolum i form av et skjevt frustrum, omgjøres til et terningformet kanonisk betraktningsvolum med følgende operasjoner: n Oppretting av skjevheten (skjærtransformasjon) n Omforming til et normalisert frustrum (skalering) n Transformasjon fra frustrum til terning

49 49 Oppretting av skjevhet z bak z for x min x maks Betraktningsvolum z x Retter opp med skjærtransformasjon

50 50 Oppretting av skjevhet Skjevheten rettes fullstendig opp med transformasjonen: OBS! Både z og z for vil her være negative.

51 51 Oppretting av skjevhet y x Før oppretting Etter oppretting (x min,y min ) (x’ maks,y’ maks ) (x’ min,y’ min ) (x maks,y maks ) OBS: x’ maks - x’ min = x maks - x min y’ maks - y’ min = y maks - y min Utnyttes i påfølgende skalering

52 52 Kanonisk betraktningsvolum Kanonisk betraktningsvolum for perspektivprojeksjon: x y z (1,1,-1) (-1,-1,-1) z’ bak =z’ min

53 53 Kanonisk betraktningsvolum y x (x’ maks,y’ maks,z for ) (x’ min,y’ min,z for ) (1,1,-1) (-1,-1,-1) 2 2 Skalering til kanonisk betraktningsvolum for perspektivisk projeksjon:

54 54 Kanonisk betraktningsvolum Skalering til kanonisk betraktningsvolum for perspektivisk projeksjon:

55 55 Kanonisk betraktningsvolum z x 1 z=-1 z=z’ bak z=-x z=x Kanonisk betraktningsvolum for perspektivprojeksjon: Kanoniserer med skaleringstransformasjon

56 56 Perspektiv parallell Søker transformasjon som omformer et kanonisk betraktningsvolum for perspektivprojeksjon til et kanonisk betraktningsvolum for parallellprojeksjon. Vi stiller følgende krav: Siden skal transformeres til x = zx = -1 x = -zx = 1 y = zy = -1 y = -zy = 1 x- og y-koordinatene skal ikke påvirke transformasjonen av z-koordinaten

57 57 Kanonisk betraktningsvolum Terningen begrenset av planene: z x y Konverterer kanonisk betraktningsvolum for perspektivisk projeksjon til kanonisk betraktnings- volum for parallell- projeksjon

58 58 Perspektiv parallell Følgende matrise tilfredsstiller disse kravene: Videre forlanger vi at: Planet skal transformeres til z = -1 z = 1 z = z’ bak z = -1 der: z’ bak = - z bak / z for

59 59 Perspektiv parallell Dette gir:

60 60 Perspektiv parallell Vi får:

61 61 Normalisering - komplett n Den fullstendige normaliseringen fra skjevt frustrum (avkortet pyramide) til terningformet kanonisk betraktningsvolum blir som følger:

62 62 Perspektivprojeksjon - komplett Komplett avbildningstransformasjon for perspektivisk projeksjon: Til sammenlikning:

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

64 64 En alternativ matrise Vi kan danne en ny (og kanskje litt enklere) matrise ved multiplikasjon med faktoren -z for : n Hvordan har det seg at denne matrisen er gjør samme nytten som den opprinnelige!!!???

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

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

67 67 OpenGL’s matrise

68 68 OpenGL’s matrise n OpenGL’s matrise kan utledes direkte ved å gjøre et par av valgene underveis i prosessen litt annerledes: –Unnlate skaleringen i z-retningen ved transformasjonen til kanonisk betraktningsvolum for perspektivisk projeksjon: –Vrenge det perspektiviske betraktningsvolumet ved transformasjonen til terningform: Planet transformeres til i stedet for z = z for -1 1 z = z bak 1 -1

69 69 Komplett transformasjonsbilde Komplett transformasjonsbilde ved perspektivprojeksjon: glViewport glFrustrum gluLookAt Basistransformasjoner

70 70 Komplett transformasjonsbilde Komplett transformasjonsbilde ved parallellprojeksjon: glViewport glOrtho Ikke støttet i OpenGL gluLookAt Basistransformasjoner


Laste ned ppt "1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater til forelesninger over: Kapittel 5: ”Viewing” i: Edward Angel: ”Interactive Computer Graphics”"

Liknende presentasjoner


Annonser fra Google