Fundamentals of Computer Graphics Part 5 Viewing prof.ing.Václav Skala, CSc. University of West Bohemia Plzeň, Czech Republic ©2002 Prepared with Angel,E.:

Slides:



Advertisements
Similar presentations
Computer Graphics - Viewing -
Advertisements

Three Dimensional Viewing
1 View Shandong University Software College Instructor: Zhou Yuanfeng
Three-Dimensional Viewing Sang Il Park Sejong University Lots of slides are stolen from Jehee Lee’s.
Projection Matrices CS4395: Computer Graphics 1 Mohan Sridharan Based on slides created by Edward Angel.
Based on slides created by Edward Angel
Viewing and Projections
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Computer Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
CS 352: Computer Graphics Chapter 5: Viewing. Interactive Computer GraphicsChapter Overview Specifying the viewpoint Specifying the projection Types.
OpenGL (II). How to Draw a 3-D object on Screen?
CS 4731: Computer Graphics Lecture 11: 3D Viewing Emmanuel Agu.
1 Chapter 5 Viewing. 2 Perspective Projection 3 Parallel Projection.
Modeling and Viewing Modeling
Informationsteknologi Wednesday, November 14, 2007Computer Graphics - Class 81 Today’s class Orthogonal matrices Quaternions Shears Synthetic camera Viewing.
Introduction to 3D viewing 3D is just like taking a photograph!
Computer Graphics (fall 2009)
UBI 516 Advanced Computer Graphics Three Dimensional Viewing
Advanced Computer Graphics Three Dimensional Viewing
Transformation & Projection Feng Yu Proseminar Computer Graphics :
Computer Graphics I, Fall 2010 Classical Viewing.
Viewing Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
1 E. Angel and D. Shreiner : Interactive Computer Graphics 6E © Addison-Wesley 2012 Classical Viewing Sai-Keung Wong ( 黃世強 ) Computer Science National.
Chapter 5 Viewing.
1 Classical Viewing. 2 Objectives Introduce the classical views Compare and contrast image formation by computer with how images have been formed by architects,
C O M P U T E R G R A P H I C S Guoying Zhao 1 / 67 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 67 Computer Graphics Three-Dimensional Graphics III.
Graphics Graphics Korea University cgvr.korea.ac.kr 3D Viewing 고려대학교 컴퓨터 그래픽스 연구실.
Computer Graphics Bing-Yu Chen National Taiwan University.
CAP 4703 Computer Graphic Methods Prof. Roy Levow Chapter 5.
Demetriou/Loizidou – ACSC330 – Chapter 5 Viewing Dr. Giorgos A. Demetriou Computer Science Frederick Institute of Technology.
Computer Graphics I, Fall 2010 Computer Viewing.
OpenGL The Viewing Pipeline: Definition: a series of operations that are applied to the OpenGL matrices, in order to create a 2D representation from 3D.
Viewing Chapter 5. CS 480/680 2Chapter 5 -- Viewing Introduction: Introduction: We have completed our discussion of the first half of the synthetic camera.
University of North Carolina at Greensboro
2003CS Hons RW778 Graphics1 Chapter 7: Three-Dimensional Viewing Chapter 5: Camera with parallel projection Chapter 5: Camera with parallel projection.
Graphics Graphics Korea University kucg.korea.ac.kr Viewing 고려대학교 컴퓨터 그래픽스 연구실.
The Camera Analogy ► Set up your tripod and point the camera at the scene (viewing transformation) ► Arrange the scene to be photographed into the desired.
Chapters 5 2 March Classical & Computer Viewing Same elements –objects –viewer –projectors –projection plane.
Three-Dimensional Viewing
Three-Dimensional Viewing Hearn & Baker Chapter 7
12/24/2015 A.Aruna/Assistant professor/IT/SNSCE 1.
©2005, Lee Iverson Lee Iverson UBC Dept. of ECE EECE 478 Viewing and Projection.
Viewing Chapter 5. CS 480/680Chapter 5 -- Viewing2 n Introduction: -We have completed our discussion of the first half of the synthetic camera model specifying.
Graphics CSCI 343, Fall 2015 Lecture 16 Viewing I
1 Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 Classical Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering,
Classical Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Taxonomy of Projections FVFHP Figure Taxonomy of Projections.
Classical Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico.
Viewing Angel Angel: Interactive Computer Graphics5E © Addison-Wesley
CS5500 Computer Graphics March 20, Computer Viewing Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts.
1 E. Angel and D. Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Computer Viewing Isaac Gang University of Mary Hardin-Baylor.
Viewing. Classical Viewing Viewing requires three basic elements - One or more objects - A viewer with a projection surface - Projectors that go from.
CS 490: Computer Graphics Chapter 5: Viewing. Interactive Computer GraphicsChapter Overview Specifying the viewpoint Specifying the projection Types.
Viewing 고려대학교 컴퓨터 그래픽스 연구실 kucg.korea.ac.kr.
Viewing.
Computer Graphics - Chapter 5 Viewing
Computer Viewing.
Courtesy of Drs. Carol O’Sullivan / Yann Morvan Trinity College Dublin
Isaac Gang University of Mary Hardin-Baylor
CSC461: Lecture 20 Parallel Projections in OpenGL
CSC461: Lecture 19 Computer Viewing
Viewing Chapter 5.
Fundamentals of Computer Graphics Part 5 Viewing
CSC4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University View & Projection.
Chap 3 Viewing Pipeline Reading:
Viewing (Projections)
University of New Mexico
Viewing (Projections)
Interactive Computer Graphics Viewing
CS 352: Computer Graphics Chapter 5: Viewing.
Presentation transcript:

