1 lecture 7 geometrical transformations: 2d transformations 3d transformations matrix representation...

Post on 19-Dec-2015

228 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Lecture 7

Geometrical Transformations:

2D transformations

3D transformations

Matrix representation

OpenGL functions

2

Rendering Pipeline

3

Rendering Pipeline

4

Rendering Pipeline

5

Rendering Pipeline

6

Basic 2D Transformations

7

Basic 2D Transformations

8

Basic 2D Transformations

9

Matrix representation

10

Combination of 2D transformations

11

2x2 matrices

12

2x2 matrices

13

2x2 matrices

14

2x2 matrices

15

2x2 matrices

Only rotation, scaling, and shear can be represented in 2x2 matrix form.

These are linear transformations.

16

Linear transformations

17

2D Translation: 3x3 matrix

18

Homogeneous coordinates

19

Basic 2D transformations in homogeneous coordinates

20

Affine transformations

21

Projections

22

Matrix compositions

23

Matrix compositions

24

Matrix compositions

25

3D transformations

26

Basic 3D transformations

27

Basic 3D transformations

28

OpenGL Matrix Stacks

OpenGL works with stacks of 4x4 matrices:

glMatrixMode(enum mode);

mode:

GL_MODELVIEWGL_PROJECTIONGL_TEXTURE

Specifies whether the modelview, projection or texture matrix will be modified.

29

OpenGL Matrix Stacks

glLoadIdentity(void);

Clears the currently modifiable matrix for future transformation instructions.

Typically we call this instruction before specifying modeling, viewing or projection transformations.

30

OpenGL Matrix Stacks

Manipulating stacks: the OpenGL calls to push, pop, or multiply top of stack

glLoadMatrix(void);

glMultMatrix(void);

glPushMatrix(void); the topmost matrix is copied

glPopMatrix(void); the topmost matrix is destroyed

All vertices of the object are multiplied by the matrix.

31

OpenGL Matrix Stacks

Manipulating stacks: the OpenGL calls to push, pop, or multiply top of stack

glLoadMatrix(const type *m);

glMultMatrix(const type *m);

m1 m5 m9 m13

m2 m6 m10 m14

m3 m7 m11 m15

m4 m8 m12 m16

32

OpenGL Matrix Stacks

Manipulating stacks: the OpenGL calls to push, pop, or multiply top of stack

glPushMatrix(void); the topmost matrix is copied

glPopMatrix(void); the topmost matrix is destroyed

All vertices of the object are multiplied by the matrix.

33

OpenGL Transformations

glTranslate(TYPE x, TYPE y, TYPE z);

Multiplies the current matrix by a translation matrix.

glRotate(TYPE angle, TYPE x, TYPE y, TYPE z);

Multiplies the current matrix by a rotation matrix.

glScale(TYPE x, TYPE y, TYPE z);

Multiplies the current matrix by a scaling matrix.

34

Summary

Types of transformations:– linear– affine– projective

Representation of transformations:– 3x3 and 4x4 matrices– homogeneous coordinates

Compositions of transformations OpenGL Matrix Instructions

top related