forelesningsnotater sif8039/ grafisk databehandling
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/1.jpg)
1
Forelesningsnotater SIF8039/Grafisk databehandlingNotater 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
![Page 2: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/2.jpg)
2
Behandlet hittil
Generelt om grafiske system
Interaksjon i grafiske systemer
Modelleringstransformasjoner
Modellering med OpenGL(selvstudium)
![Page 3: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/3.jpg)
3
Neste tema
Avbildning:– Projeksjonsmetoder– Posisjonering av (syntetisk kamera) kamera– Spesifikasjon av betraktningsvolum– Klipping– Avbildningstransformasjonene
![Page 4: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/4.jpg)
4
Projeksjonsmetoder
Oppgave:– Avbilde 3D objekter på en 2D flate
3D 2D
avbildningstransformasjon Begrensning:
– Planare projeksjoner Hovedklasser av planare projeksjoner:
– Parallellprojeksjoner– Perspektiviske projeksjoner
![Page 5: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/5.jpg)
5
Parallellprojeksjoner
Punktene til objektet projiseres langs parallellelinjer
Spesifiseres ved projeksjonsplan og projeksjonsretning
Objekt
Projeksjonsplan
Bilde
![Page 6: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/6.jpg)
6
Parallellprojeksjoner
Ortografiske parallellprojeksjonerProjeksjonsretningen er ortogonal til projeksjonsplanet– Projeksjoner i plan som er vinkelrette på koordinataksene
– Maskintegninger - målriktighet
– Aksonometriske projeksjonerProjeksjonsplanet står skjevt i forhold til to eller tre akser
• Dimetriske projeksjoner
• Trimetriske projeksjoner
• Isometriske projeksjoner (en spesiell trimetrisk projeksjon)– Rørtegninger
Skjeve parallellprojeksjoner
![Page 7: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/7.jpg)
7
Ortografiske projeksjoner
![Page 8: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/8.jpg)
8
Aksonometriske projeksjoner
![Page 9: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/9.jpg)
9
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 ”forkortet”)
Lengder finnes ved multiplikasjon med en fast faktor
![Page 10: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/10.jpg)
10
Skjeve parallellprojeksjoner
![Page 11: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/11.jpg)
11
Perspektiviske projeksjoner
Punktene til objektet projiseres langs linjer somsamles i et projeksjonssenter
Spesifiseres ved projeksjonsplan og projeksjonssenter
Objekt
Projeksjonsplan
Projeksjons-senterBilde
![Page 12: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/12.jpg)
12
Perspektiviske transformasjoner
Egenskaper: Parallelle linjer som er parallelle med projeksjons-planet,
forblir parallelle Parallelle linjer som ikke er parallelle med projek-
sjonsplanet, samles i et forsvinningspunkt (som representerer uendelig langt borte)
Forsvinningspunktene gitt når projeksjonsplan og projeksjonssenter er gitt
Ingen grense for antall mulige forsvinningspunkter
Brukes for å bidra til realistisk utseende bilder
![Page 13: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/13.jpg)
13
Perspektivprojeksjoner
Trepunkts EnpunktsTopunkts
![Page 14: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/14.jpg)
14
En-punkts perspektivprojeksjon
Ett forsvinningspunkt
![Page 15: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/15.jpg)
15
Topunkts perspektivprojeksjon
To forsvinningspunkt
![Page 16: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/16.jpg)
16
Trepunkts perspektivprojeksjon
Tre forsvinningspunkt
![Page 17: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/17.jpg)
17
Perspektivisk transformasjon
x
y
z
d
(x,y,z)
(xp,yp,zp)
Projeksjonssenter (COP)
Projeksjonsplanetsskjæringspunkt medz-aksend er negativ
![Page 18: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/18.jpg)
18
Perspektivisk projeksjon
y
zd
(xp,yp,zp)
(x,y,z)
dz
dz
xx
dz
yy
z
d
y
y
p
p
p
p
:Dessuten/
:eTilsvarend/
![Page 19: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/19.jpg)
19
Homogene koordinater
Ser på: som et punkt i et fire-dimensjonalt rom med homogene koordinater x, y, z og w med w=1.
Tzyx 1
tw
tzz
tyy
txx
'
'
'
'
Er en linje i det firedimensjonale rommet
De kartesiske koordinatene ligger i planet w=1:
Kartesiske koordinater: '/','/','/' wzzwyywxx
![Page 20: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/20.jpg)
20
Perspektivisk projeksjonPerspektivprojeksjonen slik vi har spesifisert den,representeres med matrisen:
0/100
0100
0010
0001
d
M
Vi får: som gir de kartesiske
koordinatene:
dz
z
y
x
z
y
x
M
/1dz
dz
yy
dz
xx
p
p
p
/
/
![Page 21: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/21.jpg)
21
Ortografisk transformasjon
x
y
z
(x,y,z)(xp,yp,zp)
Projeksjonsplanet er x-y-planet
![Page 22: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/22.jpg)
22
Ortografisk projeksjon
Projeksjonen er:
0
p
p
p
z
yy
xx
Matrisen for ortografisk projeksjon er som her:
11000
0000
0010
0001
1
z
y
x
z
y
x
p
p
p
![Page 23: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/23.jpg)
23
Posisjonering av kameraet
Flytte kameraet i forhold til scenen?– Transformere fra verdenskoordinatsystemet til
kamerakoordinatsystemet
Eller:
Flytte scenen i forhold til kameraet?– Flytte scenen i kamerakoordinatsystemet
SAMME TRANSFORMASJONSMATRISE I BEGGE
TILFELLE
![Page 24: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/24.jpg)
24
Posisjonering av kameraet
PHIGS’s metode: Bestemme projeksjonssenter Bestemme synsretning (normalen til projeksjons-
planet) Bestemme ”viewup”-vektor
Dette fastlegger kamerakoordinatsystemet entydig
![Page 25: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/25.jpg)
25
Posisjonering av kameraet
x
y
z
COP
n
VPN
vVUP u
1 Center Of Projection2 View Plane Normal3 View Up Vector4 u-axis
![Page 26: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/26.jpg)
26
Posisjonering av kameraet
Posisjonen til origo i kameraets koordinatsystem:
1COP
COP
COP
z
y
x
p
Projeksjonsplannormalen og ”viewup”-vektoren:
0z
y
x
n
n
n
n
0up
up
up
z
y
x
upv
v
v
v
![Page 27: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/27.jpg)
27
Koordinatakser i kamerasystemetHar n-aksen (svarende til z-aksen) i retning vektoren n:
Søker v-aksen (svarende til y-aksen):
nvup
v
nnn
nvup
Projeksjonsplanet
nnn
nvvv up
up
Søker u-aksen (svarende til x-aksen):
nvu
![Page 28: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/28.jpg)
28
Enhetsvektorer i akseretningene
||'
||'
||'
n
nn
v
vv
u
uu
Enhetsvektorer for akseretningene i uvn-systemet(kamerakoordinatsystemet):
![Page 29: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/29.jpg)
29
Koordinater i kamerasystemet
Translasjon av kamerakoordinatsystemets origo til verdenskoordinatsystemets origo:
),,( COPCOPCOP zyxTT
Rotasjon slik at kamerakoordinatsystemets akser fallersammen med verdenskoordinatsystemets akser:
1000
0'''
0'''
0'''
zyx
zyx
zyx
nnn
vvv
uuu
R
![Page 30: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/30.jpg)
30
Koordinater i kamerasystemetTransformasjon av koordinatrepresentasjoner i verdens-koordinatsystemet til koordinatrepresentasjoner i kamera-koordinatsystemet:
1000
)'''('''
)'''('''
)'''('''
1000
100
010
001
1000
0'''
0'''
0'''
zCOPyCOPxCOPzyx
zCOPyCOPxCOPzyx
zCOPyCOPxCOPzyx
COP
COP
COP
zyx
zyx
zyx
WC
nznynxnnn
vzvyvxvvv
uzuyuxuuu
z
y
x
nnn
vvv
uuu
TRM
![Page 31: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/31.jpg)
31
Posisjonering av kameraet
PHIGS:evaluate_ViewOrientationMatrix
viewRefPoint viewPlaneNormal viewUpVector
OpenGL:gluLookAt
øyepunkt referansepunkt (”siktepunkt”)
i scenen ”viewup”-vektor
![Page 32: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/32.jpg)
32
Betraktningsvolum
zx
y
frontplan
bakplan
(xmaks,ymaks)
projeksjonsplan
bilde
betraktningsvolum(view volume)
(xmin,ymin)
Skjev parallellprojeksjon
![Page 33: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/33.jpg)
33
Kanonisk betraktningsvolum
1
1
1
z
y
x
Terningen begrenset av planene:
z
x
y
Enkelt å:- klippe- fjerne skjulte flater- projisere
Betraktningsvolumfor skjev parallell-projeksjontransformerestil kanoniskbetraktnings-volum
![Page 34: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/34.jpg)
34
Skjærtransformasjonen
zz
yy
yxx
'
'
)cot('
1000
0100
0010
00)cot(1
)(,
yxH
x
y
![Page 35: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/35.jpg)
35
Oppretting av skjevhet
z x z y
zbak
zfor
yminxmin
zbak
ymaksxmaks
zfor
Vinklene og er gitt av projeksjonsretningen
1. Translere hjørnet (xmin, ymin, zfor) til origo2. Opprette skjevheten med en skjærtransformasjon3. Translere tilbake
![Page 36: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/36.jpg)
36
Oppretting av skjevhet
Skjærtransformasjon:
1000
0100
0)cot(10
0)cot(01
),(,
zxyH
Den komplette opprettingstransformasjonen blir:
),,(),(),,( forminmin,forminminopprett zyxTHzyxTM zxy
![Page 37: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/37.jpg)
37
Oppretting av skjevhet
Ferdig multiplisert:
1000
0100
)cot()cot(10
)cot()cot(01
for
for
z
z
M opprett
![Page 38: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/38.jpg)
38
Kanonisk betraktningsvolum
zx
zbak
zfor
xmaks xmin
1. Translere midtpunktet i betraktningsvolumet til origo2. Skalere til kanonisk betraktningsvolum
![Page 39: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/39.jpg)
39
Kanonisk betraktningsvolum
Translasjon:
)2
,2
,2
( bakforminmaksminmaks zzyyxxTT
Skalering:
)2
,2
,2
(bakforminmaksminmaks zzyyxx
SS
![Page 40: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/40.jpg)
40
Kanonisk betraktningsvolum
Konkatenert:
1000
200
02
0
002
bakfor
bakfor
bakfor
minmaks
minmaks
minmaks
minmaks
minmaks
minmaks
zz
zz
zz
yy
yy
yy
xx
xx
xx
TSM parkan
![Page 41: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/41.jpg)
41
Avbildning på skjermen
View-port
Skjerm
BreddeH
øyde
(xnvhj,ynvhj)
![Page 42: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/42.jpg)
42
Avbildning på skjermen
Det kanoniske betraktningsvolumet projiseres ortografisk inn i frontplanet med transformasjonen:
Frontplanet avbildes i ”viewport” med transforma-sjonen Mviewport
1000
0000
0010
0001
ortM
![Page 43: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/43.jpg)
43
Viewport-transformasjonen Transformasjonen består av en skalering til
viewportens størrelse og form etterfulgt av en transformasjon (translasjon) til skjermkoordinater:
1000
01002
02
0
200
2
1000
0100
002
0
0002
1000
01002
010
2001
høydey
høyde
breddex
bredde
høyde
bredde
høydey
breddex
M
nvhj
nvhj
nvhj
nvhj
viewport
![Page 44: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/44.jpg)
44
Parallellprojeksjon - komplett
Komplett avbildningstransformasjon for parallell-projeksjon:
gmodellerinWCopprettparkanortviewportparallell MMMMMMM
![Page 45: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/45.jpg)
45
Komplett transformasjonsbilde
Komplett transformasjonsbilde ved parallellprojeksjon:
gmodellerin
uprefCOPWC
foropprett
bakformaksminmaksminparkan
ort
nvhjnvhjviewport
total
M
vPPM
zM
zzyyxxM
M
høydebreddeyxM
M
),,(
),,(
),,,,,(
),,,(
glViewport
glOrtho
Ikke støttet i OpenGL
gluLookAt
Basistransformasjoner
![Page 46: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/46.jpg)
46
Betraktningsvolum
zx
y
frontplan
bakplan
(xmin,ymin)
(xmaks,ymaks)
projeksjonsplan
bilde
betraktningsvolum(view volume)
Perspektivprojeksjon
![Page 47: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/47.jpg)
47
Betraktningsvolum
z
y
betraktningsvolum
synsvinkel
Perspektivisk betraktningsvolum kan også spesifiseres ved hjelp av synsvinkel
Synsvinkel ix-retningen gitt ved :aspektforhold
![Page 48: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/48.jpg)
48
Normalisering
Et perspektivisk betraktningsvolum i form av et skjevt
frustrum, omgjøres til et terningformet kanonisk
betraktningsvolum med følgende operasjoner:
Oppretting av skjevheten (skjærtransformasjon) Omforming til et normalisert frustrum (skalering) Transformasjon fra frustrum til terning
![Page 49: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/49.jpg)
49
Oppretting av skjevhet
zbak
zfor
xmin xmaks
Betraktningsvolum
zx
for
for
z
yy
z
xx
2)cot(
2)cot(
minmaks
minmaks
Retter opp med skjærtransformasjon
![Page 50: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/50.jpg)
50
Oppretting av skjevhet
Skjevheten rettes fullstendig opp med transformasjonen:
1000
0100
02
10
02
01
minmaks
minmaks
,for
for
zxy z
yyz
xx
H
OBS! Både z og zfor vil her være negative.
![Page 51: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/51.jpg)
51
Oppretting av skjevhety
x
Før oppretting
Etter oppretting
(xmin,ymin)
(x’maks,y’maks)
(x’min,y’min)
(xmaks,ymaks)
OBS: x’maks - x’min = xmaks - xmin
y’maks - y’min = ymaks - ymin
Utnyttes i påfølgende skalering
![Page 52: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/52.jpg)
52
Kanonisk betraktningsvolum
Kanonisk betraktningsvolum for perspektivprojeksjon:
x
y
z
(1,1,-1)(-1,-1,-1)
z’bak=z’min
![Page 53: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/53.jpg)
53
Kanonisk betraktningsvolum
y
x
(x’maks,y’maks,zfor)
(x’min,y’min,zfor)
(1,1,-1)
(-1,-1,-1)
2
2
Skalering til kanonisk betraktningsvolum for perspektiviskprojeksjon:
![Page 54: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/54.jpg)
54
Kanonisk betraktningsvolum
Skalering til kanonisk betraktningsvolum for perspektiviskprojeksjon:
1000
01
00
002
0
0002
)1
,2
,2
(
for
minmaks
minmaks
forminmaksminmaks
z
yy
xx
zyyxxSM perkan
![Page 55: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/55.jpg)
55
Kanonisk betraktningsvolum
z
x-1 1
z=-1
z=z’bak
z=-xz=x
Kanonisk betraktningsvolum for perspektivprojeksjon:
Kanoniserer med skaleringstransformasjon
![Page 56: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/56.jpg)
56
Perspektiv parallellSø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 = z x = -1 x = -z x = 1 y = z y = -1 y = -z y = 1
x- og y-koordinatene skal ikke påvirke transformasjonenav z-koordinaten
![Page 57: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/57.jpg)
57
Kanonisk betraktningsvolum
1
1
1
z
y
x
Terningen begrenset av planene:
z
x
y
Konverterer kanonisk betraktningsvolum forperspektivisk projeksjontil kanonisk betraktnings-volum for parallell-projeksjon
![Page 58: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/58.jpg)
58
Perspektiv parallellFølgende matrise tilfredsstiller disse kravene:
0100
00
0010
0001
parperM
Videre forlanger vi at:
Planet skal transformeres til z = -1 z = 1 z = z’bak z = -1 der: z’bak = - zbak / zfor
![Page 59: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/59.jpg)
59
Perspektiv parallellDette gir:
1'
'
1
: og av ebestemmels tillikningene todissegir som
1100''001'00
11001001100
bak
bak
bakbakbak
z
z
zzzM
M
TTTparper
TTTparper
![Page 60: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/60.jpg)
60
Perspektiv parallellVi får:
forbak
bak
forbak
forbak
2
zz
z
zz
zz
0100
200
0010
0001
forbak
bak
forbak
forbak
zz
z
zz
zzM parper
![Page 61: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/61.jpg)
61
Normalisering - komplett
Den fullstendige normaliseringen fra skjevt frustrum (avkortet pyramide) til terningformet kanonisk betraktningsvolum blir som følger:
0z
100
2
)(00
0)(
20
0)(
02
for
forbak
bak
forbakfor
forbak
minmaksfor
minmaks
minmaks
minmaksfor
minmaks
minmaks
,
zz
z
zzz
zzyyz
yy
yy
xxz
xx
xx
HMMM zxyperkanparperparfrus
![Page 62: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/62.jpg)
62
Perspektivprojeksjon - komplett
Komplett avbildningstransformasjon for perspektiviskprojeksjon:
gmodellerinWCopprettparkanortviewportparallell MMMMMMM
gmodellerinWCparfrusortviewportperspektiv MMMMMM
Til sammenlikning:
![Page 63: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/63.jpg)
63
Normalisering - komplett
Utledningen av Mfrus->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 forbindelse mellom OpenGL’s versjon og den som er presentert her
Læreboka utleder (med diverse feil under veis og i sluttsvaret) OpenGL’s versjon
![Page 64: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/64.jpg)
64
En alternativ matrise Vi kan danne en ny (og kanskje litt enklere) matrise ved
multiplikasjon med faktoren -zfor:
Hvordan har det seg at denne matrisen er gjør samme nytten som den opprinnelige!!!???
0100
200
02
0
002
'
forbak
forbak
forbak
forbak
minmaks
minmaks
minmaks
for
minmaks
minmaks
minmaks
for
for
zz
zz
zz
zzyy
yy
yy
zxx
xx
xx
z
MzM parfrusparfrus
![Page 65: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/65.jpg)
65
En alternativ matrise 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):
Skalering av matrisens ledd resulterer i lik skalering av teller og nevner
w
zz
w
yy
w
xx
'''
![Page 66: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/66.jpg)
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
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
![Page 67: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/67.jpg)
67
OpenGL’s matrise
0100
200
02
0
002
'
1000
0100
0010
0001
forbak
forbak
forbak
forbak
minmaks
minmaks
minmaks
for
minmaks
minmaks
minmaks
for
zz
zz
zz
zzyy
yy
yy
zxx
xx
xx
z
MM parfrusOpenGL
parfrus
![Page 68: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/68.jpg)
68
OpenGL’s matrise 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:
)1,2
,2
(minmaks
for
minmaks
for
yy
z
xx
zSM perkan
Planet transformeres til i stedet for z = zfor -1 1z = zbak 1 -1
![Page 69: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/69.jpg)
69
Komplett transformasjonsbildeKomplett transformasjonsbilde ved perspektivprojeksjon:
gmodellerin
uprefCOPWC
parfrus
ort
nvhjnvhjviewport
total
M
vPPM
zzyyxxM
M
høydebreddeyxM
M
),,(
),,,,,(
),,,(
bakforminmaksminmaks
glViewport
glFrustrum
gluLookAt
Basistransformasjoner
![Page 70: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader036.vdocuments.net/reader036/viewer/2022062408/568144f1550346895db1c083/html5/thumbnails/70.jpg)
70
Komplett transformasjonsbilde
Komplett transformasjonsbilde ved parallellprojeksjon:
gmodellerin
uprefCOPWC
foropprett
bakformaksminmaksminparkan
ort
nvhjnvhjviewport
total
M
vPPM
zM
zzyyxxM
M
høydebreddeyxM
M
),,(
),,(
),,,,,(
),,,(
glViewport
glOrtho
Ikke støttet i OpenGL
gluLookAt
Basistransformasjoner