Perspective Projections
Total Page:16
File Type:pdf, Size:1020Kb
AML710 CAD LECTURE 9 PERSPECTIVE PROJECTIONS 1. Perspective Transformations and Projections a) Single point b) Two point c) Three Point 2. Vanishing points and trace points Generalized 4 x 4 transformation matrix in homogeneous coordinates »a b c p … d e i q [T] = … …g i j r … l m n s Perspective transformations Linear transformations – local scaling, shear, rotation reflection Translations l, m, n along x, y, and z axis Overall scaling 1 Perspective Transformation If any of the first 3 elements in the last column of 4x4 transformation matrix is non-zero a perspective transformation results »1 0 0 0 … 0 1 0 0 [x y z 1]… = [x y z (rz +1)] …0 0 1 r … 0 0 0 1 * * * » x y z ÿ [x y z 1]= … 1Ÿ rz +1 rz +1 rz +1 ⁄ Perspective Projection To obtain perspective projection, we project the results of perspective transformation on to a any of the orthographic projection planes, say, z=0 plane. »1 0 0 0ÿ»1 0 0 0ÿ »1 0 0 0ÿ … Ÿ… Ÿ … Ÿ 0 1 0 0 0 1 0 0 0 1 0 0 [x y z 1]… Ÿ… Ÿ = [x y z 1]… Ÿ = [x y 0 (rz +1)] …0 0 1 rŸ…0 0 0 0Ÿ …0 0 0 rŸ … Ÿ… Ÿ … Ÿ 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1⁄ * * * » x y ÿ [x y z 1]= … 0 1Ÿ rz +1 rz +1 ⁄ 2 Perspective Projection – Scaling effect y screen e Projectors g a Im COP x ct je b O z t t c c e e j j b b O O COP Vanishing Point The Perspective Projection of a Point Consider the following figure where using similar triangles we can write the transformed coordinates as: x* x x = x* = z z − z z c c 1− zc y* y y = y* = *2 *2 2 2 z P* x + zc x + (zc − z) 1− zc Y* Let P X* z y 1 x y r = − ; x zc 1+ rz 1+ rz zc The origin is unaffected. If the plane of projection passes through the object, then that section of the object is shown at true size and true shape 3 Perspective projection of line parallel to z-axis A z 1. Perspective Vanishing transformation of AB point yields A’B’ A’ y B 1/r 2. Orthographic B’ projection of A’B’ gives the required A’’ projection A”B”on B’’ -1/r z=0 plane COP Projection plane x 1. The original line AB and transformed line A’B’ intersect the z=0 plane at the same point on it. 2. The line A’B’ intersects z axis at z=1/r 3. This point is called the vanishing point Perspective Transformation The effect of the perspective transformation is to bring a point at infinity to a finite value in the 3D space The entire semi-infinite positive space 0≤z≤∞ is transformed to finite positive half-space 0≤z*≤1/r A point at infinity can be shown to transform to a finite distance »1 0 0 0 … 0 1 0 0 [0 0 1 0]… = [0 0 1 1] …0 0 1 r r … 0 0 0 1 4 Perspective Transformations A Single Point Perspective A single point perspective transformation with respect to z- axis »1 0 0 0 … 0 1 0 0 [x y z 1]… = [x y z (rz +1)] …0 0 1 r … 0 0 0 1 * * * » x y z ÿ [x y z 1]= … 1Ÿ rz +1 rz +1 rz +1 ⁄ Now the perspective projection is obtained by concatenating the orthographic projection matrix »1 0 0 0ÿ»1 0 0 0ÿ »1 0 0 0ÿ … Ÿ… Ÿ … Ÿ 0 1 0 0 0 1 0 0 0 1 0 0 [T ] = [P ][P ] = … Ÿ… Ÿ = … Ÿ t z …0 0 1 rŸ…0 0 0 0Ÿ …0 0 0 rŸ … Ÿ… Ÿ … Ÿ 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1⁄ * * * » x y ÿ [x y z 1]= … 0 1Ÿ rz +1 rz +1 ⁄ 5 A Single Point Perspective A single point perspective transformation with respect to z-axis The COP is on +ve z-axis and the V.P is equal distance away on –ve z- axis Perspective Projection of a centered cube A Single Point Perspective A single point perspective transformation with respect to x- axis and y-axis are given below respectively »1 0 0 pÿ»1 0 0 0ÿ »1 0 0 p … Ÿ… Ÿ … 0 1 0 0 0 1 0 0 0 1 0 0 [T ] = [P ][P ] = … Ÿ… Ÿ = … t z …0 0 1 0Ÿ…0 0 0 0Ÿ …0 0 0 0 … Ÿ… Ÿ … 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1 » x y ÿ [x* y* z* 1]= … 0 1Ÿ px +1 px +1 ⁄ »1 0 0 0ÿ»1 0 0 0ÿ »1 0 0 0ÿ … Ÿ… Ÿ … Ÿ 0 1 0 q 0 1 0 0 0 1 0 q [T ] = [P ][P ] = … Ÿ… Ÿ = … Ÿ t z …0 0 1 0Ÿ…0 0 0 0Ÿ …0 0 0 0Ÿ … Ÿ… Ÿ … Ÿ 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1⁄ » x y ÿ [x* y* z* 1]= … 0 1Ÿ qy +1 qy +1 ⁄ 6 A Single Point Perspective Numerical Example: A single point perspective transformation has to be performed on a unit cube from a center zc=10 on the z-axis, followed by its projection on z=0 plane Sol:Since zc=10 , r=-1/ zc= -1/10= -0.1 The perspective projection matrix for this problem can be written as »1 0 0 0 … 0 1 0 − 0.1 [U ][T ] = [U ][P ] = [U ]… r …0 0 0 0 … 0 0 0 1 Two Point Perspective Projection The two point perspective projection can directly be obtained on similar lines as: »1 0 0 pÿ »1 0 0 pÿ … Ÿ … Ÿ 0 1 0 q 0 1 0 q [T ] = [P ] = … Ÿ = … Ÿ pq …0 0 0 0Ÿ …0 0 0 0Ÿ … Ÿ … Ÿ VP 0 0 0 1⁄ 0 0 0 1⁄ » x y ÿ [x* y* z* 1]= … 0 1Ÿ px + qy +1 px + qy +1 ⁄ »1 0 0 pÿ»1 0 0 0ÿ »1 0 0 pÿ … Ÿ… Ÿ … Ÿ 0 1 0 0 0 1 0 q 0 1 0 q [T ] = [P ] = [P ][P ] = … Ÿ… Ÿ = … Ÿ pq p q …0 0 0 0Ÿ…0 0 0 0Ÿ …0 0 0 0Ÿ … Ÿ… Ÿ … Ÿ VP 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1⁄ 7 Three Point Perspective Projection The three point perspective projection can be obtained on similar lines as: »1 0 0 pÿ»1 0 0 0ÿ »1 0 0 p … Ÿ… Ÿ … 0 1 0 q 0 1 0 0 0 1 0 q [T ] = [P ][P ] = … Ÿ… Ÿ = … t z …0 0 1 r Ÿ…0 0 0 0Ÿ …0 0 0 r … Ÿ… Ÿ … 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1 » x y ÿ [x* y* z* 1]= … 0 1Ÿ px + qy + rz +1 px + qy + rz +1 ⁄ Some Techniques to produce Perspective Projections Just applying the perspective transformation may not show all details. To view 3 faces of a cuboid, a translation, one or more rotations are used before applying the perspective projections. One translation followed by a single point Pers. Projn. »1 0 0 0ÿ»1 0 0 0 ÿ »1 0 0 0 ÿ … Ÿ… Ÿ … Ÿ 0 1 0 0 0 1 0 0 0 1 0 0 [T ] = [T ][P ] = … Ÿ… Ÿ = … Ÿ xyz rz …0 0 0 0Ÿ…0 0 0 −1/ z Ÿ …0 0 0 −1/ z Ÿ … Ÿ… c Ÿ … c Ÿ l m n 1⁄ 0 0 0 1 ⁄ l m 0 (1− n) / zc ⁄ Note that the scaling factor of (1-n)/Zc appearing in the above result. It is close to reality as the objects gets smaller away from the observerAs Zc h, the scale effect disappears 8 One translation followed by a single point Perspective The scale effect »1 0 0 0ÿ»1 0 0 0 ÿ »1 0 0 0 … Ÿ… Ÿ … 0 1 0 0 0 1 0 0 0 1 0 0 [T ] = [T ][P ] = … Ÿ… Ÿ = … xyz rz …0 0 0 0Ÿ…0 0 0 −1/ z Ÿ …0 0 0 −1/ z … Ÿ… c Ÿ … c l m n 1⁄ 0 0 0 1 ⁄ l m 0 (1− n) / zc y COP z -z -y One Rotation and Single Point Perspective Consider the transformation matrix for rotation about the y- axis by an angle φ, followed by a single point perspective projection on the plane z=0 from a COP at z=zc »cosφ 0 − sinφ 0ÿ»1 0 0 0 ÿ … Ÿ… Ÿ 0 1 0 0 0 1 0 0 [T] = [R ][P ] = … Ÿ… Ÿ φ rz …sinφ 0 cosφ 0Ÿ…0 0 0 −1/ z Ÿ … Ÿ… c Ÿ 0 0 0 1⁄ 0 0 0 1 ⁄ » sinφ ÿ …cosφ 0 − sinφ Ÿ Two Point … zc Ÿ … 0 1 0 0 Ÿ Perspective = cosφ …sinφ 0 cosφ − Ÿ … z Ÿ … c Ÿ 0 0 0 1 ⁄ 9 One Rotation and Single Point Perspective • Thus a single rotation about a principal axis perpendicular to the one on which the COP lies is equivalent to the two point perspective transformation. • However rotation about the same axis on which COP lies does not have this effect » sinφ …cosφ 0 − sinφ Two Point … zc … 0 1 0 0 Perspective = cosφ …sinφ 0 cosφ − … z … c 0 0 0 1 Two Rotations and Single Point Perspective Consider the transformation matrix for rotation about the y-axis by an angle φ, followed by rotation about the x-axis by an angle θ, and a single point perspective projection on the plane z=0 from a cop at z=zc »cosφ 0 −sinφ 0ÿ»1 0 0 0ÿ»1 0 0 0 ÿ … 0 1 0 0Ÿ…0 cosθ sinθ 0Ÿ…0 1 0 0 Ÿ [T ] = [R y ][Rx ][Prz ] = …sinφ 0 cosφ 0Ÿ…0 −sinθ cosθ 0Ÿ…0 0 0 −1/ zc Ÿ 0 0 0 1⁄ 0 0 0 1⁄ 0 0 0 1 ⁄ » sinφ cosθ ÿ …cosφ sinφ sinθ 0 Ÿ … zc Ÿ sinθ Three Point … 0 cosθ 0 − Ÿ Perspective = … z Ÿ … c Ÿ cosφ cosθ …sinφ − cosφ sinθ 0 − Ÿ … zc Ÿ … 0 0 0 1 ⁄Ÿ 10 Perspective Transformations: Vanishing Points There are two methods of finding VPs 1.