+ All Categories
Home > Documents > Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag...

Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag...

Date post: 30-Jul-2020
Category:
Upload: others
View: 0 times
Download: 0 times
Share this document with a friend
130
Matematikken bag 3D computergrafik Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi, SDU UNF 11. november 2015
Transcript
Page 1: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matematikken bag 3D computergrafik

Rolf FagerbergLektor i datalogi

Institut for Matematik og Datalogi, SDU

UNF 11. november 2015

Page 2: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

3D grafik

3D computergrafik bruges bla. til:

I Computerspil

I Animerede film

I Speciel effects i almindelige film

I Træningssimulatorer (pilot, kaptajn, soldat,. . . )

I Visualisering (data, arkitektur, . . . )

Det er de samme principper for 3D grafik som bruges i alle dissesammenhænge. Disse er aftenens emne.

Page 3: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

3D grafik

3D computergrafik bruges bla. til:

I Computerspil

I Animerede film

I Speciel effects i almindelige film

I Træningssimulatorer (pilot, kaptajn, soldat,. . . )

I Visualisering (data, arkitektur, . . . )

Det er de samme principper for 3D grafik som bruges i alle dissesammenhænge. Disse er aftenens emne.

Page 4: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Vi vil gerne definere objekter i det 3-dimensionelle rum (~x =

xyz

∈ R3).

I den virkelige verden ser vi normalt overfladen af objekter ⇒ vi vil gernedefinere overflader i rummet.

Tre punkter i rummet definerer altid en plan i rummet, samt indhegner ettrekantet udsnit af denne. Sa trekanter vil være den basale byggesten,som sættes sammen til overflader af de ønskede virtuelle objekter.

Model = samling af punkter i rummet samt info om hvordan de hængersammen tre og tre (modellens trekanter).

Page 5: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Vi vil gerne definere objekter i det 3-dimensionelle rum (~x =

xyz

∈ R3).

I den virkelige verden ser vi normalt overfladen af objekter ⇒ vi vil gernedefinere overflader i rummet.

Tre punkter i rummet definerer altid en plan i rummet, samt indhegner ettrekantet udsnit af denne. Sa trekanter vil være den basale byggesten,som sættes sammen til overflader af de ønskede virtuelle objekter.

Model = samling af punkter i rummet samt info om hvordan de hængersammen tre og tre (modellens trekanter).

Page 6: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Vi vil gerne definere objekter i det 3-dimensionelle rum (~x =

xyz

∈ R3).

I den virkelige verden ser vi normalt overfladen af objekter ⇒ vi vil gernedefinere overflader i rummet.

Tre punkter i rummet definerer altid en plan i rummet, samt indhegner ettrekantet udsnit af denne.

Sa trekanter vil være den basale byggesten,som sættes sammen til overflader af de ønskede virtuelle objekter.

Model = samling af punkter i rummet samt info om hvordan de hængersammen tre og tre (modellens trekanter).

Page 7: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Vi vil gerne definere objekter i det 3-dimensionelle rum (~x =

xyz

∈ R3).

I den virkelige verden ser vi normalt overfladen af objekter ⇒ vi vil gernedefinere overflader i rummet.

Tre punkter i rummet definerer altid en plan i rummet, samt indhegner ettrekantet udsnit af denne. Sa trekanter vil være den basale byggesten,som sættes sammen til overflader af de ønskede virtuelle objekter.

Model = samling af punkter i rummet samt info om hvordan de hængersammen tre og tre (modellens trekanter).

Page 8: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Vi vil gerne definere objekter i det 3-dimensionelle rum (~x =

xyz

∈ R3).

I den virkelige verden ser vi normalt overfladen af objekter ⇒ vi vil gernedefinere overflader i rummet.

Tre punkter i rummet definerer altid en plan i rummet, samt indhegner ettrekantet udsnit af denne. Sa trekanter vil være den basale byggesten,som sættes sammen til overflader af de ønskede virtuelle objekter.

Model = samling af punkter i rummet samt info om hvordan de hængersammen tre og tre (modellens trekanter).

Page 9: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Virtuelle objekter

Flere eksempler:

Page 10: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rendering af virtuelle objekter i 3D

Rendering = generering af et billede (“fotografering”).

