230 likes | 438 Views
University of Palestine. Computer Graphics. ITGD3107. Presentation name : Three Dimensional Viewing. Prepare: Mohammed J. el-masre Nidal M. El-Borbar. Supervision: Dr. Sana'a . Contents. 3D Viewing Camera Analogy Viewing Pipeline Camera Modeling w/ OpenGL
E N D
University of Palestine Computer Graphics ITGD3107 Presentation name : Three Dimensional Viewing Prepare: Mohammed J. el-masre Nidal M. El-Borbar Supervision: Dr. Sana'a p_16_10 @hotmail.com it4ever2008 @hotmail.com
Contents • 3D Viewing • Camera Analogy • Viewing Pipeline • Camera Modeling w/ OpenGL • Projections • Types of Projections • Perspective Projection • Parallel Projection • Projection Matrix • Projection of Lines • 3D Viewing with OpenGL • Matrix Modes • Three Dimensional Viewing p_16_10 @hotmail.com it4ever2008 @hotmail.com
3D Viewing The steps for computer generation of a view of a three dimensional scene are somewhat analogous to the processes involved in taking a photograph. p_16_10 @hotmail.com it4ever2008 @hotmail.com
Orientation Window (aperture) of the camera Position Camera Analogy • Viewing position • Camera orientation • Size of clipping window p_16_10 @hotmail.com it4ever2008 @hotmail.com
Viewing Pipeline The general processing steps for modeling and converting a world coordinate description of a scene to device coordinates: p_16_10 @hotmail.com it4ever2008 @hotmail.com
Viewing Pipeline • Construct the shape of individual objects in a scene within modeling coordinate, and place the objects into appropriate positions within the scene (world coordinate). p_16_10 @hotmail.com it4ever2008 @hotmail.com
Viewing Pipeline World coordinate positions are converted to viewing coordinates. p_16_10 @hotmail.com it4ever2008 @hotmail.com
Viewing Pipeline Convert the viewing coordinate description of the scene to coordinate positions on the projection plane. p_16_10 @hotmail.com it4ever2008 @hotmail.com
Viewing Pipeline Positions on the projection plane, will then mapped to the Normalized coordinate and output device. p_16_10 @hotmail.com it4ever2008 @hotmail.com
camera coordinate system viewport coordinate system device/screen coordinate system glMatrixMode(GL_MODELVIEW) ... glViewport(0,0,xres,yres) glMatrixMode(GL_PROJECTION) ... Camera Modeling w/ OpenGL p_16_10 @hotmail.com it4ever2008 @hotmail.com
Projections Once the view volume is determined, a projection transformation will convert the object in the 3D view volume to a 2D image on the projection plane. p_16_10 @hotmail.com it4ever2008 @hotmail.com
Types of Projections Perspective Projection Parallel Projection p_16_10 @hotmail.com it4ever2008 @hotmail.com
Perspective Projection (1/2) • Give a realistic view of 3D objects, but does not preserve shape of object or scale • Perspective images of parallel lines not parallel with projection plane converge to a point called vanishing point • Size of object is diminished with distance • Used in architectural, engineering, industrial design, and advertising drawings p_16_10 @hotmail.com it4ever2008 @hotmail.com
Perspective Projection (2/2) 1-point perspective Most popular 2-point perspective 3-point perspective p_16_10 @hotmail.com it4ever2008 @hotmail.com
Parallel Projection • Accurate and same-scale measurements • Not realistic, and may require multiple projections to get a complete feeling of the object • Used in drawings of machine parts and in working architectural drawings p_16_10 @hotmail.com it4ever2008 @hotmail.com
Oblique Isometric Parallel Projection (3/3) Multi-view orthographic cavalier cabinet p_16_10 @hotmail.com it4ever2008 @hotmail.com
y Pp(xp,yp,d) = ??? P(x,y,z) x COP z d Projection Matrix (1/3) xp yp d 1 x y z 1 = Mper/ort . 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1/d 0 1 0 0 0 0 1 0 0 0 0 0 d 0 0 0 1 Mper = Mort = p_16_10 @hotmail.com it4ever2008 @hotmail.com
y Pp(xp,yp,0) = ??? P(x,y,z) x z COP d Projection Matrix (2/3) xp yp 0 1 x y z 1 = Mper/ort . 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1/d 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 Mper = Mort = p_16_10 @hotmail.com it4ever2008 @hotmail.com
Projection Matrix (3/3) Pp(xp,yp,0) = ??? 1 0 –a/c da/c 0 1 –b/c db/c 0 0 –d/Q/c d2/Q/c+d 0 0 –1/Q/c d/Q/c+1 Mgeneral = x or y COP P(x,y,z) Q z d (a, b, c) p_16_10 @hotmail.com it4ever2008 @hotmail.com
Projection of Lines Parametric representation of a line that goes through P(px, py, pz) and has direction c = (cx, cy, cz) l(t) = P+ct where t (-, + ) The projected line is x(t) = d(px+cxt)/(pz+czt) y(t) = d(py+cyt)/(pz+czt) y x COP z d If the original line is parallel to the projection plane (cz = 0) x(t) = d(px+cxt)/pz, y(t) = d(py+cyt)/pz, the slope of the projected line is cy/cx, independent of the position of the original line. The projected lines of parallel lines must be parallel p_16_10 @hotmail.com it4ever2008 @hotmail.com
3D Viewing with OpenGL • Viewing transformation: set the position and orientation of the viewpoint • Modeling transformation: set the orientation of the model (translate, rotate, scale) • Projection transformation: set the view volume and do the projection • Viewport transformation: Set the viewport on the computer screen where the scene will be drawn p_16_10 @hotmail.com it4ever2008 @hotmail.com
Matrix Modes • Modelview matrix • Set the viewpoint and object location by modifying this matrix • glMatrixMode(GL_MODELVIEW) • If projection matrix is modified • Specify the view volume by modifying this matrix • glMatrixMode(GL_PROJECTION) • If texture matrix is modified • glMatrixMode(GL_TEXTURE) p_16_10 @hotmail.com it4ever2008 @hotmail.com
References & External links • http://en.wikipedia.org/wiki/3dviewing • http://anonymouse.org/cgi-bin/anon-www.cgi/http://www.eazyupload.net/download/jtg3c0c6/0135309247.zip.htm • http://eazy1.eazyupload.net/download/0ea47c0c7d5c5b872be23f3a89330863/0135309247.zip • http://dl1.s24.ifile.it/9gtkix4c/prentice_hall_-_computer_graphics_c_version_2ed_-_hearn__baker.pdf Our Book computer_graphics_c_version_2ed p_16_10 @hotmail.com it4ever2008 @hotmail.com