3d computer graphik: transformationen in 3d · page 1 3d computer graphik: transformationen in 3d...

15
Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion Graphics Pipeline for every object in the scene shade the vertices scan convert the object to the framebuffer interpolate the color computed for each vertex remember the closest value per pixel

Upload: others

Post on 30-Jul-2020

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 1

3D Computer Graphik:

Transformationen in 3D

10

Scan Conversion – Graphics Pipeline

for every object in the scene

shade the vertices

scan convert the object to the framebuffer

interpolate the color computed for each vertex

remember the closest value per pixel

Page 2: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 2

11

Graphics Pipeline

Modeling

Transformations

Illumination

(Shading)

Viewing Transformation

(Perspective / Orthographic)

Clipping

Projection

(to Screen Space)

Scan Conversion

(Rasterization)

Visibility / Display

Output:

Farben / Intensitäten:

Angepasst an den Framebuffer und den

Bildschirm (z.B. 24-bit RGB Werte)

.

Input:

Geometrische Modelle:

Beschreibung aller Objekte, Oberflächen,

Position der Lichtquellen.

Beleuchtungsmodell:

Rechenvorschriften zur Simulation der

Interaktion von Materie und Licht

Blickwinkel:

Kamera oder Augenposition,

"viewing frustum"

Raster Bereich

"Viewport", Pixelgrid in welches die

Bildeben abgebildet wird

12

Modeling Transformations

3D Modelle haben eigenes Koordinatensystem

(object space)

"Modeling transforms" orientieren die Modelle

in einem gemeinsamen Koordinatensystem

(world space)

Modeling

Transformations

Illumination

(Shading)

Viewing Transformation

(Perspective / Orthographic)

Clipping

Projection

(to Screen Space)

Scan Conversion

(Rasterization)

Visibility / Display

Object space World space

Page 3: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 3

Geometrische

Transformationen in 3D

14

Wiederholung: Verkettung von Transformationen in 2D

100

sincos1cossin

sincos1sincos

100

10

01

100

0cossin

0sincos

100

10

01

rr

rr

r

r

r

r

xy

yx

y

x

y

x

),-yT(-x)R( )y,T(x rrrr

),y, x(Rrr

)y,(x

rr

Fixpunkt umRotation

Page 4: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 4

15

3D Transformationen

Rechtshändiges System:

x

y

z

Positive Rotation um eine Koordinatenachse:

Rotation gegen den Uhrzeigersinn, wenn man vom

Positiven in die Richtung zum Ursprung schaut.

16

3D Translation T(tx,ty,tz)

1

z

y

x

1000

100

010

001

1

z'

y'

x'

z

y

x

t

t

t

Page 5: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 5

17

3D Rotation um die x-, y-, z- Achse

PRPZYX

,,

'

cos 0 sin 0

0 1 0 0

sin 0 cos 0

0 0 0 1

YR

1000

0cossin0

0sincos0

0001

XR

1000

0100

00cossin

00sincos

Z

R

18

3D Rotation um eine beliebige Achse

1. Verschiebe das Objekt so, dass Rotationsachse durch den

Ursprung geht.

2. Rotiere das Objekt so, daß die Rotationsachse mit einer der

Koordinatenachsen zusammen fällt.

3. Rotiere das Objekt um dem gewünschten Winkel.

4. Invertiere die Rotation aus Schritt 2.

5. Invertiere die Translation aus Schritt 1.

Page 6: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 6

19

Wechsel der Koordinatensystem

Transformationen lassen sich auch als ein Wechsel der

Koordinatensysteme verstehen.

Objekte in Szenen haben meist ihr eigenes Koordinatensystem,

sollen aber in ein gemeinsames Weltkoordinaten-system

eingebunden werden. (Beispiel: Fahrrad mit rotierenden Rädern)

20

Beispiel

Ein Rad rolle auf dem Boden und drehe sich dabei um den Winkel . Wo

befindet sich dann ein Punkt P auf dem Reifen in Weltkoordinaten?

( ) ( ) ( )

' ' , 0, 0

welt rad rad

welt rad welt radP M P M T r R P

''

oder

)(

''

)'(