Skridtene i rendering:

I Definer modeller som samlinger af trekanter.

I Flyt modellerne rundt i rummet (transformation), dvs. opstil scenen.

I Flyt alle trekanter i scenen til skærmen (projektion) pa en made somsimulerer fotografering.

I Tilføj farver til de pixels pa skærmen som dækkes af de projiceredetrekanter (shading).

Page 11: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Perspektivisk projektion

Page 12: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Perspektivisk projektion

Page 13: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Flytte objekterWe har brug for at flytte/transformere vores objekter i rummet.

I En model (kasse, bil, bygning, person,. . . ) er defineret i en position(ofte rundt om centrum i koordinatsystemet), men skal bruges i enanden position i scenen.

I Maske i en anden størrelse end oprindeligt defineret.I Maske i adskillige positioner i samme scene (by med huse og biler).I Maske i forskellige positioner i forskellig scener/frames (animation).

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkterx ′

y ′

z ′

= f (x , y , z)

Opgave: find funktionerne vi skal bruge

Page 14: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Flytte objekterWe har brug for at flytte/transformere vores objekter i rummet.

I En model (kasse, bil, bygning, person,. . . ) er defineret i en position(ofte rundt om centrum i koordinatsystemet), men skal bruges i enanden position i scenen.

I Maske i en anden størrelse end oprindeligt defineret.I Maske i adskillige positioner i samme scene (by med huse og biler).I Maske i forskellige positioner i forskellig scener/frames (animation).

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkterx ′

y ′

z ′

= f (x , y , z)

Opgave: find funktionerne vi skal bruge

Page 15: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Flytte objekterWe har brug for at flytte/transformere vores objekter i rummet.

I En model (kasse, bil, bygning, person,. . . ) er defineret i en position(ofte rundt om centrum i koordinatsystemet), men skal bruges i enanden position i scenen.

I Maske i en anden størrelse end oprindeligt defineret.I Maske i adskillige positioner i samme scene (by med huse og biler).I Maske i forskellige positioner i forskellig scener/frames (animation).

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkter

x ′

y ′

z ′

= f (x , y , z)

Opgave: find funktionerne vi skal bruge

Page 16: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Flytte objekterWe har brug for at flytte/transformere vores objekter i rummet.

I En model (kasse, bil, bygning, person,. . . ) er defineret i en position(ofte rundt om centrum i koordinatsystemet), men skal bruges i enanden position i scenen.

I Maske i en anden størrelse end oprindeligt defineret.I Maske i adskillige positioner i samme scene (by med huse og biler).I Maske i forskellige positioner i forskellig scener/frames (animation).

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkterx ′

y ′

z ′

= f (x , y , z)

Opgave: find funktionerne vi skal bruge

Page 17: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Flytte objekterWe har brug for at flytte/transformere vores objekter i rummet.

I En model (kasse, bil, bygning, person,. . . ) er defineret i en position(ofte rundt om centrum i koordinatsystemet), men skal bruges i enanden position i scenen.

I Maske i en anden størrelse end oprindeligt defineret.I Maske i adskillige positioner i samme scene (by med huse og biler).I Maske i forskellige positioner i forskellig scener/frames (animation).

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkterx ′

y ′

z ′

= f (x , y , z)

Opgave: find funktionerne vi skal bruge

Page 18: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Translation

f (x , y , z) =

x + py + qz + r

Page 19: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Skalering

f (x , y , z) =

u · xv · yw · z

(Ofte u = v = w , uniform skalering).

Page 20: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Generelt: rotation omkring en linie gennem (0,0,0):

f (x , y , z) =

???

Page 21: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Generelt: rotation omkring en linie gennem (0,0,0):

f (x , y , z) =

???

Page 22: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Generelt: rotation omkring en linie gennem (0,0,0):

f (x , y , z) =

???

Page 23: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Simpler tilfælde: Rotation om z-aksen.

Brug formel for rotation i 2D:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

Page 24: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Simpler tilfælde: Rotation om z-aksen.

Brug formel for rotation i 2D:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

Page 25: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Rotation

Tilsvarende: Rotation om x-aksen og y -aksen.

f (x , y , z) =

xy cosφ− z sinφy sinφ+ z cosφ

