![]() ![]() If p is a homogeneous plane and v is a homogeneous vertex, then the statement " v lies on plane p" is written mathematically as pv = 0, where pv is normal matrix multiplication. If they're all zero, then (0, 0, 0, d) represents the "plane at infinity," which contains all the "points at infinity." (If w = 1, this is the standard description of a euclidean plane.) In order for ( a, b, c, d) to represent a euclidean plane, at least one of a, b, or c must be nonzero. A point ( x, y, z, w)T is on the plane ( a, b, c, d) if ax+ by+ cz+ dw = 0. If q is a nonzero real number, then ( a, b, c, d) and ( qa, qb, qc, qd) represent the same plane. Then, the transformation rules for normal vectors are described by the transformation rules for perpendicular planes.Ī homogeneous plane is denoted by the row vector ( a, b, c, d), where at least one of a, b, c, or d is nonzero. Mathematically, it's better to think of normal vectors not as vectors, but as planes perpendicular to those vectors. Normal vectors aren't transformed in the same way as vertices or position vectors. Note that this range corresponds in euclidean space to. Note: OpenGL might not handle homogeneous clip coordinates with w 0). Thus, you can think of (1, 2, 0, 0) as the point at infinity in the direction of that line. This sequence represents points rapidly moving toward infinity along the line 2 x = y. If w = 0.0, it corresponds to no euclidean point, but rather to some idealized "point at infinity." To understand this point at infinity, consider the point (1, 2, 0, 0), and note that the sequence of points (1, 2, 0, 1), (1, 2, 0, 0.01), and (1, 2.0, 0.0, 0.0001), corresponds to the euclidean points (1, 2), (100, 200), and (10000, 20000). (This is just like fractions: x/ y = ( ax)/( ay).) A three-dimensional euclidean space point ( x, y, z)T becomes the homogeneous vertex with coordinates ( x, y, z, 1.0)T, and the two-dimensional euclidean point ( x, y)T becomes ( x, y, 0.0, 1.0)T.Īs long as w is nonzero, the homogeneous vertex ( x, y, z, w)T corresponds to the three-dimensional point ( x/w, y/w, z/w)T. If the real number a is nonzero, then ( x, y, z, w)T and ( ax, ay, az, aw)T represent the same homogeneous vertex. Every column vector ( x, y, z, w)T represents a homogeneous vertex if at least one of its elements is nonzero. OpenGL commands usually deal with two- and three-dimensional vertices, but in fact all are treated internally as three-dimensional homogeneous vertices comprising four coordinates. ![]() This appendix has the following major sections: In the discussion that follows, the term homogeneous coordinates always means three-dimensional homogeneous coordinates, although projective geometries exist for all dimensions. (Cambridge: Cambridge University Press, 1961). For a more detailed discussion of these subjects, see almost any book on three-dimensional computer graphics - for example, Computer Graphics: Principles and Practice by Foley, van Dam, Feiner, and Hughes (Reading, MA: Addison-Wesley, 1990) - or a text on projective geometry - for example, The Real Projective Plane, by H. These topics are introduced and discussed in Chapter 3. It also lists the form of the transformation matrices used for rotation, scaling, translation, perspective projection, and orthographic projection. This appendix presents a brief discussion of homogeneous coordinates. Homogeneous Coordinates and Transformation Matrices
0 Comments
Leave a Reply. |