Projection Projection Projection Conceptual model of 3D viewing process Projection In general, projections transform points in a coordinate system of dimension n into points in a coordinate system of dimension less than n. We shall limit ourselves to the projection from 3D to 2D. We will deal with planar geometric projections where: The projection is onto a plane rather than a curved surface The projectors are straight lines rather than curves Projection key terms… Projection from 3D to 2D is defined by straight projection rays (projectors) emanating from the 'center of projection', passing through each point of the object, and intersecting the 'projection plane' to form a projection. Planer Geometric Projection 2 types of projections perspective and parallel. Key factor is the center of projection. if distance to center of projection is finite : perspective if infinite : parallel A A Projectors Projectors A' B B A' B' B' Projection plane Center of projection Perspective projection Center of projection at infinity Projection plane Direction of projection Parallel projection Perspective v Parallel Perspective: visual effect is similar to human visual system... has 'perspective foreshortening' size of object varies inversely with distance from the center of projection. Parallel lines do not in general project to parallel lines angles only remain intact for faces parallel to projection plane. Perspective v Parallel Parallel: less realistic view because of no foreshortening however, parallel lines remain parallel. angles only remain intact for faces parallel to projection plane. Perspective projection- anomalies Perspective foreshortening The farther an object is from COP the smaller it appears C A D C' A' B D' Projectors B' Center of projection Projection plane Perspective foreshortening Perspective projection- anomalies Vanishing Points: Any set of parallel lines not parallel to the view plane appear to meet at some point. There are an infinite number of these, 1 for each of the infinite amount of directions line can be oriented z-axis vanishing point y x z Vanishing point Perspective projection- anomalies View Confusion: Objects behind the center of projection are projected upside down and backward onto the view-plane Topological distortion: A line segment joining a point which lies in front of the viewer to a point in back of the viewer is projected to a broken line of infinite extent. P'3 P1 Y Plane containing Center of Projection (C) P3 C View Plane P2 P'1 P'2 X Z Vanishing Point Vanishing Point COP View Plane Vanishing Point If a set of lines are parallel to one of the three axes, the vanishing point is called an axis vanishing point (Principal Vanishing Point). There are at most 3 such points, corresponding to the number of axes cut by the projection plane One-point: One principle axis cut by projection plane One axis vanishing point Two-point: Two principle axes cut by projection plane Two axis vanishing points Three-point: Three principle axes cut by projection plane Three axis vanishing points Vanishing Point Vanishing Point One point perspective projection of a cube X and Y parallel lines do not converge Vanishing Point Vanishing Point Two-point perspective projection: This is often used in architectural, engineering and industrial design drawings. Three-point is used less frequently as it adds little extra realism to that offered by twopoint perspective projection. Vanishing Point H VPL VPR VP2 VP1 VP3 Projective Transformation y plane of projection d center of projection x view direction z Settings for perspective projection Projective Transformation plane of projection P(y,z) y P'(yp,zp) z d -z y yp y yp z d z d z d x y , ,d ,1 z d z d x, y, z,1 y Projective Transformation ? ? ? ? ? ? ? ? ? ? ? ? x ? x z / d ? y y z / d ? z d ? 1 1 x x z d e y perspectiv y division z z d z d d 1 ? ? ? ? ? x x ? y y z ? z z ? 1 d 0 0 1 1 0 d 0 x x 0 y y 0 z z z 0 1 d ? ? ? ? 1 0 0 0 0 1 0 ? ? ? ? Parallel projection 2 principle types: orthographic and oblique. Orthographic : direction of projection = normal to the projection plane. Oblique : n direction of projection != normal to the projection plane. n Orthographic projection Orthographic (or orthogonal) projections: front elevation, top-elevation and side-elevation. all have projection plane perpendicular to a principle axes. Useful because angle and distance measurements can be made... However, As only one face of an object is shown, it can be hard to create a mental image of the object, even when several view are available Orthographic projection Orthogonal Projection Matrix y plane of projection x direction of projection view direction z 1 0 0 0 0 1 0 0 0 0 0 0 0 x x 0 y y 0 z 0 1 1 1 Axonometric projection Axonometric Projections use projection planes that are not normal to a principal axis.On the basis of projection plane normal N = (dx, dy, dz) subclasses are: o Isometric : | dx | = | dy | = | dz | i.e. N makes equal angles with all principal axes. o Dimetric : | dx | = | dy | o Trimetric : | dx | != | dy | != | dz | Axonometric vs Perspective Axonometric projection shows several faces of an object at once like perspective projection. But the foreshortening is uniform rather than being related to the distance from the COP. y x Isometric proj z Projection Plane Oblique parallel projection Oblique parallel projections Objects can be visualized better then with orthographic projections Can measure distances, but not angles * Can only measure angles for faces of objects parallel to the plane 2 common oblique parallel projections: Cavalier and Cabinet Oblique parallel projection y z Projection Plane Projector n Projection Plane Normal x Oblique parallel projection Cavalier: The direction of the projection makes a 45 degree angle with the projection plane. There is no foreshortening Oblique parallel projection Cabinet: The direction of the projection makes a 63.4 degree angle with the projection plane. This results in foreshortening of the z axis, and provides a more “realistic” view Oblique parallel projection Cavalier, cabinet and orthogonal projections can all be specified in terms of (α, β) or (α, λ) since tan(β) = 1/λ λ sin(α) P(׳λ cos(α), λ sin(α),0) β λ α P=(0, 0, 1) λ cos(α) Oblique parallel projection l=1 b = 45 Cavalier projection a = 0 - 360 l=0.5 b = 63.4 Cabinet projection a = 0 – 360 l=0 b = 90 a = 0 – 360 Orthogonal projection Oblique parallel projection y PP‘ = (λ cos(α), λ sin(α),-1) = DOP Proj(P) = (λ cos(α), λ sin(α),0) (xp , y p ) l ( x, y ) a Generally multiply by z and allow for (non-zero) x and y x ‘ = x + z lcos a y‘ = y + z lsin a x 1 y 0 0 0 1 0 0 l cosa 1 l sin a 0 0 0 0 0 x 0 y . 0 z 1 1 x x p x l cosa y p y l sin a Generalized Projection Matrix x or y Plane of Projection Center of Projection (COP) Pp = (x p, y p, z p) Q P = (x, y, z) (dx, d y, d z) z (0, 0, z p) Pp COP t P COP , 0 t 1 COP 0,0, z p Q d x , d y , d z P x, y, z x Qd x t x Qd x y Qd y t y Qd y z z p Qd z t z z p Qd z Generalized Projection Matrix dx d zp x dz dz zp z 1 Qd z xz xp z p z p Qd z t z z p Qd z z p z p Qd z t z z p Qd z yz yp dy zp dz zp z Qd z zp z zp zp Qd z zp z Qd z dy dz 1 1 z 1 zp 2 z p z p Qd z Qd z Qd z zp z 1 Qd z Generalized Projection Matrix dx d zp x dz dz zp z 1 Qd z xz xp yz dy zp dz zp z yp Qd z z zp zp dy dz 1 2 zp Qd z Qd z zp z 1 Qd z zp 1 0 M gen 0 0 0 1 0 dx dz dy dz zp Qd z 1 0 Qd z zp dz 2 zp zp Qd z zp 1 Qd z zp dx dz dy Generalized Projection Matrix M gen 1 0 0 0 0 1 0 0 dx dz dy dz zp Qd z 1 Qd z zp dz z 2p zp Qd z zp 1 Qd z z p d , Q d , d x 0 , d y 0 , d z 1 zp dx dz dy M per 1 0 0 0 0 1 0 0 0 0 1 1 d 0 0 0 0 Generalized Projection Matrix M gen 1 0 0 0 0 1 0 0 dx dz dy dz zp Qd z 1 Qd z zp dz z 2p zp Qd z zp 1 Qd z zp z p 0, Q , d x 0 , d y 0 , d z 1 dx dz dy M par 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 Taxonomy of Projection OpenGL’s Perspective Specification aspect = w / h y w h z x near far y field-of-view / fovy aspect ratio near and far clipping planes viewing frustum gluPerspective(fovy, aspect, near, far) glFrustum(left, right, bottom, top, near, far) Perspective without Depth 1 0 0 0 0 x x 0 y y z 0 z z 0 1 d x x z d e y perspectiv y division z z d z d d 1 0 1 0 0 0 1 1 0 d • The depth information is lost as the last two components are same • But dept information of the projected points is essential for hidden surface removal and other purposes like blending, shading etc. Perspective without Depth 1 0 0 0 0 0 1 0 0 a 1 0 d x 0 x x z d 0 y y perspective y division z d b z az b d az b z 0 1 z d 1 d b z d a z For ß < 0, z’ is a monotonically increasing function of depth. Canonical View Volume far y near (-1,1,-1) (-1,1,1) (1,1,-1) (1,1,1) z (-1,-1,-1) x (-1,-1,1) (1,-1,1) 1 x 1 1 y 1 1 z 1 (1,-1,-1) Canonical View Volume z=-far z=-near y +1 z z=1 (far) y z=-1 (near) viewer z -1 +1 -1 There is a reversal of the z- coordinates, in the sense that before the transformation, points further from the viewer have smaller zcoordinates Perspective Matrix The matrix to perform perspective transformation: 0 0 0 0 0 0 a 0 0 1 0 x x 0 y y b z a zb 0 1 z x /( z ) y /( z ) (a z b ) /( z ) 1 Perspective Matrix z = -far z = -near a=w/h y w θ/2 z h x z z c cot y c 2 y a w x az x ay h y c az z x , y , z , , z c c Perspective Matrix z = -far z = -near a=w/h y w θ/2 z h x an n , , n 1,1,1 c c an n , , n 1,1,1 c c an n , , n 1,1,1 c c an n , , n 1,1,1 c c f af , , f 1,1,1 c c af f , , f 1,1,1 c c f af , , f 1,1,1 c c af f , , f 1,1,1 c c Perspective Matrix an n , ,n 1,1,1 c c an 0 0 0 c 1 0 0 0 n 1 0 0 a b c 1 0 0 1 0 n 1 1 an 1 c n 1 c 1 an b 1 n a c 1 1 c an b 1 1 n 1 c a c an b n Perspective Matrix f af , , f 1,1,1 c c af 0 0 0 c 1 0 0 0 f 1 0 0 a b c 1 0 0 1 0 f 1 1 af 1 c f 1 c 1 af b 1 f a c c af b f 1 1 1 1 1 af b f an b n f n a n f 2 fn b n f Perspective Matrix The matrix to perform perspective transformation: c a 0 0 0 0 0 0 c 0 f n n f 1 0 2 fn n f 0 0 0 Taxonomy of projection Generalized Projection Using the origin as the center of projection, derive the perspective transformation onto the plane passing through the point R0(x0, y0, z0) and having the normal vector N = n1I + n2J + n3K. N = n1I + n2J + n3K y R0=x0 ,y0, z0 P'(x', y', z') O z x P(x, y, z) Generalized Projection N = n1I + n2J + n3K P'O = α PO x' = αx, y' = αy, z ' = αz y R0=x0 ,y0, z0 N. R0P' = 0 n1x ' + n2y ' + n3z ' =n1x0 + n2y0 + n3z0 = d0 a P'(x', y', z') d0 n1 x n2 y n3 z d0 0 Per 0 n 1 0 0 d0 0 0 d0 n2 n3 O 0 0 0 0 z x P(x, y, z) Generalized Projection Derive the general perspective transformation onto a plane with reference point R0 and normal vector N and using C(a,b,c) as the center of projection. N = n1I + n2J + n3K R0=x0 ,y0, z0 y P(x, y, z) C P'(x', y', z') x z Generalized Projection P'C = α PC x' = α(x-a) + a N = n1I + n2J + n3K n1x' + n2y' + n3z‘ = d0 d a n1 ( x a) n2 ( y b) n3 ( z c) d = (n1x0 + n2y0 + n3z0) – (n1a + n2b + n3c) = d0 – d1 R0=x0 ,y0, z0 y P(x, y, z C P'(x', y', z') x z Generalized Projection Follow the steps – Translate so that C lies at the origin Per Translate back d an1 bn1 cn 1 n 1 an2 an3 d bn2 bn3 cn2 d cn3 n2 n3 ad0 bd0 cd0 d1 Generalized Projection Find (a) the vanishing points for a given perspective transformation in the direction given by a vector U (b) principal vanishing point. Family of parallel lines having the direction U(u1,u2,u3) can be written in parametric form as x = u1t+p, y = u2t+q, z = u3t+r here (p, q, r) is any point on the line Let, proj(x,y,z,1) = (x‘, y‘, z‘, h) x' = (d+an1)(u1t+p) + an2(u2t+q) + an3(u3t+r) – ad0 y' = bn1(u1t+p) + (d+bn2)(u2t+q) + bn3(u3t+r) – bd0 z' = cn1(u1t+p) + cn2(u2t+q) + (d+cn3)(u3t+r) – cd0 h = n1(u1t+p) + n2(u2t+q) + n3(u3t+r) – d1 Generalized Projection The vanishing point (xv, yv, zv) is obtained when t=α xu = (x‘/h) at t= α = a + (du1/k) yu = b + (du2/k) zu = c + (du3/k) k = N.U = n1u1 + n2u2 + n3u3 If k=0 then ? Principal vanishing point when U=I xu = a + d / n1, yu = b, zu = c, U=J U=k Ref. FV: p. 229-237, 253-258 Sch: prob. 7.1 – 7.15 Perspective Proj.pdf