f (x , y , z) =

z sinφ+ x cosφy

z cosφ− x sinφ

Page 26: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 + 3 + 4 =

9

2 + (3 + 4) eller (2 + 3) + 4?

Ligegyldigt, plus er associativ:

a + (b + c) = (a + b) + c

Page 27: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 + 3 + 4 = 9

2 + (3 + 4) eller (2 + 3) + 4?

Ligegyldigt, plus er associativ:

a + (b + c) = (a + b) + c

Page 28: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 + 3 + 4 = 9

2 + (3 + 4) eller (2 + 3) + 4?

Ligegyldigt, plus er associativ:

a + (b + c) = (a + b) + c

Page 29: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 + 3 + 4 = 9

2 + (3 + 4) eller (2 + 3) + 4?

Ligegyldigt, plus er associativ:

a + (b + c) = (a + b) + c

Page 30: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 · 3 · 4 =

24

2 · (3 · 4) eller (2 · 3) · 4?

Ligegyldigt, gange er associativ:

a · (b · c) = (a · b) · c

Page 31: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 · 3 · 4 = 24

2 · (3 · 4) eller (2 · 3) · 4?

Ligegyldigt, gange er associativ:

a · (b · c) = (a · b) · c

Page 32: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 · 3 · 4 = 24

2 · (3 · 4) eller (2 · 3) · 4?

Ligegyldigt, gange er associativ:

a · (b · c) = (a · b) · c

Page 33: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2 · 3 · 4 = 24

2 · (3 · 4) eller (2 · 3) · 4?

Ligegyldigt, gange er associativ:

a · (b · c) = (a · b) · c

Page 34: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2− 3− 4 =

?

2− (3− 4) eller (2− 3)− 4?

Ikke ligegyldigt, minus er ikke associativ:

2− (3− 4) = 3

(2− 3)− 4 = −5

Page 35: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2− 3− 4 = ?

2− (3− 4) eller (2− 3)− 4?

Ikke ligegyldigt, minus er ikke associativ:

2− (3− 4) = 3

(2− 3)− 4 = −5

Page 36: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

2− 3− 4 = ?

2− (3− 4) eller (2− 3)− 4?

Ikke ligegyldigt, minus er ikke associativ:

2− (3− 4) = 3

(2− 3)− 4 = −5

Page 37: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

2

57

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 38: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

2

57

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 39: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

257

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 40: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

2

57

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 41: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

2

57

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 42: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Mellemspil

Plus, gange, minus. . . :

tal og tal → nyt tal.

Plus, gange, minus,. . . pa andre matematiske objekter?

F.eks. vektorer har et plus:257

+

134

=

2 + 15 + 37 + 4

=

38

11

2

57

⊕1

34

=

2 + 15 + 37 + 4

=

38

11

(vektor + vektor = ny vektor)

Har vektorer et gange?

Page 43: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matricer

Vektor = sekvens (søjle eller række) af tal:

257

eller (2, 5, 7).

Nyt matematisk objekt:

Matrix = firkant af tal: 1 3 4 12 5 6 79 1 1 0

Ovenstaende er en 3× 4 matrix.

Kan vi lave et plus og et gange for matricer?

Page 44: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matricer

Vektor = sekvens (søjle eller række) af tal:

257

eller (2, 5, 7).

Nyt matematisk objekt:

Matrix = firkant af tal: 1 3 4 12 5 6 79 1 1 0

Ovenstaende er en 3× 4 matrix.

Kan vi lave et plus og et gange for matricer?

Page 45: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matricer

Vektor = sekvens (søjle eller række) af tal:

257

eller (2, 5, 7).

Nyt matematisk objekt:

Matrix = firkant af tal: 1 3 4 12 5 6 79 1 1 0

Ovenstaende er en 3× 4 matrix.

Kan vi lave et plus og et gange for matricer?

Page 46: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matricer

Vektor = sekvens (søjle eller række) af tal:

257

eller (2, 5, 7).

Nyt matematisk objekt:

Matrix = firkant af tal: 1 3 4 12 5 6 79 1 1 0

Ovenstaende er en 3× 4 matrix.

Kan vi lave et plus og et gange for matricer?

