Presentation is loading. Please wait.

Presentation is loading. Please wait.

Computer Graphics 3D Transformations. 3D Translation Remembering 2D transformations -> 3x3 matrices, take a wild guess what happens to 3D transformations.

Similar presentations


Presentation on theme: "Computer Graphics 3D Transformations. 3D Translation Remembering 2D transformations -> 3x3 matrices, take a wild guess what happens to 3D transformations."— Presentation transcript:

1 Computer Graphics 3D Transformations

2 3D Translation Remembering 2D transformations -> 3x3 matrices, take a wild guess what happens to 3D transformations. T=(t x, t y, t z )

3 3D Scale S=(s x, s y, s z )

4 3D Rotations R=(r x, r y, r z,  ) What does a rotation in 3D mean? Q: How do we specify a rotation? A: We give a vector to rotate about, and a theta that describes how much we rotate.  Q: Since 2D is sort of like a special case of 3D, what is the vector we’ve been rotating about in 2D?

5 Rotations about the Z axis R=(0,0,1,  ) What do you think the rotation matrix is for rotations about the z axis? 

6 Rotations about the X axis R=(1,0,0,  ) Let’s look at the other axis rotations 

7 Rotations about the Y axis R=(0,1,0,  ) 

8 Rotations around a principle axis

9 Rotations for an arbitrary axis    Steps: 1. Normalize vector u 2. Compute  3. Compute  4. Create rotation matrix u

10 Vector Normalization Given a vector v, we want to create a unit vector that has a magnitude of 1 and has the same direction as v. Let’s do an example.

11 Computing the Rotation Matrix 1. Normalize u ( the vector we are rotating around ) 2. Compute R x (  x ) 3. Compute R y (  y ) 4. Generate Rotation Matrix

12 Unit vectors are made of direction cosines: Rotations for an arbitrary axis

13

14

15 Rotation Matrix

16 Axis-Angle Rotations in OpenGL glRotatef( angle, x, y, z);

17 Euler Angles More intuitive: represent rotations by 3 angles, one for each axis glRotatef(anglex,1,0,0); glRotatef(angley,0,1,0); glRotatef(anglez,0,0,1); Think: if we have a torus unstranformed at the origin, what will the torus look like if you have anglex=90, angley=90, and anglez=90 Transformed

18 Gimbal Lock Rotate around these How can we gain altitude here? Initial orientation (x=blue, y=green, z = red)

19 Gimbal Lock in OpenGL What is the problem here? glRotatef(anglex,1,0,0); glRotatef(angley,0,1,0); glRotatef(anglez,0,0,1);

20 Avoiding Gimbal Lock: Quaternions Quaternions represent 3D rotations in 4D using imaginary numbers – a 4-tuple Q = (w,x,y,z) Convert Angle-axis -> Quaternion ( ,x,y,z) -> ( cos(  /2), xsin(  /2), ysin(  /2), zsin(  /2) ) Why quaternions? No gimbal lock Smooth interpolation between rotations (for animation)

21 Quaternions Quaternions have rules for multiplication, inversion, etc See: http://www.j3d.org/matrix_faq/matrfaq_latest.html Typical usage: Convert from euler, matrix, or angle-axis Do rotations Convert to angle-axis or matrix

22 What is going on here? frame1 frame2 frame3

23 gluLookAt Orients and positions the “camera” gluLookat( eyex, eyey, eyez, centerx, centery, centerz, upx,upy, upz); eye – the position of the camera in world coordinates center – the camera is pointed at this point up – the direction defined to be up for the camera

24 gluLookAt – in matrix form

25 Cross Products Given two vectors, the cross product returns a vector that is perpendicular to the plane of the two vectors and with magnitude equal to the area of the parallelogram formed by the two vectors.  u

26 Different Phases: Model Definition

27 Different Phases: Transformations

28 Different Phases: Projection

29

30 Different Phases: Rasterization

31 Different Phases: Scan Conversion

32 What are the steps needed?

33 Let’s Examine the Camera If I gave you a world, and said I want to “render” it from another viewpoint, what information do I have to give you? –Position –Which way we are looking –Which way is “up” –Aspect Ratio –Field of View –Near and Far

34 Camera View Direction View Up View Right View Normal

35 Camera View Up View Right What are the vectors?

36 Graphics Pipeline So Far Object Object Coordinates Transformation Object -> World World World Coordinates Projection Xform World -> Projection Camera Projection Coordinates Screen Device Coordinates Normalize Xform & Clipping Projection -> Normalized Viewport Normalized Coordinates Viewport Transform Normalized -> Device

37 Transformation World->Camera View Direction View Up View Right View Normal

38 Transformation World->Camera View Up = V View Right = u View Direction = -N


Download ppt "Computer Graphics 3D Transformations. 3D Translation Remembering 2D transformations -> 3x3 matrices, take a wild guess what happens to 3D transformations."

Similar presentations


Ads by Google