Forelesningsnotater SIF8039/ Grafisk databehandling
description
Transcript of Forelesningsnotater SIF8039/ Grafisk databehandling
![Page 1: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/1.jpg)
1
Forelesningsnotater SIF8039/Grafisk databehandlingNotater til forelesninger over:
Kapittel 7: ”Implementation of a Renderer”
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://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/2.jpg)
2
Visualiseringsløypa
Modellering Geometriske (modellerings-) transformasjoner Avbildningstransformasjoner Fargelegging (shading)
Rasterering (rasterkonvertering)
Klipping
Finne synlige flater
![Page 3: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/3.jpg)
3
Visualiseringsløypa
Modell iverdens-
koordinater
Modell i kanoniske
betraktnings-koordinater
Modell i kamera-
koordinater
Trans-formasjon
Trans-formasjon
Trans-formasjon
Modell i normaliserte
utstyrs-koordinater
Bildei
”framebuffer”
Klipping ograsterering
Bilde tilskjerm
![Page 4: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/4.jpg)
4
Rasterering
Linjeklipping Flateklipping Klipping i 3D Finne synlige flater Rasterering av linjer Rasterering av flater Antialiasering Farger
![Page 5: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/5.jpg)
5
Visualiseringsløypa Realisert ved en ”pipeline”-arkitektur
– I maskinvare eller programvare Hva sendes typisk i ”røret”?
– Hjørnekoordinater
– Topologisk informasjon (hvilke flater hjørnene definerer)
– Normaler
– Refleksjonskoeffisienter (for Phong-refleksjon)
– Farger (for radiositetsmodellen)
– Tilbakesporingsinformasjon (for strålesporing) Hvor og hvordan utføres:
– Klipping
– Bestemmelse av hvilke flater som er synlige
– Lyssetting
– Farge og skyggelegging
![Page 6: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/6.jpg)
6
Objektromsmetoder
Behandler objektene i scenen som høyeste nivå (behandler objekt for objekt):– En del av algoritmene for bestemmelse av hvilke flater som
er synlige• Plasskrevende:
Krever tilgang til den komplette modellen, til eventuell z-buffer og til hele bildelageret på samme tid
– Radiositetsmetoden
![Page 7: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/7.jpg)
7
Bilderomsmetoder
Behandler pikslene som høyeste nivå (behandler bildet piksel for piksel:– En del algoritmer for bestemmelse av hvilke flater som er
synlige– Strålesporingsmodellen
• Tilbakesporing
– Rasterering
– Kan utnytte koherens gjennom inkrementelle metoder
![Page 8: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/8.jpg)
8
Eksempel på koherens
To nabo-scanlinjer:
.1
medverdien - xreinkremente å ved
linje mendefor vedkom plotte å piksel scanlinjes neste finne kan vi
scanlinje, tilscanlinje fralinjen huske""kan vidersomat medfører Det
11
1ΔΔ
:neste tilscanlineen fra 1Δ medøker y at slik ossordner Vi
:linjeen for Likningen
1212
mx
my
mx
xm)xm(xyyy
y
hmxy
![Page 9: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/9.jpg)
9
Linjeklipping
Lurt å klippe mot det kanoniske betraktningsvolumet for ortografisk projeksjon:
Flater og kanter kan skjære inn i det synlige volumet selv om hjørnene eller endepunktene ligger utenfor
11
11
11
:nårpunkt et Beholder
z
y
x
![Page 10: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/10.jpg)
10
Linjeklipping
![Page 11: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/11.jpg)
11
Linjeklipping
X
X
X
X
X
![Page 12: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/12.jpg)
12
Linjeklipping Cohen-Sutherlands algoritme for 2D
1001
011001000101
00000001 0010
10101000
y=ymaks
x=xmin x=xmaks
y=ymin
b0
b1
b2b3
![Page 13: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/13.jpg)
13
Linjeklipping: Cohen-Sutherlands algoritme:
– Kan brukes på rektangulære klippevinduer (i 2D)
– De forlengede kantene til vinduet deler planet i 9 regioner
– Tildeler regionene en 4-bits utkastingskode:
– Hjørner (endepunkt) får samme kode som regionen de befinner seg i ellers 0 ,xfor x 1
ellers 0 ,xfor x 1
ellers 0 ,yyfor 1
ellers 0 ,yyfor 1
min3
maks2
min1
maks0
3210
b
b
b
b
bbbb
![Page 14: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/14.jpg)
14
Linjeklipping
Cohen-Sutherlands algoritme:u1 = utkastingskoden for første endepunkt (x1,y1)
u2 = utkastingskoden for andre endepunkt (x2,y2)
– Hvis ((u1=0) && (u2=0)): Linjen aksepteres trivielt– Hvis ((u1 &&bitvis u2) != 0) Linjen forkastes trivielt– Ellers er ett eller begge endepunktene utenfor, mens linjen
kan skjære gjennom vinduet:• Bruk utkastingskoden til å finne en aktuell kant å beregne
skjæring mot
• Forkast linjebiten som ligger utenfor
• Utfør ny test på restlinjen
– Iterer til restlinjen enten er trivielt akseptert eller forkastet
![Page 15: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/15.jpg)
15
Linjeklipping Cohen-Sutherlands algoritme for 2D
1001
011001000101
00000001 0010
10101000
1
2
3
1
2
1
2
3
4
1
1
5
![Page 16: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/16.jpg)
16
Linjeklipping
Cohen-Sutherlands algoritme– God når sjansen for triviell forkasting er stor
Liang-Barskys algoritme– Har større sjanse for tidlig forkasting av linjer som må testes
for skjæring
![Page 17: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/17.jpg)
17
Linjeklipping Liang-Barskys algoritme:
– Best brukt på rektangulære klippevinduer:– Bruker linjelikningen på parametrisk form:
)()(
)()(
:ormkomponentf På
)()1()(
121
121
12121
yyyy
xxxx
pppppp
![Page 18: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/18.jpg)
18
Linjelikningen, parametrisk form
p1
p2
0
1
0
110
)()( 121 pppp
![Page 19: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/19.jpg)
19
Linjeklipping Liang-Barskys algoritme:
– Beregner parameterverdiene for linjens skjæringer med kantene til klippevinduet:
ute innen1
E
L
E
E
EL L
Lp1
p2p2
p1
n4
n3
n2
skjæring utgående""en
skjæring inngående""en
L
E
![Page 20: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/20.jpg)
20
Linjeklipping Liang-Barskys algoritme:
– Hjelpestørrelser:
– Linjen parallell med kant dersom:
– Linjen er da i sin helhet på utsiden av kant dersom:
14124
min13213
12122
min11211
yyqyyr
yyqyyr
xxqxxr
xxqxxr
max
max
i0ir
i0iq
![Page 21: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/21.jpg)
21
Linjeklipping Liang-Barskys algoritme:
– Beregner parameteren for skjæring med hver av klippevinduets kanter:
– Skiller mellom inn- og utpassering:
i
ii r
q
gutpasserin - 0
nginnpasseri - 0
i
i
r
r
![Page 22: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/22.jpg)
22
Linjeklipping Liang-Barskys algoritme:
– For innpassering beholdes største -verdi.– For utpassering beholdes minste -verdi– Forkaster linjen uten videre undersøkelse så snart en av
følgende situasjoner oppstår:
– For godtatt linje velges:
LE
LE
E
0
1
utsiden påtet Parallelli
L
),1(
),0(
LL
EE
min
max
![Page 23: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/23.jpg)
23
Kritisk merknad Liang-Barskys algoritme:
– Det er mulig at algoritme vil få litt bedre ytelse ved å erstatte parallellitetstesten med en test på om begge endepunkter ligger på utsiden av vinduskanten
• Innfører en ekstra hjelpestørrelse:
• Begge endepunktene ligger på utsiden av kanten og kan forkastes dersom:
24
23
22
21
'
'
'
'
yyq
yyq
xxq
xxq
max
min
max
min
i
)0'&(&)0( ii qq
![Page 24: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/24.jpg)
24
Polygonklipping
1
2
34
![Page 25: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/25.jpg)
25
Polygonklipping
1
2
34
Første steg
![Page 26: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/26.jpg)
26
Polygonklipping
1
2
34
Andre steg
![Page 27: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/27.jpg)
27
Polygonklipping
1
2
34
Tredje steg
![Page 28: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/28.jpg)
28
Polygonklipping
1
2
34
Fjerde steg
![Page 29: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/29.jpg)
29
Polygonklipping
1
2
34
Ferdig
![Page 30: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/30.jpg)
30
Polygonklipping
Sutherland-Hodgemans algoritme:– For hver kant av klippevinduet:
• Gå langs kantene rundt polygonet fra hjørne til hjørne:
– Hjørner som ligger utenfor vinduet klippes bort
– Ved utpassering lages et nytt hjørne i skjæringspunktet mellom vindusramme og polygonkant
– Ved innpassering lages et nytt hjørne i skjæringspunktet mellom vindusramme og polygonkant
![Page 31: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/31.jpg)
31
Omsluttende bokser Bokser som omslutter mere komplekse objekter
– Tettest mulig omslutning• Parallellepiped
• Akseorienterte omsluttende bokser AOBB
• Objektorienterte omsluttende bokser OOBB
– Det komplekse objektet klippes bare dersom den omsluttende boksen ville ha måttet bli klippet
– Vanlig teknikk i mange sammenhenger• Klipping
• Strålesporing
• Bestemmelse av hvilke flater som er synlige
• Kollisjonsdeteksjon (robotikk, animasjon .. )
Hensikt:– Når den omsluttende boksen ikke interfererer, interfererer heller ikke det
omsluttede objektet
![Page 32: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/32.jpg)
32
Klipping i rommet (3D)
Cohen-Sutherlands algoritme:– Utkastingskoden utvides med to bits som representerer
henholdsvis rommet foran klippevolumet og rommet bak– I stedet for testing av linjen mot linje (vinduskarm), testes
linjen mot plan
Liang-Barskys algoritme:– De parametrisk linjelikningene på komponentform, suppleres
med en likning for z-komponenten
![Page 33: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/33.jpg)
33
Synlige flater Back-face culling (objektrom)
(”Poor Man’s Algorithm”)
– Flaten usynlig dersom vinkelen mellom flatenormalen og synsretningen er større enn 90º
– Flaten ”strykes” dersom normalen peker bort, det vil si dersom z-komponenten av normalen er negativ.
n
v
![Page 34: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/34.jpg)
34
Synlige flater Warnock’s algoritme (objektromsalgoritme):
– AoI: Area of Interest:
Mulige situasjoner: • Polygonet skjærer inn i AoI• Polygonet er helt inne i AoI• Polygonet er helt utenfor AoI• Polygonet overlapper helt med AoI
A AoIAoIAoIA
AoIA
![Page 35: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/35.jpg)
35
Synlige flater Warnock’s algoritme:
– Følgende fire situasjoner kan avklares uten finere oppdeling:• Ingen polygoner trenger inn i AoI
– Tegner bakgrunnsfargen
• Bare ett polygon trenger inn i eller er inneholdt i AoI– Tegner bakgrunnsfargen og deretter objektets farge
• Bare ett polygon overlapper helt med AoI, og ingen polygoner trenger inn i eller er inneholdt i AoI
– Tegner objektets farge
• Av alle polygonene som helt eller delvis overlapper med AoI, er det mulig ved hjelp av å sammenlikne z-koordinatene å finne ett polygon som helt overlapper AoI og som utvetydig ligger foran alle de andre
– Tegner det forreste objektets farge
![Page 36: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/36.jpg)
36
Synlige flater
Warnock’s algoritme:– Dersom ingen av de fire situasjonene er gjeldende:
• Oppdeling av AoI i fire like store deler og gjenta prosessen for hver fjerdedel
AoI
AoIAoI
AoI
![Page 37: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/37.jpg)
37
Synlige flater
z-bufferalgoritmen
COP
1
2
3
Pikslet i bildelageret
z-verdi svarende til pikslet i bildelageret
z1
z3
z1
Etter polygon 1
Etter polygon 2
Etter polygon 3
z
0
z3
z1
z2
Polygonene behandlesi ”tilfeldig rekkefølge 1,2,3
piksel
skjerm
![Page 38: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/38.jpg)
38
Synlige flater z-bufferalgoritmen
– Bilderomsalgoritme– Har en z-buffer i tillegg til bildelageret
• En celle pr. piksel i bildelageret• z-bufferen må ha tilstrekkelig dybde (presisjon -f.eks. 32 bits)
– Behandler i prinsippet polygon for polygon• Initierer bildelageret med bakgrunnsfargen• Initierer z-bufferen med en z-verdi som ligger bak de z-verdiene som er
mulige (det negative tallet med størst tallverdi)• Ser ”gjennom” hvert piksel fra projeksjonssenteret (eller for
parallellprojeksjon i projeksjonsretningen)• Dersom polygon-punktet strålen treffer, har z-koordinat nærmere ”øyet”
enn det som det forrige som ble lagret, erstattes fargen i bildelageret og z-verdien i z-bufferen med det nye polygonets farge og z-verdi.
![Page 39: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/39.jpg)
39
Synlige flater z-bufferalgoritmen
Mulige problem:– Flere polygonbiter kan være synlige i samme piksel– Mulig løsning:
• Dersom vi ”har råd” til å bruke et bildelager og en z-buffer med større oppløsning en skjermen har:
”Skyte” flere stråler gjennom hvert piksel
• Midler fargen i tegnet piksel
”Primær” stråle
Tilleggsstråler
Flere tilleggsstråler
Piksel
![Page 40: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/40.jpg)
40
Synlige flater z-bufferalgoritmen
– Nyttbar koherens ved behandling av et polygon:• Polygonet ligger i flaten med likning:
• To punkt i polygonet er slik at:
• Da gjelder:
0 dczbyax
12
12
12
zzz
yyy
xxx
og 2 1 pp
0 zcybxa
![Page 41: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/41.jpg)
41
Synlige flater
z-bufferalgoritmen - nyttbar koherens:– Vi vil normalt behandle polygonet scanlinjevis.
• På en scanlinje gjelder:
• x-koordinaten øker i trinn på 1 målt i bildelageradresse:
• Dermed får vi for forflytning langs scanlinjen:
• Det vil si at z-verdien inkrementeres i faste trinn:
• (Dersom vi måler i vinduskoordinater, vil være en konstant)
0y
1x
0 zca
c
az
x
![Page 42: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/42.jpg)
42
Synlige flater
Listeprioritetsalgoritmer
Objektromsalgoritmer med et siste trinn (fargelegging av et enkelt piksel) i bilderommet– ”Painters” algoritme (malerens algoritme)– Dybdesorteringsalgoritmen– BSP-trær (Binary Space-Partitioning Trees)
• Behandles senere i forbindelse med sceneorganisering
![Page 43: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/43.jpg)
43
Synlige flater Painters algoritme:
– Sett hele bildelageret til bakgrunnsfargen– Sorter alle polygoner etter største avstand fra bildeplanet– For hvert polygon i sortert orden:
• Gjengi (”mal”) hele polygonet
•
– Polygoner som ligger nær bildeplanet, males over polygoner som ligger lenger bak
– Algoritmen feiler i mange tilfelle:
z x x
y
![Page 44: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/44.jpg)
44
Synlige flater
Dybdesorteringsalgoritmen:
zx
Projeksjonsplan
![Page 45: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/45.jpg)
45
Synlige flater Dybdesorteringsalgoritmen:
– Sortere polygonene etter punktet med z-koordinat lengst fra projeksjonsplanet (minste z-koordinat). Polygonene lengst borte kommer først
– Løse opp overlappsproblemer– Tegne polygonene ett for ett bakfra og forover mot
projeksjonsplanet
![Page 46: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/46.jpg)
46
Synlige flater Dybdesorteringsalgoritmen:
– Løse opp overlappsproblemet:• P er polygonet som i øyeblikket står først i listen over sorterte polygoner. • Før P kan ”males”, må det testes mot hvert av polygonene Q som kommer etter i listen.• For polygonet Q avbrytes testen så snart det kan svares ja på ett av følgende
spørsmål: – Ingen overlapp av koordinater i z-retningen?– Ingen overlapp av koordinater i x-retningen?– Ingen overlapp av koordinater i y-retningen?– P helt bak planet som Q ligger i (sett mot z-retningen)?– Q helt foran planet som P ligger i (sett mot z-retningen)?– Projeksjonene av P og Q i projeksjonsplanet overlapper ikke?
P og Q beholder da sin relative plassering i listen og P testes mot neste polygon i listen
![Page 47: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/47.jpg)
47
Synlige flater
Dybdesorteringsalgoritmen:
z x
P
Q
P helt bak planet somQ ligger i
z x
PQ
Q helt foran planet somP ligger i
![Page 48: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/48.jpg)
48
Synlige flater Dybdesorteringsalgoritmen:
• Dersom ingen av spørsmålene kunne besvares med ja, kan det tenkes at P blokkerer Q
• Stiller de samme spørsmålene med tanke på at P kan blokkere Q. Bare fjerde og femte spørsmål trenger gjentas:
– Q helt bak planet som P ligger i (sett mot z-retningen)– P helt foran planet som Q ligger i (sett mot z-retningen)
Dersom det kan svares ja på et av disse to spørsmålene, plasseres Q først i den gjenværende prioritetslisten
• Dersom overlappsproblemet fortsatt ikke er avklart, må ett av polygonene deles opp i mindre deler som erstatter det opprinnelige polygonet i listen.
• Testene fortsetter så med de nye delene på rett plass i listen
![Page 49: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/49.jpg)
49
Synlige flater
Dybdesorteringsalgoritmen:
z x
QP
Q helt bak planet somP ligger i
z x
P Q
P helt foran planet somQ ligger i
![Page 50: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/50.jpg)
50
Synlige flater
Dybdesorteringsalgoritmen:– Problemsituasjoner:
1 2 3
y
x
zy
![Page 51: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/51.jpg)
51
Synlige flater
Dybdesorteringsalgoritmen:– Problemsituasjoner:
• Situasjon 1 avklares i greitt i samsvar med algoritmen ved hjelp av oppdeling
• Situasjon 2 krever at det garderes mot evigvarende syklisk ombytting av polygonene
– Polygonene kan utstyres med et flagg som settes dersom det blir flyttet til første plass i listen
– Dersom det på nytt forsøkes flyttet til første plass, iverksettes i stedet oppdeling
• Situasjon 3 avklares også greitt i samsvar med algoritmen ved hjelp av oppdeling
– Men det grønne polygonet kunne uten videre ha vært ”malt” først– Den mere primitive Painters algoritme vil ha utført dette korrekt
![Page 52: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/52.jpg)
52
Scankonvertering av linjer
Rett linje:
Problem: hvilke piksler skal ”slås på”
x
y
xx
yym
yxyx
hmxy
12
12
2211
:orholdStigningsf
),( og ),(
:rEndepunkte
![Page 53: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/53.jpg)
53
Scankonvertering av linjer
Rett linje:– Antar pikselet midt
i ruten– Stigningsforhold
0<=m<=1– Går enhetssteg i
x-retningen
![Page 54: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/54.jpg)
54
Scankonvertering av linjer
Rett linje:– m>1– Med enhetssteg i
x-retningen:
linje uten sammen-
heng
– Enhetssteg i
y-retningen
![Page 55: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/55.jpg)
55
Scankonvertering av linjer
Rett linje:– Slår på det pikslet
som er nærmest den
matematiske
linjen
![Page 56: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/56.jpg)
56
Scankonvertering av linjer DDA-algoritmen:
1
:1 på sprang i resinkremente
10
:orholdetstigningsffor r Forutsette
ordinater.heltallsko tilav rundes
),( og ),(
nekoordinateEndepunkts
2211
x
x
m
yxyx
mxmyyy
y
yxxmy
y
gmlny
gmlgmlnyny
:ringinkremente
vedberegneskan at si Det vil
)(
:etter beregnes for Ny verdi
}
m;y
); farge , )y round( x,e_pixel( writ
{ ) ix x2;ix x1;ix (for
y1;y
:blir Algoritmen
![Page 57: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/57.jpg)
57
Scankonvertering av linjer
DDA-algoritmen:– Digital Differtial Analyzer– Grei og effektiv– Krever en addisjon av flyttall for hvert punkt– Andre algoritmer kan unngå flyttallsaritmetikken som
erstattes med en kombinasjon av:• Heltallsaddisjon
• Valg
– Kjente algoritmer av denne typen:• Bresenhams algoritme
• Midtpunktsalgoritmen
![Page 58: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/58.jpg)
58
Scankonvertering av linjer Bresenhams algoritme:
– Startforutsetninger:
1
:1 på sprang i resinkremente
ordinaterheltallsko tilav rundes
),( og ),(
nekoordinateEndepunkts
10
:tintervalle iligger orholdet Stigningsf
:likningen vedbeskrives som linjerett en Gitt
2211
x
x
yxyx
m
hmxy
![Page 59: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/59.jpg)
59
Scankonvertering av linjer
Bresenhams algoritme:
(xk,yk)
(xk+1,yk+1)
(xk+1,yk)
Pikselet (xk,yk) er det siste pikselet somble ”slått på”.
Det er to kandidatpikseler for det nesteå ”slå på”:
(xk+1,yk) og
(xk+1,yk+1)
![Page 60: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/60.jpg)
60
Scankonvertering av linjer Bresenhams algoritme:
(xk,yk)
(xk+1,yk+1)
(xk+1,yk)
a
bDefinerer desisjonsvariabelen d=a-b
d > 0 nedre piksel velgesd <= 0 øvre piksel velges
![Page 61: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/61.jpg)
61
Scankonvertering av linjer Bresenhams algoritme:
heltall. ikkehet alminnelig i er heltall,et er isnødvendigv
ikke og , konstanten iinngår Siden heltall. for uttrykket i leddene
første tode ogsåer heltall,er ngsvisforutsetni og bådeSiden
. og av uavhengigkonstant en er cder
)(2)(2)('
: ariabeldesisjonsvny en Definerer
12)1(22
:for gir Dette
)1(
)1(1)1(
:uttrykkeskan og
)1(
:er 1 "nettlinjen" påverdien -y nøyaktigeDen
2211
121212
c
hchd'
yxyxyx
yx
cyyxxxydxxd
d'
hxmyd
d
yhxmyyb
hxmyyya
ba
hxmy
x
k k , , , ,
kk
kk
kk
kkk
kkk
k
k
![Page 62: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/62.jpg)
62
Scankonvertering av linjer
Bresenhams algoritme:– Videre pikselvalg er avhengig av hvilket valg som ble gjort
på ”nettlinjen” xk+1:
(xk+2,yk+2)
(xk+2,yk+1)
(xk+2,yk)(xk+1,yk)
(xk+1,yk+1)
(xk,yk)
Dersom (xk+1,yk) ble valgt,er de nye kandidatene:(xk+2,yk) og (xk+2,yk+1)
Dersom (xk+1,yk+1) ble valgt,er de nye kandidatene:(xk+2,yk+1) og (xk+2,yk+2)
![Page 63: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/63.jpg)
63
Scankonvertering av linjer
Bresenhams algoritme:
)(2)(2'))(1(2))(1(2'
:blir 2 nettlinje"" på for valg didesjonsverNy
.)0( valgtble )1,1(
)(2'))(1(2)(2'
:blir 2 nettlinje"" på for valg didesjonsverNy
.)0( valgtble ),1(
121212121
1212121
yyxxdcyyxxxyd
x
dyx
yydcyyxxxyd
x
dyx
kkkk
k
kkk
kkkk
k
kkk
![Page 64: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/64.jpg)
64
Scankonvertering av linjer Bresenhams algoritme:
– Ny desisjonsverdi kan altså finnes ved heltallinkrementasjon av den forrige:
– Startverdien d1 er (setter inn for c):
)(2)(2
:0
)(2
:0
12121
121
yyxxdd
d
yydd
d
kk
k
kk
k
)(2)(
)(2)()(2)(2)(2)(2
)(2)()(2)(2)(2)(2
)(2)()(2)(2)(2
1212
12121212112121
12121212112121
1212121211211
yyxx
xxhxxyyyyxxxhyyx
xxhxxxxmyyxxxhxxmx
xxhxxxxmyyxxxyd
![Page 65: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/65.jpg)
65
Scankonvertering av polygoner
Fundamentalt spørsmål:– Polygonet beskrives ved hjelp av hjørner og kanter:
Hva er innside og hva er utside??
![Page 66: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/66.jpg)
66
Scankonvertering av polygoner
Paritetsregelen for innside - utside-bestemmelse
– Starter fra et sted utenfor polygonet– Initierer en kantkrysseteller til 0– Går bortover scanlinjen og teller opp kantkryssetelleren med 1 for
hver kant som krysses– Vi er inne i polygonet når kantkryssetelleren har som verdi et odde
tall og utenfor når den er et partall.
Scanlinje
Polygon
![Page 67: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/67.jpg)
67
Scankonvertering av polygoner Vindingstallet for innside - utside-bestemmelse:
– Polygonkantene gies retning – Sender ut en stråle fra punktet– Initierer en teller til 0– Går fra punktet og teller krysninger med polygonkanten:
• Teller +1 når kantretningen er mot høyre• Teller -1 når kantretningen er mot venstre
– Punktet er inne i polygonet når telleren er forskjellig fra 0 og utenfor når den er lik 0
P Scanlinje
Polygon
![Page 68: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/68.jpg)
68
Scankonvertering av polygoner
Algoritmer:– z-bufferalgoritmen– ”flood-fill”-algoritmen– scanlinjealgoritmen– –
![Page 69: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/69.jpg)
69
Scankonvertering av polygoner
”Flood fill”Har tegnet en kontur
Skal fylle polygonet med farge
Velger et ”frø” inne i polygonet
Ser på et ”firer-naboskap”til frøet:
![Page 70: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/70.jpg)
70
Scankonvertering av polygoner
”Flood fill”– Rekursiv algoritme:
}
}
); 1y x,fyll(
); 1-y x,fyll(
);y 1, xfyll(
);y 1,- xfyll(
); fyllFarge y, x,l(sett_Pikse
{ )) fyllFarge ! )y x,(les_Piksel &(& ) kantFarge ! )y x,(les_Piksel ( ( if
{ )y int int x; fyll( void
![Page 71: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/71.jpg)
71
Scankonvertering av polygoner
”Flood fill”Hva kan skje dersom en brukerer ”åtter-naboskap” i stedet for”firer-naboskapet”?
![Page 72: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/72.jpg)
72
Scankonvertering av polygoner Scanlinjealgoritmen:
1 164 13
3
8
14
16
x
y
A
B
C
nilnil
nilnilnilnil
nilnilnilnilnilnilnilnil
ABAC
BC
Kantliste (ET)ytopp
1/m
xbunn
…….
Kantpost
![Page 73: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/73.jpg)
73
Scankonvertering av polygoner Scanlinjealgoritmen:
– Sorter kantene etter nedre y-verdi– For hver y-verdi (scanlinje) lag en liste av kanter sortert etter
økende nedre x-verdi.• Samlingen av disse listene utgjør kantlisten (Edge Table - ET)
– For hver scanlinje:• Overfør kantposten for vedkommende scanlinje til den aktive
kanttabellen (Active Edge Table - AET)
AET
ABAC
ytopp
1/m
xaktuell
…….
Post iAET
![Page 74: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/74.jpg)
74
Scankonvertering av polygoner
Scanlinjealgoritmen:– For hver scanlinje - forsatt:
• Sørg for at AET forblir sortert med hensyn på xaktuell.
• Fyll scanlinjen ved bruk av paritetsregelen
• Øk y med 1 (neste scanlinje)
• Fjern elementer fra AET der y=ytopp (kanten er ferdigbehandlet)
• Inkrementer xaktuell for hver av kantene i AET
• Sorter om nødvendig AET med hensyn på xaktuell.
![Page 75: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/75.jpg)
75
Scankonvertering av polygoner Scanlinjealgoritmen:
1 164 13
3
8
14
16
x
y
A
B
CSingularitet i B
Scanlinje
![Page 76: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/76.jpg)
76
Scankonvertering av polygoner
Scanlinjealgoritmen:– Situasjoner med singularitet:
– Scanlinjen treffer to kanter i hjørnet - PROBLEM
![Page 77: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/77.jpg)
77
Scankonvertering av polygoner
Scanlinjealgoritmen:– Forslag til remedium:
• Ta bort det øverste pikselet fra hver av kantene
eller
• Forskyv scanlinjen litt i vertikal retning slik at den ikke treffer rett i hjørnene
eller
• Undersøk om det er kant både over og under scanlinjen og ta i så fall hensyn til det.
![Page 78: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/78.jpg)
78
Scankonvertering av polygoner Scanlinjealgoritmen:
1 164 13
3
8
14
16
x
y
A
B
CI H
GF
E
D
Kan kombineres med det å fåfram hvilke flater som er synlige
![Page 79: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/79.jpg)
79
Scankonvertering av polygoner Scanlinjealgoritmen:
nilnil
nil
nil
nilnil
nilnilnil
nil
ABAC
BC
Kantliste (ET)
…….
Kantpost
zbunn
x zx
ytopp
xbunn
Flate2
Flate1
HI
GHGI
DF
EFDE
zy
![Page 80: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/80.jpg)
80
Scankonvertering av polygoner
Scanlinjealgoritmen:– Ved samtidig scankonvertering av flere polygoner trengs en
liste over polygoner der scankonverteringen (for den aktuelle scanlinjen) er suspendert fordi konverteringen av et foranliggende polygon har tatt over.
– Det vil være hensiktsmessig at denne liste er sortert etter fallende z-verdi (vi ser mot z-aksen slik z-verdien faller med økende avstand fra øyepunktet) i det punktet der siste valg av polygon å scanne er gjort.
• (Siden polygonene må være slik oppdelt at de ikke kan skjære gjennom hverandre, vil de polygonene som er i listen fra før, ikke byttet plass ved sorteringen.)
![Page 81: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/81.jpg)
81
Scankonvertering av polygoner
Scanlinjealgoritmen:– Tabellen over suspenderte (”for øyeblikket ikke aktive” polygoner)
kan kalles PPT (Passive Polygons Table)
– For å unngå omstendelige behandling av tom PPT, kan en definere hele skjermarealet som et rektangulært polygon med bakgrunnsfarge
– Skjermrektangelets kanter legges i kant-tabellen (ET) sammen med de øvrige polygonene og med fast z-verdi satt til maksimal avstand (det negative tallet med størst tallverdi).
– Skjermrektangelet gjøres et ett piksel høyere enn skjermen
![Page 82: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/82.jpg)
82
Scankonvertering av polygoner Scanlinjealgoritmen:
1 164 13
3
8
14
16
x
y
A
B
CI H
GF
E
D
zx
Situasjonen for scanlinje 7 -snitt gjennompolygonene
5 10 15
Polygonet ABC
Polygonet DEF
Bakgrunns-polygonet -(skjermen)
![Page 83: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/83.jpg)
83
Scankonvertering av polygoner Scanlinjealgoritmen:
1 164 13
3
8
14
16
x
y
A
B
CI H
GF
E
D
AET for scanlinje 7:- venstre skjermkant (bakgrunnspolygonet)- kant DF- kant AC- kant EF- kant AB- høyre skjermkant (bakgrunnspolygonet)
![Page 84: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/84.jpg)
84
Scankonvertering av polygoner
Scanlinjealgoritmen:For eksempelet gjelder:
For hver gang det skal velges kant å tegne fra (KANT1), er innholdet i PPT:
PPT for x=1:- bakgrunnspolygonet
PPT for x=16:(tom)
PPT for x=10:- polygon ABC- bakgrunnspolygonet
PPT for x=12:- bakgrunnspolygonet
PPT for x=5:- polygon ABC- polygon DEF- bakgrunnspolygonet
PPT for x=4:- polygon DEF- bakgrunnspolygonet
![Page 85: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/85.jpg)
85
Scankonvertering av polygoner
Scanlinjealgoritmen:– Det antas at ”back-face culling” brukes til å eliminere flater
som vender bort
– Alle kanter er i utgangspunktet felles for to flater.
– Kanter som ikke er felles for to flater (for eksempel på grunn av ”back-face culling) defineres til å ha bakgrunnen på sin andre side
– For termineringsformål defineres kantene til bakgrunns-rektangelet til bare å avgrense dette
![Page 86: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/86.jpg)
86
Scankonvertering av polygoner Scanlinjealgoritmen:
En algoritme for samtidig bestemmelse av synlige flater og polygonfylling kan være:– Sorter alle polygonkanter etter nedre y-verdi – For hver y-verdi (scanlinje) lag en liste (kantliste - ET) av kanter sortert etter
nedre x-verdi– Initier en tom aktiv kanttabell (AET) – For hver scanlinje:
• Initier en tom liste over ”for øyeblikket ikke aktive” polygoner (”passive” polygoners tabell - PPT)
• Overfør nye kantposter for vedkommende scanlinje til den aktive kanttabellen (AET) slik at tabellen forblir sortert med hensyn på xaktuell
• Finn første kant i AET» La denne kanten være KANT1
![Page 87: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/87.jpg)
87
Scankonvertering av polygoner
Scanlinjealgoritmen:– (Forsatt for hver scanlinje 1:)
• Gjenta så lenge det er flere kanter i AET
– Finn neste kant i AET
» La denne kanten være KANT2
– Tegn med valgt farge- og skyggeleggingsmodell fra KANT1 til KANT2 for polygonet som starter (eller fortsetter) fra KANT1
– Oppdater z-verdiene svarende til KANT2 for hvert av polygonene i PPT
– Legg polygonet som starter fra KANT2 inn på rett plass i sortert orden i PPT
![Page 88: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/88.jpg)
88
Scankonvertering av polygoner
Scanlinjealgoritmen:– (Forsatt for hver scanlinje 2:)
– Dersom KANT2 ikke er avslutningskanten til polygonet som nettopp er tegnet mellom KANT1 og KANT2:
» Legg polygonet tilbake på rett plass i sortert orden i PPT
– Ta det polygonet som ligger først i PPT ut
» La KANT1 gjelde for dette polygonet
• Øk y med 1 (neste scanlinje)
• Fjern kanter fra AET der y=ytopp (kanten er ferdigbehandlet)
• Inkrementer xaktuell og zaktuell for hver av kantene i AET
• Sorter om nødvendig med hensyn på xaktuell
![Page 89: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/89.jpg)
89
Aliaseffekten
”Sagtannet” linje eller kant
![Page 90: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/90.jpg)
90
Antialiasing
Linjen har bredde
![Page 91: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/91.jpg)
91
Antialiasing
Gir pikslene intensitet eller blandings-farge etter hvor stor del av pikselet som er dekket av linjen
![Page 92: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/92.jpg)
92
Farger
Problemer å takle ved bruk av farger:– Definere fargen– Interpolere farger– Forskjellige CRT-karakteristikker
• Fosfor
• Oppløsning
• Pikselstørrelse
• Akspektforhold
– Papir- og toneregenskaper
![Page 93: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/93.jpg)
93
RGB-fargerommet
![Page 94: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/94.jpg)
94
RGB fargemodellen
R
G
B
1
1
10
Y
C
MW
RGB-rommet:R=(1,0,0)G=(0,1,0)B=(0,0,1)Y=(1,1,0)C=(0,1,1)M=(1,0,1)W=(1,1,1)Svart=(0,0,0)
Problem: hensiktsmessig måte til å velge koordinater
![Page 95: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/95.jpg)
95
Farger ved menyvalg
MicrosoftPowerPoint
![Page 96: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/96.jpg)
96
GrunnmodellEnergitetthet
e2
e1
Bølgelengde400 nmfiolett
700 nmrød
Dominantbølgelengde
FargenyanseMetningIntensitet
![Page 97: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/97.jpg)
97
Farger ved menyvalg
MicrosoftPowerPoint
![Page 98: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/98.jpg)
98
HLS-modellen
HueLightnessSaturation
![Page 99: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/99.jpg)
99
CIE kromasitetsmodell
![Page 100: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/100.jpg)
100
Farge-gamut
Bare en del av alle synlige farger kan fram-bringes ved hjelp av RGB-primærfarger
![Page 101: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/101.jpg)
101
Øyets følsomhet
Spektral følsomhet forhver av typene av tapper
Øyets lysfølsomhet
![Page 102: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/102.jpg)
102
Tri-stimuli primærfarger
Relativ mengde av tri-stimuli-komponentene for åframbringe et fargeinntrykk (spektral farge)
![Page 103: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/103.jpg)
103
CIE’s matchefunksjoner
Syntetiske funksjonerdefinert som lineære kombinasjoner av de målte matchefunksjonene for tri-stimuli primærfargene
Hensikt: ingen negative bidragfra hver av de tre syntetiske primærfargene X, Y og Z som defineres ved hjelp av matche-funksjonene
![Page 104: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/104.jpg)
104
CIE’s primærfarger
ZYX
Zz
ZYX
Yy
ZYX
Xx
z x, y
dzPkZdyPkYdxPkX
ZX, Y
P(
Y
y
:som defineres og enestetsverdikromasitet tenormaliser De
luminans.ønsket tilsk tilpasseder
)()()(
: og nekomponente
avhver avmengen blir ) elingenergiford spektralgitt en For
.lysenergi)utstrålt for (mål luminansen dervedblir
kurve.følsomhets øyets som formhar den at slik er valgt
![Page 105: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/105.jpg)
105
CIE kromasitetsdiagram
farger. synligegir og for verdier avner kombinasjo alle Ikke
0).(planet - i avbildningen som framkommert sdiagrammeKromasitet
1
:den tredjefølger gitt,er og nekoordinate av Når to
zx, y
zx-y
zyx
z x, y
![Page 106: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/106.jpg)
106
Forskjellige utstyrsenheter
Forskjellige utstyrsenhetervil ha forskjellige grunn-farger
![Page 107: Forelesningsnotater SIF8039/ Grafisk databehandling](https://reader035.fdocuments.us/reader035/viewer/2022062518/5681437b550346895daffa1b/html5/thumbnails/107.jpg)
107
Bruk av CIE-modellen
For en utstyrsenhet måles de tre primærfargene
En transformasjonsmatrise for omregning til X, Y og Z-komponenter stilles opp
Matrisen kan blant annet brukes til omregning av fargekoordinater for en utstyrsenhet til en annen
Ikke alltid mulig å gjengi fargene på en enhet nøyaktig likt på en annen
TT BGRMMBGR 11111
2222