Page 47: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Matricer

Plus for matricer:1 6 42 5 79 1 1

+

3 2 14 3 25 4 3

=

1 + 3 6 + 2 4 + 12 + 4 5 + 3 7 + 29 + 5 1 + 4 1 + 3

=

4 8 56 8 9

14 5 4

(Matrice + matrice = ny matrice)

Page 48: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

MatricerGange for matricer:1 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? ?? ? ?

(Matrice · matrice = ny matrice)

1 6 42 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? ? ?

33 = 2 · 1 + 5 · 2 + 7 · 31 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? 25 ?

25 = 9 · 2 + 1 · 3 + 1 · 4

Man kan vise at gange for matricer er associativt: A · (B ·C ) = (A ·B) ·C .

Page 49: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

MatricerGange for matricer:1 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? ?? ? ?

(Matrice · matrice = ny matrice)

1 6 42 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? ? ?

33 = 2 · 1 + 5 · 2 + 7 · 3

1 6 42 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? 25 ?

25 = 9 · 2 + 1 · 3 + 1 · 4

Man kan vise at gange for matricer er associativt: A · (B ·C ) = (A ·B) ·C .

Page 50: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

MatricerGange for matricer:1 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? ?? ? ?

(Matrice · matrice = ny matrice)

1 6 42 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? ? ?

33 = 2 · 1 + 5 · 2 + 7 · 31 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? 25 ?

25 = 9 · 2 + 1 · 3 + 1 · 4

Man kan vise at gange for matricer er associativt: A · (B ·C ) = (A ·B) ·C .

Page 51: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

MatricerGange for matricer:1 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? ?? ? ?

(Matrice · matrice = ny matrice)

1 6 42 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? ? ?

33 = 2 · 1 + 5 · 2 + 7 · 31 6 4

2 5 79 1 1

·3 2 1

4 3 25 4 3

=

? ? ?? ? 33? 25 ?

25 = 9 · 2 + 1 · 3 + 1 · 4

Man kan vise at gange for matricer er associativt: A · (B ·C ) = (A ·B) ·C .

Page 52: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkter

Vi skal bruge funktioner f (x , y , z) =

x ′

y ′

z ′

Enhver matrice kan give en sadan funktion pa flg. made:

f(x , y , z

)=

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Spørgsmal: kan vores ønskede transformationer (transformation,skalering, rotation, projektion) udtrykkes ved matricer?

Page 53: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkter

Vi skal bruge funktioner f (x , y , z) =

x ′

y ′

z ′

Enhver matrice kan give en sadan funktion pa flg. made:

f(x , y , z

)=

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Spørgsmal: kan vores ønskede transformationer (transformation,skalering, rotation, projektion) udtrykkes ved matricer?

Page 54: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Flytte model ⇔ flytte trekanter ⇔ flytte hjørnepunkter

Vi skal bruge funktioner f (x , y , z) =

x ′

y ′

z ′

Enhver matrice kan give en sadan funktion pa flg. made:

f(x , y , z

)=

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Spørgsmal: kan vores ønskede transformationer (transformation,skalering, rotation, projektion) udtrykkes ved matricer?

Page 55: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Kan alle vores ønskede transformationer blive udtrykt ved matricer?

f (x , y , z) =

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Hvad skulle vi fa ud af det?

Recall: Matrix gange er associativt: A · (B · C ) = (A · B) · C . Derfor:

A · (B · (C · (E · (F ·

xyz

)))) = ((((A · B) · C ) · E ) · F ) ·

xyz

Dette kan spare beregninger: 3D model = mange trekanter = mangepunkter. Alle punkter i model skal gennem de samme transformationer.Men (((A · B) · C ) · E ) · F skal kun beregnes en gang.

Page 56: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Kan alle vores ønskede transformationer blive udtrykt ved matricer?

f (x , y , z) =

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Hvad skulle vi fa ud af det?

Recall: Matrix gange er associativt: A · (B · C ) = (A · B) · C . Derfor:

A · (B · (C · (E · (F ·

xyz

)))) = ((((A · B) · C ) · E ) · F ) ·

xyz

Dette kan spare beregninger: 3D model = mange trekanter = mangepunkter. Alle punkter i model skal gennem de samme transformationer.Men (((A · B) · C ) · E ) · F skal kun beregnes en gang.