Fundamentals of Computer Graphics Part 5 Viewing prof.ing.Václav Skala, CSc. University of West Bohemia Plzeň, Czech Republic ©2002 Prepared with Angel,E.: Interactive Computer Graphics – A Top Down Approach with OpenGL, Addison Wesley, 2001

Fundamentals of Computer Graphics2 Classical & Computer Viewing Center of projection (COP) – center of the camera lenses origin of the camera frame Direction of Projection (DOP) – viewing from infinity Projections planar geometric projections non-planar projections

Fundamentals of Computer Graphics3 Classical Views principal faces; architectural building-mostly orthogonal faces front, back, top, bottom, right, left faces

Fundamentals of Computer Graphics4 Orthographic Projections Multi-view orthographic projection (rovnoběžné promítání) 3 views & orthogonal preserves angles

Fundamentals of Computer Graphics5 Axonometric Projections shortening of distances Views: a.trimetric b.top c.side

Fundamentals of Computer Graphics6 Oblique Projections Views: a.construction b.top c.side Oblique (kosoúhlá) projection – most general parallel views

Fundamentals of Computer Graphics7 Perspective Projections Vanishing point(s) (úběžník) one-point two-points three-points perspectives

Fundamentals of Computer Graphics8 Camera positioning ! right-handed x left-handed coordinates glOrtho(...., near,far) measured from the camera glTranslate (0.0, 0.0, -d); /* moves the camera in positive dir.of z Vanishing point(s) (úběžník) one-point two-points three-points perspectives

Fundamentals of Computer Graphics9 Camera positioning Order: 1.rotate 2.move away from the origin We want to see objects from distance d and from x axis direction: glMatrixMode(GL_MODEL_VIEW); glLoadIdentity ( ); glTranslate (0.0, 0.0, -d); glRotate(-90.0, 0.0, 1.0, 0.0);

Fundamentals of Computer Graphics10 Camera positioning glMatrixMode(GL_MODELVIEW); glLoadIdentity (); glTranslatef(0.0, 0.0, -d); /* 3-rd */ glRotatef(35.26, 1.0, 0.0, 0.0); /* 2-nd */ glRotatef(45.0, 0.0, 1.0, 0.0); /* 1-st */ Isometric view of a cube [-1,-1,-1] x [1,1,1] Order: 1.rotate about y-axis 2.rotate about x-axis 3.move away from the origin corner [-1,1,1] to be transformed to [0,1,  2]  35.26°

Fundamentals of Computer Graphics11 Two viewing API’s VRP – View Reference Point – origin is implicit set_view_reference_point(x,y,z); VPN – View Plane Normal – orientation of projection plane – camera back set_view_plane_normal(nx, ny,nz); VUP – View-UP vector - specifies what direction is up from the camera’s perspective set_view_up(vup_x, vup_y, vup_z); Unsatisfactory camera specification Starting point – world frame – description of camera position and orientation; precise type of image – perspective or parallel defined separately – Projection Matrix specification

Fundamentals of Computer Graphics12 Two viewing API’s v vector is obtained by VUP vector projection on the view plane; v is orthogonal to normal n This orthogonal system is referred as viewing-coordinate system or u-v-n system with VRP added - desired camera frame The matrix that DOES the change of frames is the view-orientation matrix p = [x,y,z,1] T – view-reference point n = [n x, n y, n z,0] T – view-plane normal v up = [v upx, v upy, v upz,0] T – view-up vector

Fundamentals of Computer Graphics13 Two viewing API’s New frame construction view-reference point as its origin view-plane normal as one coordinate direction two other directions u & v Default x, y, z axes become u, v, n now Model-view matrix V = T R ; v & n must be orthogonal n T v = 0 v is a projection of v up into the plane formed by n & v up – it must be a linear combination of these two vectors v =  n +  v up If the length of v is ignored,  = 1 can be set and  = - p T n / n T nv = p – ( p T n / n T n ) nu = v x n

Fundamentals of Computer Graphics14 Two viewing API’s Vectors u, v, n can be normalized independently to u’, v’, n’ Matrix M is a rotation matrix that orients u’, v’, n’ system with respect to the original system We want inversion matrix R R = M -1 = M T Finally the model-view matrix V = T R For our isometric example p = (  3/3) [-d,d,d,1] T n = [-1,1,1,0] T v up = [0,1,0,0] T

