Presentation is loading. Please wait.

Presentation is loading. Please wait.

Three-Dimensional Graphics

Similar presentations


Presentation on theme: "Three-Dimensional Graphics"— Presentation transcript:

1 Three-Dimensional Graphics
A 3D point (x,y,z) – x,y, and Z coordinates We will still use column vectors to represent points Homogeneous coordinates of a 3D point (x,y,z,1) Transformation will be performed using 4x4 matrix T y x z

2 Right hand coordinate system
X x Y = Z ; Y x Z = X; Z x X = Y; Y y z x +z x Left hand coordinate system Right hand coordinate system

3 3D transformation Very similar to 2D transformation Translation
x’ = x + tx; y’ = y + ty; z’ = z + tz X’ tx X Y’ ty Y Z’ tz Z OpenGL - glTranslated(tx, ty, tz); = homogeneous coordinates

4 3D transformation Scaling X’ = X * Sx; Y’ = Y * Sy; Z’ = Z * Sz
X’ Sx X Y’ Sy Y Z’ Sz Z OpenGL - glScaled(Sx, Sy, Sz); =

5 3D transformation look down negative axis)
3D rotation is done around a rotation axis Fundamental rotations – rotate about x, y, or z axes Counter-clockwise rotation is referred to as a positive rotation (when you look down negative axis) x y z +

6 3D transformation Rotation about Z – similar to 2D rotation
x’ = x cos(q) – y sin(q) y’ = x sin(q) + y cos(q) z’ = z y x + cos(q) -sin(q) sin(q) cos(q) z OpenGL - glRotatef(q, 0,0,1)

7 3D transformation Rotation about y z’ = z cos(q) – x sin(q)
+ Rotation about y z’ = z cos(q) – x sin(q) x’ = z sin(q) + x cos(q) y’ = y cos(q) sin(q) 0 -sin(q) 0 cos(q) 0 z x y + OpenGL - glRotatef(q, 0,1,0)

8 3D transformation Rotation about x y’ = y cos(q) – z sin(q)
+ Rotation about x y’ = y cos(q) – z sin(q) z’ = y sin(q) + z cos(q) x’ = x cos(q) -sin(q) 0 sin(q) cos(q) 0 y z x + OpenGL - glRotatef(q, 1,0,0)

9 3D transformation Arbitrary rotation axis (rx,ry,rz)
Text pp. 193 explains how to do it We omit the detail here Use OpenGL: glRotatef(angle, rx, ry, rz) Can fill in all 9 entries of the rotation matrix. x z y (rx, ry, rz)

10 OpenGL Transformation Composition
A global modeling transformation matrix (GL_MODELVIEW, called it M here) glMatrixMode(GL_MODELVIEW) The user is responsible to reset it if necessary glLoadIdentity() -> M = 0 1 0 0 0 1

11 OpenGL Transformation Composition
Matrices for performing user-specified transformations are multiplied to the current matrix For example, glTranslated(1,1 0); M = M x All the vertices defined within glBegin() / glEnd() will first go through the transformation (modeling transformation) P’ = M x P

12 Transformation Pipeline
Object Local Coordinates Object World Coordinates Modeling transformation


Download ppt "Three-Dimensional Graphics"

Similar presentations


Ads by Google