Page 57: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Kan alle vores ønskede transformationer blive udtrykt ved matricer?

f (x , y , z) =

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Hvad skulle vi fa ud af det?

Recall: Matrix gange er associativt: A · (B · C ) = (A · B) · C .

Derfor:

A · (B · (C · (E · (F ·

xyz

)))) = ((((A · B) · C ) · E ) · F ) ·

xyz

Dette kan spare beregninger: 3D model = mange trekanter = mangepunkter. Alle punkter i model skal gennem de samme transformationer.Men (((A · B) · C ) · E ) · F skal kun beregnes en gang.

Page 58: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Kan alle vores ønskede transformationer blive udtrykt ved matricer?

f (x , y , z) =

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Hvad skulle vi fa ud af det?

Recall: Matrix gange er associativt: A · (B · C ) = (A · B) · C . Derfor:

A · (B · (C · (E · (F ·

xyz

)))) = ((((A · B) · C ) · E ) · F ) ·

xyz

Dette kan spare beregninger: 3D model = mange trekanter = mangepunkter. Alle punkter i model skal gennem de samme transformationer.Men (((A · B) · C ) · E ) · F skal kun beregnes en gang.

Page 59: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Tilbage til at flytte objekter

Kan alle vores ønskede transformationer blive udtrykt ved matricer?

f (x , y , z) =

1 2 34 5 67 8 9

·x

yz

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

Hvad skulle vi fa ud af det?

Recall: Matrix gange er associativt: A · (B · C ) = (A · B) · C . Derfor:

A · (B · (C · (E · (F ·

xyz

)))) = ((((A · B) · C ) · E ) · F ) ·

xyz

Dette kan spare beregninger: 3D model = mange trekanter = mangepunkter. Alle punkter i model skal gennem de samme transformationer.Men (((A · B) · C ) · E ) · F skal kun beregnes en gang.

Page 60: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?

I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 61: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 62: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 63: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 64: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 65: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 66: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Kan vores transformationer udtrykkes ved matricer?I Skalering:

f (x , y , z) =

u · xv · yw · z

=

u 0 00 v 00 0 w

·x

yz

I Rotation vinkel φ om z-aksen:

f (x , y , z) =

x cosφ− y sinφx sinφ+ y cosφ

z

=

cosφ − sinφ 0sinφ cosφ 0

0 0 1

·x

yz

I Translation?

f (x , y , z) =

x + py + qz + r

=

? ? ?? ? ?? ? ?

·x

yz

Umuligt. For translation gælder f (0, 0, 0) 6= (0, 0, 0), men allefunktioner induceret af matricer har f (0, 0, 0) = (0, 0, 0).

Page 67: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Homogenene koordinater

Ga til 4D:

xyz

xyz1

Og tilbage: xyzw

→x/w

y/wz/w

Page 68: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Homogenene koordinater

Ga til 4D:

xyz

xyz1

Og tilbage:

xyzw

→x/w

y/wz/w

Page 69: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Homogenene koordinater

Translationer (i 3D) kan nu blive udtrykt ved matricer:1 0 0 p0 1 0 q0 0 1 r0 0 0 1

·

xyz1

=

x + py + qz + r

1

Alle 3x3 matricer er stadig til radighed (inkl. skalering og rotation):1 2 3 04 5 6 07 8 9 00 0 0 1

·

xyz1

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

1

Page 70: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Homogenene koordinater

Translationer (i 3D) kan nu blive udtrykt ved matricer:1 0 0 p0 1 0 q0 0 1 r0 0 0 1

·

xyz1

=

x + py + qz + r

1

Alle 3x3 matricer er stadig til radighed (inkl. skalering og rotation):1 2 3 04 5 6 07 8 9 00 0 0 1

·

xyz1

=

1x + 2y + 3z4x + 5y + 6z7x + 8y + 9z

1

Page 71: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Projektion

Perspektivisk projektion:

Udrykt ved en 4x4 matrix:1 0 0 00 1 0 00 0 1 00 0 1/d 0

·

xyz1

=

xyz

z/d

→xd/z

yd/zd

Page 72: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Projektion

