410 likes | 530 Views
Chapter 4. Geometric Objects and Transformation. Lines. Consider all points of the form P( a )=P 0 + a d Set of all points that pass through P 0 in the direction of the vector d. Parametric Form. This form is known as the parametric form of the line
E N D
Chapter 4 Geometric Objects and Transformation
Lines • Consider all points of the form • P(a)=P0 + ad • Set of all points that pass through P0 in the direction of the vector d
Parametric Form • This form is known as the parametric form of the line • More robust and general than other forms • Extends to curves and surfaces • Two-dimensional forms • Explicit: y = mx +h • Implicit: ax + by +c =0 • Parametric: x(a) = ax0 + (1-a)x1 y(a) = ay0 + (1-a)y1
Rays and Line Segments If a >= 0, then P(a) is the ray leaving P0 in the direction d If we use two points to define v, then P( a) = Q + a (R-Q)=Q+av =aR + (1-a)Q For 0<=a<=1 we get all the points on the line segment joining R and Q
Three-Dimensional Primitives 3D curves 3D surfaces Volumetric Objects Hollow objects Objects can be specified by vertices Simple and flat polygons (triangles) Constructive Solid Geometry (CSG)
Representation • Until now we have been able to work with geometric entities without using any frame of reference, such a coordinate system • Need a frame of reference to relate points and objects to our physical world. • For example, where is a point? Can’t answer without a reference system • World coordinates • Camera coordinates
Confusing Points and Vectors v p v can place anywhere fixed Consider the point and the vector P = P0 + b1v1+ b2v2+….+bnvn v=a1v1+ a2v2+….+anvn They appear to have the similar representations P=[b1 b2 b3] v=[a1 a2 a3] which confuse the point with the vector A vector has no position
A Single Representation If we define 0•P = 0 and 1•P =P then we can write v=a1v1+ a2v2+a3v3 = [a1 a2a30][v1 v2 v3 P0] T P = P0 + b1v1+ b2v2+b3v3= [b1 b2b31][v1 v2 v3 P0] T Thus we obtain the four-dimensional homogeneous coordinate representation v = [a1 a2a30] T P = [b1 b2b31] T
Homogeneous Coordinates The general form of four dimensional homogeneous coordinates is p=[x y x w] T We return to a three dimensional point (for w0) by xx/w yy/w zz/w If w=0, the representation is that of a vector Note that homogeneous coordinates replaces points in three dimensions by lines through the origin in four dimensions
Homogeneous Coordinates and Computer Graphics • Homogeneous coordinates are key to all computer graphics systems • All standard transformations (rotation, translation, scaling) can be implemented by matrix multiplications with 4 x 4 matrices • Hardware pipeline works with 4 dimensional representations • For orthographic viewing, we can maintain w=0 for vectors and w=1 for points • For perspective we need a perspective division
Representing a Mesh e2 v5 v6 e3 e9 e8 v8 v4 e1 e11 e10 v7 e4 e7 v1 e12 v2 v3 e6 e5 • Consider a mesh • There are 8 nodes and 12 edges • 5 interior polygons • 6 interior (shared) edges • Each vertex has a location vi = (xi yi zi)
Inward and Outward Facing Polygons The order {v0, v3, v2, v1} and {v1, v0, v3, v2} are equivalent in that the same polygon will be rendered by OpenGL but the order {{v0, v1, v2, v3} is different The first two describe outwardly facing polygons Use the right-hand rule = counter-clockwise encirclement of outward-pointing normal OpenGL treats inward and outward facing polygons differently
Geometry versus Topology • Generally it is a good idea to look for data structures that separate the geometry from the topology • Geometry: locations of the vertices • Topology: organization of the vertices and edges • Example: a polygon is an ordered list of vertices with an edge connecting successive pairs of vertices and the last to the first • Topology holds even if geometry changes
Bilinear Interpolation Assuming a linear variation, then we can make use of the same interpolation coefficients in coordinates for the interpolation of other attributes.
Scan-line Interpolation A polygon is filled only when it is displayed It is filled scan line by scan line Can be used for other associated attributes with each vertex
General Transformations A transformation maps points to other points and/or vectors to other vectors
Linear Function (Transformation) Transformation matrix for homogeneous coordinate system:
Affine Transformations – 1/2 • Line preserving • Characteristic of many physically important transformations • Rigid body transformations: rotation, translation • Scaling, shear • Importance in graphics is that we need only transform endpoints of line segments and let implementation draw line segment between the transformed endpoints
Affine Transformations – 2/2 Every linear transformation (if the corresponding matrix is nonsingular) is equivalent to a change in frames However, an affine transformation has only 12 degrees of freedom because 4 of the elements in the matrix are fixed and are a subset of all possible 4 x 4 linear transformations
Translation P´ d P • Move (translate, displace) a point to a new location • Displacement determined by a vector d • Three degrees of freedom • P’=P+d
Rotation (2D) – 1/2 x´ = r cos (f + q) = rcosf cosq - rsinf sinq y´ = r sin (f + q) = rcosf sinq + rsinf cosq x´ =x cos q –y sin q y´ = x sin q + y cos q x = r cos f y = r sin f • Consider rotation about the origin by q degrees • radius stays the same, angle increases by q
Rotation (2D) – 2/2 Using the matrix form: There is a fixed point Could be extended to 3D Positive direction of rotation is counterclockwise 2D rotation is equivalent to 3D rotation about the z-axis
(Non-)Rigid-Body Transformation Non-rigid-bodytransformations Translation and rotation are rigid-body transformation
Scaling x´=sxx y´=syx z´=szx Uniform and non-uniform scaling Expand or contract along each axis (fixed point of origin)
Reflection sx = -1 sy = 1 original sx = -1 sy = -1 sx = 1 sy = -1 corresponds to negative scale factors
Transformation in Homogeneous Coordinates With a frame, each affine transformation is represented by a 44 matrix of the form:
Translation note that this expression is in four dimensions and expresses that point = vector + point Using the homogeneous coordinate representation in some frame p=[ x y z 1]T p´=[x´ y´ z´ 1]T d=[dx dy dz 0]T Hence p´= p + dor x´=x+dx y´=y+dy z´=z+dz
Translation Matrix We can also express translation using a 4 x 4 matrix T in homogeneous coordinates p´=Tp where This form is better for implementation because all affine transformations can be expressed this way and multiple transformations can be concatenated together
Rotation about the Z axis x´=x cos q –y sin q y´= x sin q + y cos q z´=z • Rotation about z axis in three dimensions leaves all points with the same z • Equivalent to rotation in two dimensions in planes of constant z • or in homogeneous coordinates p’=Rz(q)p
Rotation about X and Y axes • Same argument as for rotation about z axis • For rotation about x axis, x is unchanged • For rotation about y axis, y is unchanged
Scaling Matrix x´=sxx y´=syx z´=szx p´=Sp
Inverses • Although we could compute inverse matrices by general formulas, we can use simple geometric observations • Translation: T-1(dx, dy, dz) = T(-dx, -dy, -dz) • Rotation: R-1(q) = R(-q) • Holds for any rotation matrix • Note that since cos(-q) = cos(q) and sin(-q)=-sin(q) R-1(q) = R T(q) • Scaling: S-1(sx, sy, sz) = S(1/sx, 1/sy, 1/sz)
Concatenation We can form arbitrary affine transformation matrices by multiplying together rotation, translation, and scaling matrices Because the same transformation is applied to many vertices, the cost of forming a matrix M=ABCD is not significant compared to the cost of computing Mp for many vertices p The difficult part is how to form a desired transformation from the specifications in the application
Order of Transformations Note that matrix on the right is the first applied Mathematically, the following are equivalent p´ = ABCp = A(B(Cp)) Note many references use column matrices to present points. In terms of column matrices p´T = pTCTBTAT
General Rotation about the Origin R(q) = Rx() Ry() Rz() y , ,are called the Euler angles v q Note that rotations do not commute We can use rotations in another order but with different angles x z A rotation by q about an arbitrary axis can be decomposed into the concatenation of rotations about the x, y, and z axes
Rotation about an Arbitrary Axis – 1/2 Final rotation matrix: Normalize u:
Rotation about an Arbitrary Axis – 2/2 Rotate the line segment to the plane of y=0, and the line segment is foreshortened to: Rotate clockwise about the y-axis, so: Final transformation matrix: