51
Computer Graphics Bing-Yu Chen National Taiwan University

Computer Graphics

Embed Size (px)

DESCRIPTION

Computer Graphics. Bing-Yu Chen National Taiwan University. Geometrical Transformations. Mathematical Preliminaries 2D Transformations Homogeneous Coordinates 3D Transformations Quaternions. Vectors. A vector is an entity that possesses magnitude and direction . - PowerPoint PPT Presentation

Citation preview

Page 1: Computer Graphics

Computer Graphics

Bing-Yu ChenNational Taiwan University

Page 2: Computer Graphics

Geometrical Transformations

Mathematical Preliminaries 2D Transformations Homogeneous Coordinates 3D Transformations Quaternions

2

Page 3: Computer Graphics

Vectors

A vector is an entity that possesses magnitude and direction.

A ray (directed line segment), that possesses position, magnitude, and direction.

1 1 1( , , )x y z

2 2 2( , , )x y z

2 1 2 1 2 1( , , )v x x y y z z

3

Page 4: Computer Graphics

Vectors an n-tuple of real numbers (scalars) two operations: addition & multiplication Commutative Laws

a + b = b + a a • b = b • a

Identities a + 0 = a a • 1 = a

Associative Laws (a + b) + c = a + (b + c) (a • b) • c = a • (b • c)

Distributive Laws a • (b + c) = a • b + a • c (a + b) • c = a • c + b • c

Inverse a + b = 0 b = -a

4

Page 5: Computer Graphics

Addition of Vectors parallelogram rule

7

6

3

6

3

2

1

3

1

x

y

w

vv w

5

Page 6: Computer Graphics

The Vector Dot Product

length =

ny

y

v 1

nn

n

yxyxvu

x

x

u

11

1

uuu

6

Page 7: Computer Graphics

Properties of the Dot Product symmetric

nondegenerate

only when bilinear

unit vector (normalizing)

angle between the vectors

0 vv

)()( wvuvwuv

vwwv

0v

vvv /

wvwv /cos 1

7

Page 8: Computer Graphics

Projection

cosu w

v ww

v w

v w

w

u

v

8

Page 9: Computer Graphics

Cross Product of Vectors

Definition

where are standard unit vectors

Application A normal vector to a polygon is

calculated from 3 (non-collinear) vertices of the polygon.

2 3 3 2 3 1 1 3 1 2 2 1( ) ( ) ( )

x v w

v w v w i v w v w i v w v w k

(1,0,0), (0,1,0), (0,0,1)i j k 1 2N v v N

1v

2v

9

Page 10: Computer Graphics

Matrices

matrix multiplication identity matrix determinant cross product matrix transpose matrix inverse

10

Page 11: Computer Graphics

Matrix Basics

Definition

Transpose

Addition

11 1

1

( )n

ij

m mn

a a

a

a a

A

TC A11 1

1

n

ij ji

m nm

a a

c a

a a

C

C A B ij ij ijc a b

11

Page 12: Computer Graphics

Matrix Basics

Scalar-matrix multiplication

Matrix-matrix multiplication

Matrix multiplication arenot commutative

C A

C AB1

n

ij ik kjk

c a b

ij ijc a

AB BA12

Page 13: Computer Graphics

General Transformations

A transformation maps points to other points and/or vectors to other vectors

( )v T u

( )Q T PQ

P

T

u v

13

Page 14: Computer Graphics

Pipeline Implementation

transformation rasterizer

vertices vertices pixels

framebuffer

(from application program)

uv

u

v

( )T u( )T v

( )T u

( )T v

( )T u

( )T v

T

14

Page 15: Computer Graphics

Representation

We can represent a point,in the plane as a column vector

as a row vector

x

y

x y

( , )x yp

15

Page 16: Computer Graphics

2D Transformations

2D Translation 2D Scaling 2D Reflection 2D Shearing 2D Rotation

16

Page 17: Computer Graphics

Translation Move (translate, displace) a point to a new

location

Displacement determined by a vector d Three degrees of freedom P’=P+d

P

P’

d

17

Page 18: Computer Graphics

2D Translation

y

x

(4,5) (7,5)

y

x

(7,1) (10,1)

y

x

d

d

y

x

y

xTPP

'

''

18

Page 19: Computer Graphics

2D Scaling

y

x

(4,5) (7,5)

y

x

(2,5/4)

(7/2,5/4)

y

x

s

s

y

xPSP

y

x

0

0

'

''

19

Page 20: Computer Graphics

2D Reflection

y

x

(4,5) (7,5)

y

x

(-7,5) (-4,5)

'

' 1 0

' 0 1

xP RE P

x x

y y

20

Page 21: Computer Graphics

2D Shearing

'

' 1

' 0 1

x

x

P SH P

x sh x

y y

y

x

(4,5) (7,5)

y

x

(9,5) (12,5)

21

Page 22: Computer Graphics

2D Rotation

y

x

(4,5) (7,5)

y

x

(2.1,4.9)

(4.9,7.8)

y

x

y

xPRP

cossin

sincos

'

''

22

Page 23: Computer Graphics

2D Rotation Consider rotation about the origin by q

degrees radius stays the same, angle increases

by q

x’=x cos q –y sin qy’ = x sin q + y cos q

x = r cos fy = r sin f

x’ = r cos ( + )f qy’ = r sin ( + )f q

23

Page 24: Computer Graphics

Limitations of a 2X2 matrix

Scaling Rotation Reflection Shearing

What do we miss?

24

Page 25: Computer Graphics

Homogeneous Coordinates

Why & What ishomogeneous coordinates ? if points are expressed in homogeneous

coordinates, all transformations can be treated as multiplications.

),,(),( Wyxyx usually 1can not be 0

25

Page 26: Computer Graphics

Homogeneous Coordinates

X

Y

W P

W=1 plane

26

Page 27: Computer Graphics

Homogeneous Coordinates for2D Translation

y

x

d

d

y

x

y

xTPP

'

''

1100

10

01

1

'

'),('

y

x

d

d

y

xPddTP

y

x

yx

PddTP

PddTP

yx

yx

),(

),(

22

11

27

Page 28: Computer Graphics

Homogeneous Coordinates for2D Translation

100

10

01

100

10

01

100

10

01

),(),(

21

21

1

1

2

2

1122

yy

xx

y

x

y

x

yxyx

dd

dd

d

d

d

d

ddTddT

PddTddT

PddTddTP

yxyx

yxyx

)),(),((

)),((),(

1122

1122

28

Page 29: Computer Graphics

Homogeneous Coordinates for2D Scaling

y

x

s

s

y

xPSP

y

x

0

0

'

''

1100

00

00

1

'

'),('

y

x

s

s

y

xPssSP

y

x

yx

100

00

00

100

00

00

100

00

00

),(),(

21

21

1

1

2

2

1122

yy

xx

y

x

y

x

yxyx

ss

ss

s

s

s

s

ssSssS

29

Page 30: Computer Graphics

Homogeneous Coordinates for2D Rotation

1100

0cossin

0sincos

1

'

')('

y

x

y

xPRP

y

x

y

xPRP

cossin

sincos

'

''

30

Page 31: Computer Graphics

Properties of Transformations

rigid-body transformations rotation & translation preserving angles and lengths

affine transformations rotation & translation & scaling preserving parallelism of lines

31

Page 32: Computer Graphics

Composition of 2D Transformations

Original After translationof P1 to origin

After rotation After translationto original P1

P1 P1

x

y

x

y

x

y

x

y

),( 11 yxT ),( 11 yxT)(R),( 111 yxP

32

Page 33: Computer Graphics

Composition of 2D Transformations

100

sin)cos1(cossin

sin)cos1(sincos

100

10

01

100

0cossin

0sincos

100

10

01

),()(),(

11

11

1

1

1

1

1111

xy

yx

y

x

y

x

yxTRyxT

33

Page 34: Computer Graphics

The Window-to-Viewport Transformation

Viewport 1

Viewport 2

Window

World coordinates Screen coordinates

Maximum rangeof screen coordinates

34

Page 35: Computer Graphics

The Window-to-Viewport Transformation

Window inworld coordinates

Translated toorigin

Scaled tosize of viewport

Translated tofinal position

x

y

x

y

u

v

u

v

(xmin,ymin)

(xmax,ymax)

(umin,vmin)

(umax,vmax)

Maximumrange ofscreencoordinates

),(),(),( minminminmax

minmax

minmax

minmaxminminwv yxT

yy

vv

xx

uuSvuTM

35

Page 36: Computer Graphics

Right-handed Coordinate System

x

y

z

36

Page 37: Computer Graphics

3D Translation & 3D Scaling

1000

100

010

001

),,(z

y

x

zyx d

d

d

dddT

1000

000

000

000

),,(z

y

x

zyx s

s

s

sssS

37

Page 38: Computer Graphics

3D Reflection & 3D Shearing

1000

0100

010

001

),( y

x

yxxy

sh

sh

shshSH

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

xRE

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

yRE

38

Page 39: Computer Graphics

3D Rotations

1000

0100

00cossin

00sincos

)(

zR

1000

0cossin0

0sincos0

0001

)(

xR

1000

0cos0sin

0010

0sin0cos

)(

yR

( )zR ( )xR

( )yR

x

y

z39

Page 40: Computer Graphics

Rotation About a Fixed Point other than the Origin Move fixed point to origin Rotate Move fixed point back ( ) ( ) ( )f fM T P R T P

40

Page 41: Computer Graphics

Rotation About an Arbitrary Axis A rotation by about an arbitrary axis can

be decomposed into the concatenation of rotations about the , , and axes , , are called the Euler angles

Note that rotations do not commute We can use rotations in another order but with

different angles.

( ) ( ) ( ) ( )z z y y x xR R R R x

y

z

v

x y z

x y z

41

Page 42: Computer Graphics

Euler Angles An Euler angle is a rotation

about a single axis. A rotation is described as a

sequence of rotations about three mutually orthogonal coordinates axes fixed in space X-roll, Y-roll, Z-roll

There are 6 possible ways to define a rotation. 3!

42

Page 43: Computer Graphics

Euler Angles & Interpolation

Interpolation happening on each angle Multiple routes for interpolation More keys for constrains

z

x

y

Rz

x

y

R

43

Page 44: Computer Graphics

Interpolating Euler Angles Natural orientation representation:

3 angles for 3 degrees of freedom Unnatural interpolation:

A rotation of 90o first around Z and then around Y = 120o around (1, 1, 1).

But 30o around Z then Y differs from 40o around (1, 1, 1).

a

b

c

a

cb

ab

c

=a

b

cc

b

a

a

b

c

a

b

c

a

b

c44

Page 45: Computer Graphics

Smooth Rotation From a practical standpoint, we are often want to

use transformations to move and reorient an object smoothly Problem: find a sequence of model-view matrices

, ,…, so that when they are applied successively to one or more objects we see a smooth transition

For orientating an object, we can use the fact that every rotation corresponds to part of a great circle on a sphere Find the axis of rotation and angle Virtual trackball

0M1M nM

45

Page 46: Computer Graphics

Incremental Rotation Consider the two approaches

For a sequence of rotation matrices , ,…, , find the Euler angles for each and use Not very efficient

Use the final positions to determine the axis and angle of rotation, then increment only the angle

Quaternions can be more efficient than either

0R1R nR

i iz iy ixR R R R

46

Page 47: Computer Graphics

Solution:Quaternion Interpolation

Interpolate orientation on the unit sphere

By analogy: 1-, 2-, 3-DOF rotations as constrained points on 1-, 2-, 3-spheres

47

Page 48: Computer Graphics

1D-Sphere and Complex Plane

Interpolate orientation in 2D 1 angle

but messy because modulo Use interpolation in

(complex) 2D plane Orientation = complex

argument of the number

0

1

48

2

Page 49: Computer Graphics

Quaternions

Quaternions are unit vectors on 3-sphere (in 4D)

Right-hand rotation of radians about is often noted

Requires one real and three imaginary components , , where is called scalar and is called vector

0 1 2 3 0 1 2 3[ , ]; , ( , , )q q q q q q q q q i j k w v w v2 2 2 1 i j k ijk

vw

i j k

v

v[cos( / 2),sin( / 2) ]q v

[ , ]w v

49

Page 50: Computer Graphics

Basic Operations Using Quaternions Addition Multiplication Conjugate Length Norm Inverse Unit Quaternion

is a unit quaternion if and then Identity

[1, (0, 0, 0)] (when involving multiplication) [0, (0, 0, 0)] (when involving addition)

[ , ]q q w w v v

[ , ]q q w w v v v v w v w v* [ , ]q w v

2 2 1/ 2| | ( | | )q w v2 2 2N( ) | | | |q q w v

1 * 2 */ | | / N( )q q q q q

q | | 1q 1 *q q

51

Page 51: Computer Graphics

SLERP-Spherical Linear intERPolation

Interpolate between two quaternion rotations along the shortest arc.

where

If two orientations are too close, use linear interpolation to avoid any divisions by zero.

sin((1 ) ) sin( )SLERP( , , )

sin( )

p t q tp q t

cos( ) p q p q w w v v

p

qt

55