'

)( rad

radradradwelt

rad

radwelt

weltPRMMPMP

R)0,0,(' )()( r a dr a d

PrTP In Radkoordinaten

( ') ( )

' R

rad radP P In den neuen Radkoordinaten

)()( r a d

r a dwel t

wel tPMP

In Weltkoordinaten

Page 7: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 7

Freie Bewegung

von 3D Objekten im 3D Raum

22

Parameterisierung der Objektorientierung

Problem : Wie lässt sich die Orientierung eines Objekts beschreiben?

Das heißt, wie ist der Raum aller möglichen Orientierung zu

Parameterisieren?

Oder, wie ist zwischen zwei Orientierungen zu interpolieren?

Eine Möglichkeit: Eulerwinkel, die definierte aneinander Reihung von

Basisrotationen!

Page 8: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 8

23

3D Rotationen um die x-, y-, z- Achsen

2 2

2

2 2

cos 0 sin 0

0 1 0 0

sin 0 cos 0

0 0 0 1

YR

1000

0100

00cossin

00sincos

33

33

3

Z

R

1000

0cossin0

0sincos0

0001

11

11

1

XR

123321 ,, XYZ RRRR

Jede beliebige Rotation lässt sich durch

hintereinander Reihung von 3 Basisrotationen

beschreiben.

3 2 2 3 2

1 2 3 1 3 1 2 3 1 3 1 2

1 2 3

1 2 3 1 3 1 2 3 1 3 1 2

i

0

0θ ,θ ,θ

0

0 0 0 1

mit

cos θ und sin θi i i

c c c s s

s s c c s s s s c c s cR

c s c s s c s s s c c c

c s

24

Eulerwinkel sind unpraktisch - erster Grund!

1. Es ist schwierig eine bestimmte Rotation einzustellen.

Es werden zwar die Punkte eines Objektes rotiert, aber nicht

seine Koordinatenachsen!

1331

2,

2,

XYZRRRR

z.B.

Hat nur zwei Freiheitsgrade!

y

xz

x‘

Page 9: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 9

25

?

Eulerwinkel sind unpraktisch - zweiter Grund!

2. Für Key-frame Technik nicht nutzbar!

Wie soll zwischen zwei Positionen interpoliert werden?

Es gibt viele verschiedene Wege!

y

z x

y

xzoder ?

26

Euler‘s Theorem

Jede beliebige Rotation läßt sich durch eine

einzige Rotation um eine Achse n beschreiben.

321 ,, R

nRR

n

,,, :g ilt d a ß

, ,, d .h .

321

321

Page 10: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 10

Transformation als Funktion eines Winkels

Rrr

n

r || = ( n • r ) n

r = r - ( n • r ) n

Zerlege r = r || + r

r

r ||

Konstruiere v in der Rotationsebene

v = n r = n r

𝑅 𝜃1, 𝜃2, 𝜃3 • 𝑟 = 𝑅 𝜃, 𝑛 • 𝑟

r

v Rrda v , r , Rr planar

=> R r = cos( ) r + sin ( ) v

=> R r = R r|| + R r = r|| + R r

→ → →

Transformation als Funktion eines Winkels

R r = R r|| + R r = r|| + R r

R r = r || + R r

R r = ( n • r ) n + R r

R r = ( n • r ) n + cos( ) r + sin ( ) v

R r = ( n • r ) n + cos( ) (r - ( n • r ) n) + sin ( ) v

R r = ( n • r ) n + cos( ) (r - ( n • r ) n) + sin ( ) (n r)

R r = cos( ) r + ( 1 - cos( ) ) n ( r • n) + sin ( ) (n r)

Page 11: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 11

EINSCHUB: Mathematik Repetitorium

Komplexe Zahlen

Quaternionen

30

Komplexe Zahlen ( Repetitorium)

Eine komplexe Zahl z ist ein geordnetes Paar reeller Zahlen:

, mit ,

wobei

Re( ) als Realteil von z und

Im als Imaginärteil von z bezeichnet wird.

mit de

z x y x y

x z

y z

r Einheit (0, 1) i

12212121 , yxyxyyxx

2

2

2

2

2112

2

2

2

2

2121,

yx

yxyx

yx

yyxx

2121 , yyxx

2121 , yyxx

2211,x ,x

:lnRech en reg e

yy

2211 ,x ,x yy

2211 ,x ,x yy

2211 ,x ,x yy

reale x-Achse

imaginäre

y-Achse

z

Page 12: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 12

31

Komplexe Zahlen (2)

1- i

2

2

2

2

2112

2

2

2

2

2121

22

21

2

1,

yx

yxyx

yx

yyxx

zz

zz

z

z

0 , 1 0 ,1 :il Realte

:tenEig en s ch af

2

iy x z o d e r ,x z y

011 0 :ilI m a g in ä r t e22

, - , i

i yxzzy zm it z o d e r x z 22

32

Komplexe Zahlen (Polarkoordinaten)

iy x z o d e r ,x z b is h e r y

21

21

2

1

2

1

2121

z

i

i

er

r

z

z

errz

reale x-Achse

imaginäre

y-Achse

z = (x,y)

r

z = (r,)

i r e z

α iα r z r

s incosoder , z

dinaten Polarkoorin

Page 13: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 13

33

Quaternionen (Hamilton 1843)

2 2 2

ein Quaternion sei

mit 1

q

q a ib jc kd i j k

ij k ji

jk i kj

ki j ik

k dj ci baq

qq 12

222|||q| vs qq

vvssv,sv,sqq 2121221121 ,

→ → → →

v,sv,sqq 221121 → →

,m i t , o d e r vsq k vj vi vsvsq zyx

→ →

1 2 1 2 1 2 2 1 1 2 - , s s v v s v s v v v

→ → → → → →

1 1 2 3 3 2

2 2 3 1 1 3

3 3 1 2 2 1

x y x y x y

x y x y x y

x y x y x y

x y y x

→ → →→

34

1 2 1 2 - , s s v v

→ →

Quaternionen (Multiplikation)

)()( 22221111 zyxzyx k vj vi vs k vj vi vs

v,sv,sqq 221121

1 2 2 2 2

1 2 2 2 2

1 2 2 2 2

1 2 2 2 2

( ) ( )

( )

( )

( )

x y z

x x y z

y x y z

z x y z

s s iv jv kv

iv s iv jv kv

jv s iv jv kv

kv s iv jv kv

2 2 2 1

i j k

ij k ji

jk i kj

ki j ik

1 2 1 2 1 2 1 2

1 2 2 1 1 2 1 2

1 2 2 1 1 2 1 2

1 2 2 1 1 2 1 2

( )

( )

( )

x x y y z z

x x y z z y

y y x z z x

z z x y y x

s s v v v v v v

i s v s v v v v v

j s v s v v v v v

k s v s v v v v v

vs 21

→ →

12 vs

21 vv

→ →

Page 14: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 14

35

Von Quaternionen zu Rotationen

) ( 1mit vs ,q und

,0 s ei

1qqqq

r p

R r = cos( ) r + ( 1 - cos( ) ) n ( r • n) + sin ( ) (n r)

R

definiere

1

q

qpqp

nqq

s in,c o s 1d a →

22,0

2rvsrvvrvvs

→ → → → →→→→

rnrnnrp

s inc o s2s in2s inc o s,0 R222

q

→ →→ →→→

rnrnnrp

2s in2c o s12c o s,0 R q

→ → →→ → →

-1

D er O p e ra tor q m it cos , s in b e sch re ib t e in e R ota tion !!2 2

q q n

36

Quaternionen als Rotationen

0,0,1,00,0,12

s in,2

cos )(

xXqR

q" q' q

Euler's Theorem folgt implizit aus der Quaternionenalgebra,

da das Produkt von 2 Einheits Quaternionen wiederum ein

Quarternion der Länge eins ist.

R R R mit " '

q q q

Beispiel:

1,0,00,1,0,0

0,0,1,0

1,0,0,00,1,0,0 zy

qq

y

xz

?

y

z x

)( )( YZ RR

Page 15: 3D Computer Graphik: Transformationen in 3D · Page 1 3D Computer Graphik: Transformationen in 3D 10 Scan Conversion –Graphics Pipeline for every object in the scene shade the vertices

Page 15

37

Interpolation von Quaternionen

1. Lineare Interpolation im Quaternionenraum

BAP

AB qtt q 1tq

BA ?

2. Lineare Interpolation im Quaternionenraum mit |P|=1

s in

s in

s in

s in P c o s PA u n d c o s BA BA

Spherische Interpolation zwischen , mit cos

A B A Bq q q q

sin

sin

sin

)1sin(tq

t

BAq

tq

38

Quaternion zu Rotationsmatrix

2 2

2 2

2 2

1 2 2 2 0

2 1 2 2 0

2 2 1 2 0

0 0 0 1

y z x y z x z y

x y z x z y z x

x z y y z x x y

v v v v sv v v sv

v v sv v v v v svR q

v v sv v v sv v v

S ei eine E inheits-Q uatern ion m it s ,v und 1

dann berechnet sich d ie en tsp rechende R otationsm atrix zu

q q qq

R