Perspektivisk projektion:

Udrykt ved en 4x4 matrix:1 0 0 00 1 0 00 0 1 00 0 1/d 0

·

xyz1

=

xyz

z/d

→xd/z

yd/zd

Page 73: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Shading = find color values at pixels of screen (when rendering a virtual3D scene).

Same as finding color value for the closest triangle on the ray of the pixel(assuming this is an opaque object, and air is clear).

Core objective: Find color values for intersection of a ray with a triangle.

Page 74: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Shading = find color values at pixels of screen (when rendering a virtual3D scene).

Same as finding color value for the closest triangle on the ray of the pixel(assuming this is an opaque object, and air is clear).

Core objective: Find color values for intersection of a ray with a triangle.

Page 75: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Shading = find color values at pixels of screen (when rendering a virtual3D scene).

Same as finding color value for the closest triangle on the ray of the pixel(assuming this is an opaque object, and air is clear).

Core objective: Find color values for intersection of a ray with a triangle.

Page 76: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Shading = find color values at pixels of screen (when rendering a virtual3D scene).

Same as finding color value for the closest triangle on the ray of the pixel(assuming this is an opaque object, and air is clear).

Core objective: Find color values for intersection of a ray with a triangle.

Page 77: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Core objective: Find color values for point at intersection of a ray with atriangle.

I Rendering is triangle-driven (foreach triangle: render).

I Triangles are simply (triples of) vertices until rasterization phase,where pixels of the triangle are found from pixels of the vertices.

So the actual rays are determined in the rasterization phase.

Page 78: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading

Core objective: Find color values for point at intersection of a ray with atriangle.

I Rendering is triangle-driven (foreach triangle: render).

I Triangles are simply (triples of) vertices until rasterization phase,where pixels of the triangle are found from pixels of the vertices.

So the actual rays are determined in the rasterization phase.

Page 79: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Core objective: Find color values for intersection of a ray with a triangle.

Model physical light (photons)

Photons are

I Emitted from ligth sources.

I Reflected, absorbed, re-emitted, transmitted when hitting objects.

Page 80: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Core objective: Find color values for intersection of a ray with a triangle.

Model physical light (photons)

Photons are

I Emitted from ligth sources.

I Reflected, absorbed, re-emitted, transmitted when hitting objects.

Page 81: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Core objective: Find color values for intersection of a ray with a triangle.

Model physical light (photons)

Photons are

I Emitted from ligth sources.

I Reflected, absorbed, re-emitted, transmitted when hitting objects.

Page 82: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Highly complex physical proces. Zillions of photons.

Can only be modeled to a certain degree mathematically (ongoingresearch expands on the available models).

(Figure by Jason Jacobs)

Page 83: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Highly complex physical proces. Zillions of photons.

Can only be modeled to a certain degree mathematically (ongoingresearch expands on the available models).

(Figure by Jason Jacobs)

Page 84: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Realtime rendering additionally has severe time constraints. Framerate ∼30/sec, screen size ∼ 106 pixels ⇒ few GPU cycles available forcalculation per ray.

Hence, realtime rendering (games, simulators) use quite rough lightmodels.

Offline rendering (movies, visualization) can use more advanced lightmodels (and also other rendering methods needing more time, such asray tracing and radiosity).

Page 85: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Realtime rendering additionally has severe time constraints. Framerate ∼30/sec, screen size ∼ 106 pixels ⇒ few GPU cycles available forcalculation per ray.

Hence, realtime rendering (games, simulators) use quite rough lightmodels.

Offline rendering (movies, visualization) can use more advanced lightmodels (and also other rendering methods needing more time, such asray tracing and radiosity).

Page 86: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Modeling Light

Realtime rendering additionally has severe time constraints. Framerate ∼30/sec, screen size ∼ 106 pixels ⇒ few GPU cycles available forcalculation per ray.

Hence, realtime rendering (games, simulators) use quite rough lightmodels.

Offline rendering (movies, visualization) can use more advanced lightmodels (and also other rendering methods needing more time, such asray tracing and radiosity).

Page 87: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Phongs Lightning Model

A classic, simple model.

I Models only opaque objects.

I Models only one level of light/surface interactions.

