+ All Categories
Home > Documents > Forelesningsnotater SIF8039/ Grafisk databehandling

Forelesningsnotater SIF8039/ Grafisk databehandling

Date post: 11-Jan-2016
Category:
Upload: enrico
View: 44 times
Download: 4 times
Share this document with a friend
Description:
Forelesningsnotater SIF8039/ Grafisk databehandling. Notater 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 - PowerPoint PPT Presentation
107
1 Forelesningsnotater SIF8039/ Grafisk databehandling Notater 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
Transcript
Page 1: Forelesningsnotater SIF8039/ Grafisk databehandling

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

2

Visualiseringsløypa

Modellering Geometriske (modellerings-) transformasjoner Avbildningstransformasjoner Fargelegging (shading)

Rasterering (rasterkonvertering)

Klipping

Finne synlige flater

Page 3: Forelesningsnotater SIF8039/ Grafisk databehandling

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

4

Rasterering

Linjeklipping Flateklipping Klipping i 3D Finne synlige flater Rasterering av linjer Rasterering av flater Antialiasering Farger

Page 5: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

10

Linjeklipping

Page 11: Forelesningsnotater SIF8039/ Grafisk databehandling

11

Linjeklipping

X

X

X

X

X

Page 12: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

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

18

Linjelikningen, parametrisk form

p1

p2

0

1

0

110

)()( 121 pppp

Page 19: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

24

Polygonklipping

1

2

34

Page 25: Forelesningsnotater SIF8039/ Grafisk databehandling

25

Polygonklipping

1

2

34

Første steg

Page 26: Forelesningsnotater SIF8039/ Grafisk databehandling

26

Polygonklipping

1

2

34

Andre steg

Page 27: Forelesningsnotater SIF8039/ Grafisk databehandling

27

Polygonklipping

1

2

34

Tredje steg

Page 28: Forelesningsnotater SIF8039/ Grafisk databehandling

28

Polygonklipping

1

2

34

Fjerde steg

Page 29: Forelesningsnotater SIF8039/ Grafisk databehandling

29

Polygonklipping

1

2

34

Ferdig

Page 30: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

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

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

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

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

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

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

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

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

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

44

Synlige flater

Dybdesorteringsalgoritmen:

zx

Projeksjonsplan

Page 45: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

50

Synlige flater

Dybdesorteringsalgoritmen:– Problemsituasjoner:

1 2 3

y

x

zy

Page 51: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

55

Scankonvertering av linjer

Rett linje:– Slår på det pikslet

som er nærmest den

matematiske

linjen

Page 56: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

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

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

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

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

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

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

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

68

Scankonvertering av polygoner

Algoritmer:– z-bufferalgoritmen– ”flood-fill”-algoritmen– scanlinjealgoritmen– –

Page 69: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

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

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

76

Scankonvertering av polygoner

Scanlinjealgoritmen:– Situasjoner med singularitet:

– Scanlinjen treffer to kanter i hjørnet - PROBLEM

Page 77: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

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

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

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

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

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

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

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

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

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

89

Aliaseffekten

”Sagtannet” linje eller kant

Page 90: Forelesningsnotater SIF8039/ Grafisk databehandling

90

Antialiasing

Linjen har bredde

Page 91: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

93

RGB-fargerommet

Page 94: Forelesningsnotater SIF8039/ Grafisk databehandling

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

95

Farger ved menyvalg

MicrosoftPowerPoint

Page 96: Forelesningsnotater SIF8039/ Grafisk databehandling

96

GrunnmodellEnergitetthet

e2

e1

Bølgelengde400 nmfiolett

700 nmrød

Dominantbølgelengde

FargenyanseMetningIntensitet

Page 97: Forelesningsnotater SIF8039/ Grafisk databehandling

97

Farger ved menyvalg

MicrosoftPowerPoint

Page 98: Forelesningsnotater SIF8039/ Grafisk databehandling

98

HLS-modellen

HueLightnessSaturation

Page 99: Forelesningsnotater SIF8039/ Grafisk databehandling

99

CIE kromasitetsmodell

Page 100: Forelesningsnotater SIF8039/ Grafisk databehandling

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

101

Øyets følsomhet

Spektral følsomhet forhver av typene av tapper

Øyets lysfølsomhet

Page 102: Forelesningsnotater SIF8039/ Grafisk databehandling

102

Tri-stimuli primærfarger

Relativ mengde av tri-stimuli-komponentene for åframbringe et fargeinntrykk (spektral farge)

Page 103: Forelesningsnotater SIF8039/ Grafisk databehandling

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

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

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

106

Forskjellige utstyrsenheter

Forskjellige utstyrsenhetervil ha forskjellige grunn-farger

Page 107: Forelesningsnotater SIF8039/ Grafisk databehandling

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


Recommended