Fundamentals of Computer Graphics15 Look-At Function VRP, VPN & VUP specifies camera position Straightforward method: e – camera position (called eye-point) a – position to look at (called at point) vpn = e – a gluLookAt(eye_x, eye_y, eye_z, at_x, at_y, at_z ) ;

Fundamentals of Computer Graphics16 Others Viewing APIs For some applications others viewing transformations are needed flight simulation applications – roll, pitch, yaw –angles are specified relative to the center of mass –distance is counted from the center of mass of the vehicle astronomy etc. requires polar or spherical coordinates –elevation, azimuth camera can rotate – twist angle

Fundamentals of Computer Graphics17 Camera is pointing in the negative z-direction, d < 0 x / z = x p / d x p = x / (z /d) y p = y / (z /d) division by z describes non-uniform foreshortening Perspective transformation preserves lines, but it is not affine it is irreversible Perspective Projections

Fundamentals of Computer Graphics18 for w  0 - point represented as p = [ wx, wy, wz, w] T Usually w = 1 p = [ x, y, z, 1] T q = M p q = [ x, y, z, z/d] T q’ = [ x / (z/d), y / (z/d), d, 1] T = [ x p, y p, z p, 1] T Perspective Projections Perspective transformation can be represented by 4 x 4 matrix - perspective division must be part of the pipeline

Fundamentals of Computer Graphics19 Orthogonal or orthographic projection is a special case After projection: x p = x y p = y z p = 0 Orthogonal Projections

Fundamentals of Computer Graphics20 We haven’t taken properties of the camera so far –angle of view –view volume frustrum – truncated pyramid objects not within the view volume are said to be clipped out Projections in OpenGL

Fundamentals of Computer Graphics21 Perspective viewing in OpenGL Typical sequence: glMatrixMode (GL_PROJECTION); glLoadIdentity ( ); glFrustrum(xmin, xmax, ymin, ymax, near, far); near & far distances must be positive and measured from the COP be careful about the signs !

Fundamentals of Computer Graphics22 Perspective viewing in OpenGL Typical sequence: glMatrixMode (GL_PROJECTION); glLoadIdentity ( ); gluPerspective (fovy, aspect, near, far); fovy – view angle in y-axis aspect – aspect ratio width/height

Fundamentals of Computer Graphics23 Parallel viewing in OpenGL Typical sequence: glMatrixMode (GL_PROJECTION); glLoadIdentity ( ); glOrtho (xmin, xmax, ymin, ymax, near, far); /* restriction far > near */

Fundamentals of Computer Graphics24 Algorithms object space image space –z-buffer – requires depth or z-buffer Hidden Surface Removal Typical sequence: glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glEnable(GL_DEPTH_TEST); Clear the buffer before new rendering glClear(GL_DEPTH_BUFFER_BIT); /* study example in chapter 5.6 */

Fundamentals of Computer Graphics25 Projection Normalization – converts all projections into orthogonal projections by first distorting objects – result after projection is the same a.perspective view b.orthographic projection of distorted objects Projection Normalization

Fundamentals of Computer Graphics26 glOrtho defines mapping to the standard volume - canonical volume Operations: translate to the center scaling Projection matrix P = S T Orthogonal-Projection Matrices

Fundamentals of Computer Graphics27 P = S T Orthogonal-Projection Matrices Study Oblique projection on your own – chapter

Fundamentals of Computer Graphics28 Perspective normalization – canonical pyramid x =  zy =  z (speeds-up pyramidal clipping) near plane z = z min far plane z = z max values are negative and therefore z max > z min Perspective-Projection Matrices

Fundamentals of Computer Graphics29 Consider a matrix N p = [ x, y, z, 1] T q = [ x’, y’, z’, w’] T q = N p x’ = xy’ = y z’ =  z +  w’ = -z after dividing x’’ = - x /dy’’ = -y /d z’’ = -(  +  / z)w’’= 1 if orthographic projection is applied along to z axis p’ = M orth N p = [ x, y, 0, -z ] T Perspective-Projection Matrices

Fundamentals of Computer Graphics30 Pyramidal sides x =  z y =  z are transformed to x =  1 y =  1 front plane z = z min to back plane z = z max to Perspective-Projection Matrices If then z = z min is mapped to z’’ = -1 z = z max is mapped to z’’ = +1

Fundamentals of Computer Graphics31 Matrix N transforms the viewing frustrum to a right parallelpiped and an orthogonal projection in the transformed volume yields to the same image as does perspective projection. N is called perspective normalization matrix Perspective-Projection Matrices Study a non-symmetric frustrum transformations, shadows Chap.5.9. on your own

Fundamentals of Computer Graphics32 Conclusion - Chapter5 You have learnt mathematical background and API for projections – parallel, oblique and perspective Try to find a solution for: 1.define transformations needed for flight simulator as a composition of existing ones 2.application of projections for a display walls (4 x 3 screens, using non-symmetric viewing frustrum) 3.imagine a cube in perspective projection. Observer is –in front of the object –inside of the object what he will see, what you will get if you use geometric transformations and projection matrices and what OpenGL gives you? Discuss results!