I Light/surface interaction is modeled by two simple submodels,diffuse and specular term.

I Models indirect light effects very crudely (ambient term).

I Light actually generated at surface can be added (emissive term).

I Occlusion is not modeled (all objects see all lights).

Page 88: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Phongs Lightning Model

A classic, simple model.

I Models only opaque objects.

I Models only one level of light/surface interactions.

I Light/surface interaction is modeled by two simple submodels,diffuse and specular term.

I Models indirect light effects very crudely (ambient term).

I Light actually generated at surface can be added (emissive term).

I Occlusion is not modeled (all objects see all lights).

Page 89: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 90: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 91: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 92: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 93: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 94: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Shading modelsSo we have information in each vertex. How spread color calculation overentire triangle pixels?

I Flat shading: Color calculated for one point is used for entiretriangle.

I Smooth shading (aka. Gouraud shading): Colors calculated for threevertices are interpolated across the entire triangle (individually foreach RGB-channel).

I Phong shading: Color calculation done for all points of pixels.

Calculation time increases down the list.

Page 95: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Textures

Texture = 1/2/3D data table.

Often: (color values of) 2D picture.

External file, or generated online inside program (animated textures), orrenderede (offline or online) scene.

But texture data can be interpreted as anything, e.g. normal vectors,light maps/shadow maps, heightfields,. . . .

Page 96: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Textures

Texture = 1/2/3D data table.

Often: (color values of) 2D picture.

External file, or generated online inside program (animated textures), orrenderede (offline or online) scene.

But texture data can be interpreted as anything, e.g. normal vectors,light maps/shadow maps, heightfields,. . . .

Page 97: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Textures

Texture = 1/2/3D data table.

Often: (color values of) 2D picture.

External file, or generated online inside program (animated textures), orrenderede (offline or online) scene.

But texture data can be interpreted as anything, e.g. normal vectors,light maps/shadow maps, heightfields,. . . .

Page 98: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Textures

Texture = 1/2/3D data table.

Often: (color values of) 2D picture.

External file, or generated online inside program (animated textures), orrenderede (offline or online) scene.

But texture data can be interpreted as anything, e.g. normal vectors,light maps/shadow maps, heightfields,. . . .

Page 99: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Use of Textures

I Generate detailed graphical content hardly possible with triangles(such as clouds, skyboxes, plain pictures (posters, decals) onsurfaces).

I Create illusion of structure, saving lots of triangles. Can be (lowlevel) part of a level-of-detail scheme.

I Most of a game’s graphical expression is via artwork using textures.

I Hold special-purpose data for use in rendering process.

Page 100: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Examples

(From All Things Designed)

Page 101: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Examples

Page 102: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Examples

Page 103: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Examples

(From Sly Cooper)

Page 104: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Examples

(Figures by Valentin Nadolu)

Page 105: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Coordinates

Texture data get mapped to [0; 1]1,2,3 in texture space.

Vertices can be associated with texture coordinates

Page 106: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Coordinates

Texture data get mapped to [0; 1]1,2,3 in texture space.

Vertices can be associated with texture coordinates

Page 107: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Coordinates

Texture space points can be arbitrary:

Points internally in triangle are associated with points in texture spaceusing interpolation.

Page 108: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Coordinates

Texture space points can be arbitrary:

Points internally in triangle are associated with points in texture spaceusing interpolation.

Page 109: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Interpolation Example

Page 110: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Use: BumpmappingStore surface normals (or perturbation of normals) in texture.

(Figure by www.chromesphere.com)

Page 111: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Use: BumpmappingStore surface normals (or perturbation of normals) in texture.

(Figure by www.chromesphere.com)

Page 112: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Texture Use: Environment Mapping

Relections can see environment. Make part of shading calculation.

Page 113: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Environment Mapping

Easiest with Cube mapping:

Six single textures. Can each be generated online by rendering fromcurrent center and saving framebuffer as texture.

Page 114: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Alternative Rendering Methods

I Standard GPU pipeline (OpenGL): real-time, but shading based onlocal effects. No shadows in basic pipeline (must be added byad-hoc methods).

I Ray tracing: Global shading model particularly good at speculareffects (shiny surfaces). Too computationally expensive to bereal-time.

