1 / 48

Review: Math (Ch 4)

Review: Math (Ch 4). General Purpose Graphics. API for use in high level languages Appl.program ------- Graph.API ------- Graph.hardware Primitives and Attributes Geometric and modeling transformations Viewing transformations Hierarchical modeling and manipulation

aglaia
Download Presentation

Review: Math (Ch 4)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Review: Math (Ch 4) Hofstra University – CSC290B

  2. General Purpose Graphics • API for use in high level languages • Appl.program ------- Graph.API ------- Graph.hardware • Primitives and Attributes • Geometric and modeling transformations • Viewing transformations • Hierarchical modeling and manipulation • Raster (buffer) oriented transformations • Control functions Hofstra University – CSC290B

  3. Fundamental Operations • Transformation – changes in coordinate systems through matrix operations • Clipping – adjusting our view of the world • Projection – from 3D to 2D • Rasterization – pixels in the frame buffer Hofstra University – CSC290B

  4. Geometric Transformations • Work in Euclidean affine space: vectors, + , multiplication with scalars, 0 linear combinations, linear independence, basis linear maps (transformations), change of basis points, point+vector, point –point affine combinations, frame inner product, distances, angles, unit vector, perpendicular orthonormal frame, change of frames, affine maps Hofstra University – CSC290B

  5. Review: Affine Transformations change objects so programmer can: • Model objects in simple configurations • Make multiple copies of objects • Animate objects, move or deform over time Hofstra University – CSC290B

  6. Vectors • Directed line segment that connects points • Does not have a fixed position Hofstra University – CSC290B

  7. Vectors head-to-tail rule Linear independence, basis, linear maps Hofstra University – CSC290B

  8. Geometric ADTs • Scalars, Points and Vectors are members of mathematical sets • Abstract spaces for representing and manipulating these sets of objects • Linear Vector Space – scalars & vectors • Affine Space – adds the point • Euclidean Space – add concept of distance and angle Hofstra University – CSC290B

  9. Geometric ADTs • Operations that relate points and vectors • Subtraction of two points yields a vector:v = P – Q • Point-vector addition yields a point:P = v + Q Hofstra University – CSC290B

  10. Geometric ADTs: Lines • Consider all points of the formP () = P0 + dwhere P0 is an arbitrary point, d is an arbitrary vector, and  is a scalar • P () is a point for any value of  • Called the parametric form of the line • Generate points on the line by varying the parameter  • For non-negative values, we get a ray emanating from P0 in the direction of d Hofstra University – CSC290B

  11. Geometric ADTs: Affine Sums • For any point Q, vector v, and positive scalar  ,P= Q + vdescribes all points on the line from Q in the direction of v • Affine addition is characterized by the addition of two arbitrary points and multiplication of a point by a scalar,P= R + Q where 1 + 2 = 1 Hofstra University – CSC290B

  12. Geometric ADTs: Dot Product • We are concerned about the orientation between two vectors • Dot (Inner) Product of vectors u and v is written u v • If u v= 0, then u and v are orthogonal • In Euclidean space, the square of the magnitude of a vector is |u|2 = u u • The angle between two vectors is given by Hofstra University – CSC290B

  13. Geometric ADTs: Cross Product • Cross Product – is determined by a third vector n that is orthogonal to two other vectors v and u. It is denoted asn = u v Hofstra University – CSC290B

  14. 3D Primitives Curves Surfaces Volume Objects Hofstra University – CSC290B

  15. 3D Primitves Objects With Good Characteristics • Described by their surfaces; thought to be hollow • Specified through a set of vertices in 3D • Composed of or approximated by flat convex polygons Hofstra University – CSC290B

  16. Coordinate Systems Given a frame (P0, v1, v2, v3), a vector w: And in the same frame a point P: Hofstra University – CSC290B

  17. Changes of Basis • How do we represent the vector if we change the basis? • Suppose the {v1,v2,v3} and {u1,u2,u3} are two bases. • Basis vector in second set can be represented in terms of the first basis Hofstra University – CSC290B

  18. Change of Basis in Linear Space U = MV Hofstra University – CSC290B

  19. Change of Basis In V basis, the vector is represented by a, and in U by b U=MV, b’U=b’MV=a’V, a’=b’M, a=M’b Hofstra University – CSC290B

  20. Homogeneous Coordinates Represent a point at (x,y,z) wrt a 3D frame determined by (P0, v1, v2, v3 ) with a column matrix Where x,y,z are the components of the basis vectors for this point, so that and represent a vector in the same form Hofstra University – CSC290B

  21. Homogeneous Coordinates • Maintain distinction between points and vectors • Use four dimensional column matrices to represent both points and vectors in three dimensions • If we assume a frame specified by (v1, v2, v3, P0), then any point P can be written Hofstra University – CSC290B

  22. Homogeneous Coordinates • …and if we define multiplication of a point by the scalars 0 and 1 as0 ·P = 0, 1 . P = P, • then we can use a matrix product to express this relation formally as homogeneous-coordinate representation Hofstra University – CSC290B

  23. Homogeneous Coordinates Point Vector We carry out operations on points and vectors using their homogeneous-coordinate representation and ordinary matrix algebra Hofstra University – CSC290B

  24. Homogeneous Coordinates two frames change of frames matrix representation All affine transformations can be represented as matrix multiplications in homogeneous coordinates Hofstra University – CSC290B

  25. Frames In OpenGL • We use two frames: the camera frame and the world frame • We regard the camera frame as fixed • The model-view matrix positions the world frame relative to the camera frame • Perform homogeneous coordinate transformations on object in other frames to define new frames relative to the camera frame • Model-view Matrix: translate along z, to separate the two frames, so object could be in camera’s field of view Hofstra University – CSC290B

  26. Frames In OpenGL Hofstra University – CSC290B

  27. Modeling • Select modeling (local) coordiante system best suited for modeling the object • Define objects in terms of vertices • Pass vertices through a number of transformations using homogeneous coordinates Hofstra University – CSC290B

  28. Affine Transformations • A map f () is linear iff, for any scalars  and , and any vectors p and q,f(p+ q) = f(p)+  f(p) • Affine maps preserve affine combinations of points f(P+ Q) = f(P)+  f(Q), where + =1 • are linear in homogenious coordinates ( i.e. represented by 4x4 matrix, last row (0,0,0,1), act as matrix multiplications). • the transf. of affine combinations of points is same affine combination of the transformed points • can be represented as a composition of translations, rotations, and scalings Hofstra University – CSC290B

  29. Transformations in Homogeneous Coordinates • Each affine transformation is represented by a 4 x 4 matrix of the form Hofstra University – CSC290B

  30. Graphics Pipeline • Pipeline endpoints (in homogeneous coordinates) through affine transformations to generate the rastered image Hofstra University – CSC290B

  31. Concatenation of Transformations • We can multiply together sequences of transformations – concatenating • Works well with pipeline architecture • e.g., three successive transformations on a point p creates a new point q q = CBAp Hofstra University – CSC290B

  32. Concatenation of Transformations • If we have a lot of points to transform, then we can calculateM = CBAand then we use this matrix on each pointq = Mp Hofstra University – CSC290B

  33. Translation • Translation is an operation that displace points by a fixed distance in a given direction • Only need to specify a displacement vector d • Transformed points are given by P = P + d Hofstra University – CSC290B

  34. Translation Hofstra University – CSC290B

  35. Rotation about a pivot point P in 2D R(P;u)=T(-P)R(O;u)T(P) Hofstra University – CSC290B

  36. Rigid Body Transformation • Rotation and translation are rigid-body transformations • No combination of transformations can alter the shape of an • object Non-rigid-body transformations Hofstra University – CSC290B

  37. Scaling non-uniform uniform Hofstra University – CSC290B

  38. Rotation About Axis Parrallel to z-axis Move the cube to the originApply Rz()Move back to original position Hofstra University – CSC290B

  39. Instance Transformation instance objectprototype Hofstra University – CSC290B

  40. Instance Transformation Hofstra University – CSC290B

  41. Current Transformation Matrix • Current Transformation Matrix (CTM) – matrix that is applied to any vertex that is defined subsequent to setting the CTM • Changing the CTM, alters the state of the system • 4x4 matrix that can be altered by a set of functions provided by the graphics package • Common to most systems. Part of the pipeline • If p is a vertex, the pipeline produces Cp Hofstra University – CSC290B

  42. Current Transformation Matrix Let C denote the CTM. It is set to the 4x4 identity matrix, initially. The symboldenotes replacement Initialization operation: CI Three transformations about the fixed point of the origin: translation, rotation, scaling Set:Postmultiplication: CT CCT CR CCR CS CCS Hofstra University – CSC290B

  43. Current Transformation Matrix The matrix the is applied to all primitives is the product of the model-view matrix (GL_MODELVIEW) and the projection matrix (GL_PROJECTION) The CTM is the product of these matrices! Hofstra University – CSC290B

  44. Current Transformation Matrix The matrix that is applied to all primitives is the product of the model-view matrix (GL_MODELVIEW) and the projection matrix (GL_PROJECTION) The CTM is the product of these matrices We select the desired matrix of each with glMatrixMode then alter the selected matrix through postmultiplication using: glLoadIdentity( ); glRotatef(angle, vx, vy, vz); glTranslatef(dx, dy, dz); glScalef(sx, sy, sz); Hofstra University – CSC290B

  45. Order of Transformations • Transformation specified most recently is the one applied firstglMatrixModel(GL_MODELVIEW) glLoadIdentity( ); glTranslatef(4.0, 5.0, 6.0); glRotatef(45.0, 1.0, 2.0, 3.0); glTranslatef(-4.0, -5.0, -6.0); Hofstra University – CSC290B

  46. Summary: Affine Maps • Composition of translations, rotations, scalings • Preserve affine combination of points • If object is modeled as affine combination from vertices, under affine map, the transformed object is the same affine combination of the transformed vertices. Hofstra University – CSC290B

  47. Summary: Affine Maps • Liner maps in homogeneous coordinates, represented by matrices • Composition of affine maps is represented by a matrix which is product of the matrices of the individual maps. Hofstra University – CSC290B

  48. Fundamental Operations • Transformation – changes in coordinate systems through matrix operations • Clipping – adjusting our view of the world • Projection – from 3D to 2D • Rasterization – pixels in the frame buffer Hofstra University – CSC290B

More Related