I Radiosity: Global shading model particularly good at diffuse effects(matte surfaces, indirect light). Too computationally expensive tobe real-time. But well suited for storing results as textures (asdiffuse light is not viewpoint dependent).

Page 115: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing

Follow photon paths to the eye.

For efficiency, follow these in a backwards fashion, from the eye (onlyspend time on photons actually hitting the eye).

Page 116: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing

Follow photon paths to the eye.

For efficiency, follow these in a backwards fashion, from the eye (onlyspend time on photons actually hitting the eye).

Page 117: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 0

At end of rays: calculate colors by Phongs lighting model.

Same result as standard GPU pipeline.

Requires mechanism for fast determination of intersection points betweenrays and objects of the scene (e.g., store objects in data structures).

Page 118: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 0

At end of rays: calculate colors by Phongs lighting model.

Same result as standard GPU pipeline.

Requires mechanism for fast determination of intersection points betweenrays and objects of the scene (e.g., store objects in data structures).

Page 119: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 0

At end of rays: calculate colors by Phongs lighting model.

Same result as standard GPU pipeline.

Requires mechanism for fast determination of intersection points betweenrays and objects of the scene (e.g., store objects in data structures).

Page 120: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 1

Add occlusion tests to light sources.

Gives shadows.

Page 121: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 2+

Add reflection and transmission. Then recurse.

Note: simulating indirect light transfer between diffuse surfaces requiresfollowing many (approximating infinitely many) reflective rays from eachray intersection point in the recursive process.

Prohibitively costly. So ray tracing works best for glossy materials.

Page 122: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Level 2+

Add reflection and transmission. Then recurse.

Note: simulating indirect light transfer between diffuse surfaces requiresfollowing many (approximating infinitely many) reflective rays from eachray intersection point in the recursive process.

Prohibitively costly. So ray tracing works best for glossy materials.

Page 123: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Ray Tracing Examples

(Figures by Bill Martin, RayScale, Daniel Pohl, NVIDIA)

Page 124: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Radiosity

Model indirect light bouncing between purely diffuse (Lambertian)surfaces (of which some are light emitting).

(Figure by Jason Jacobs)

Page 125: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Patches

Start by patch-ifying the surfaces of the scene.

(Figure by Chuck Pheatt)

Entire patch will be considered to have same ligth value(radiosity/brightness) Bi .

Radiosity: photons emitted per time and per area.

Page 126: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Form Factors

Form factor Fij : measure of light transport between patch i and j .

(Technically: For Fij : sum (integrate) contribution between (infinitesimalsmall areas around) all points on the two patches Pi and Pj .)

Page 127: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Form Factors

Form factor Fij : measure of light transport between patch i and j .

(Technically: For Fij : sum (integrate) contribution between (infinitesimalsmall areas around) all points on the two patches Pi and Pj .)

Page 128: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Radiosity EquationWith M a specific n × n matrix (n is number of patches in schene)having entries depending on form factors and reflectance of patches, Bthe sought vector of brightness/radiosity values for patches and E thevector of emissive values for patches, one can prove:

MB = E

Using properties of the matrix M and results from matrix theory, it canbe proven that the iterative process

Bi+1 = E + (I −M)Bi

for any start vector B0 will converge to B. This is usually faster thandirectly solving MB = E (by e.g. inverting M), and less memory is used.

Page 129: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Iterative Process

Here is the result of rendering a specific scene with B1, B2, B3, B16.

(Figure by Hugo Elias)

The patching of the room may be refined based on one run of radiosity,increasing the resolution in areas with large variation in light values(edges of shadows, e.g.), and lowering the resolution in areas with smallvariation.

Page 130: Matematikken bag 3D computergrafik - SDUjoan/intro/15rolf3D.pdf · 2015-12-10 · Matematikken bag 3D computergra k Rolf Fagerberg Lektor i datalogi Institut for Matematik og Datalogi,

Iterative Process

Here is the result of rendering a specific scene with B1, B2, B3, B16.

(Figure by Hugo Elias)

The patching of the room may be refined based on one run of radiosity,increasing the resolution in areas with large variation in light values(edges of shadows, e.g.), and lowering the resolution in areas with smallvariation.


Recommended