CSCE 441 Computer Graphics 3-D Viewing

Slides:



Advertisements
Similar presentations
Three Dimensional Viewing
Advertisements

1 Computer Graphics Chapter 8 3D Transformations.
Three-Dimensional Viewing Sang Il Park Sejong University Lots of slides are stolen from Jehee Lee’s.
Viewing and Projections
Foundations of Computer Graphics (Spring 2010) CS 184, Lecture 5: Viewing
Announcements. Projection Today’s Readings Nalwa 2.1.
CS485/685 Computer Vision Prof. George Bebis
1 Jinxiang Chai CSCE 441 Computer Graphics. 2 Midterm Time: 10:10pm-11:20pm, 10/20 Location: HRBB 113.
Announcements Mailing list Project 1 test the turnin procedure *this week* (make sure it works) vote on best artifacts in next week’s class Project 2 groups.
Lecture 12: Projection CS4670: Computer Vision Noah Snavely “The School of Athens,” Raphael.
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2008 Tamara Munzner Viewing/Projections I.
Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics Fall 2006 (Slide set originally by Greg Humphreys)
Projection Projection - the transformation of points from a coordinate system in n dimensions to a coordinate system in m dimensions where m
Perspective projection
Introduction to 3D viewing 3D is just like taking a photograph!
Viewing and Projections
2 COEN Computer Graphics I Evening’s Goals n Discuss the mathematical transformations that are utilized for computer graphics projection viewing.
CS559: Computer Graphics Lecture 9: Projection Li Zhang Spring 2008.
Graphics Graphics Korea University cgvr.korea.ac.kr 3D Viewing 고려대학교 컴퓨터 그래픽스 연구실.
CS-378: Game Technology Lecture #2.1: Projection Prof. Okan Arikan University of Texas, Austin Thanks to James O’Brien, Steve Chenney, Zoran Popovic, Jessica.
Computer Graphics Bing-Yu Chen National Taiwan University.
CAP4730: Computational Structures in Computer Graphics 3D Transformations.
CS 450: COMPUTER GRAPHICS PROJECTIONS SPRING 2015 DR. MICHAEL J. REALE.
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.
CS 445 / 645 Introduction to Computer Graphics Lecture 10 Camera Models Lecture 10 Camera Models.
Basic Perspective Projection Watt Section 5.2, some typos Define a focal distance, d, and shift the origin to be at that distance (note d is negative)
Review on Graphics Basics. Outline Polygon rendering pipeline Affine transformations Projective transformations Lighting and shading From vertices to.
Jinxiang Chai CSCE 441 Computer Graphics 3-D Viewing 0.
Three-Dimensional Viewing
Three-Dimensional Viewing Hearn & Baker Chapter 7
Foundations of Computer Graphics (Spring 2012) CS 184, Lecture 5: Viewing
12/24/2015 A.Aruna/Assistant professor/IT/SNSCE 1.
Rendering Pipeline Fall, D Polygon Rendering Many applications use rendering of 3D polygons with direct illumination.
Taxonomy of Projections FVFHP Figure Taxonomy of Projections.
Viewing and Projection
Coordinate Systems Lecture 1 Fri, Sep 2, The Coordinate Systems The points we create are transformed through a series of coordinate systems before.
CS559: Computer Graphics Lecture 9: 3D Transformation and Projection Li Zhang Spring 2010 Most slides borrowed from Yungyu ChuangYungyu Chuang.
Viewing and Projection. The topics Interior parameters Projection type Field of view Clipping Frustum… Exterior parameters Camera position Camera orientation.
Viewing. Classical Viewing Viewing requires three basic elements - One or more objects - A viewer with a projection surface - Projectors that go from.
Outline 3D Viewing Required readings: HB 10-1 to 10-10
Computer Graphics Projections.
Three Dimensional Viewing
Rendering Pipeline Fall, 2015.
Computer Graphics CC416 Week 14 3D Graphics.
CSE 167 [Win 17], Lecture 5: Viewing Ravi Ramamoorthi
The Camera : Computational Photography
3D Viewing cgvr.korea.ac.kr.
Rendering Pipeline Aaron Bloomfield CS 445: Introduction to Graphics
Modeling 101 For the moment assume that all geometry consists of points, lines and faces Line: A segment between two endpoints Face: A planar area bounded.
Unit 4 3D Viewing Pipeline Part - 2
Lecture 9: Projection Li Zhang Spring 2008
CENG 477 Introduction to Computer Graphics
Viewing/Projections I Week 3, Fri Jan 25
Three Dimensional Viewing
OpenGL 2D Viewing Pipeline
University of British Columbia CPSC 314 Computer Graphics Jan-Apr 2016
CSC4820/6820 Computer Graphics Algorithms Ying Zhu Georgia State University View & Projection.
Lecture 13: Cameras and geometry
Computer Graphics (Spring 2003)
The Camera : Computational Photography
Announcements Midterm out today Project 1 demos.
Last Time Canonical view pipeline Projection Local Coordinate Space
3D Graphics.
Chap 3 Viewing Pipeline Reading:
Viewing (Projections)
Viewing (Projections)
Interactive Computer Graphics Viewing
CSCE441: Computer Graphics 2D/3D Transformations
THREE-DIMENSIONAL VIEWING II
Announcements Midterm out today Project 1 demos.
Presentation transcript:

CSCE 441 Computer Graphics 3-D Viewing Dr. Jinxiang Chai

Outline 3D Viewing Required readings: HB 7-1 to 7-10 Compile and run the codes in page 388 1

Taking Pictures Using A Real Camera Steps: - Identify interesting objects - Rotate and translate the camera to a desire camera viewpoint - Adjust camera settings such as focal length - Choose desired resolution and aspect ratio, etc. - Take a snapshot

Taking Pictures Using A Real Camera Steps: - Identify interesting objects - Rotate and translate the camera to a desire camera viewpoint - Adjust camera settings such as focal length - Choose desired resolution and aspect ratio, etc. - Take a snapshot Graphics does the same thing for rendering an image for 3D geometric objects

3D Geometry Pipeline Object space World space View space Rotate and translate the camera Object space World space View space Focal length Aspect ratio & resolution Normalized projection space Image space 4

3D Geometry Pipeline Model space (Object space) Before being turned into pixels by graphics hardware, a piece of geometry goes through a number of transformations... Model space (Object space)

3D Geometry Pipeline World space (Object space) Before being turned into pixels by graphics hardware, a piece of geometry goes through a number of transformations... World space (Object space)

3D Geometry Pipeline Eye space (View space) Before being turned into pixels by graphics hardware, a piece of geometry goes through a number of transformations... Eye space (View space)

Normalized projection space 3D Geometry Pipeline Before being turned into pixels by graphics hardware, a piece of geometry goes through a number of transformations... Normalized projection space

Image space, window space, raster space, screen space, device space 3D Geometry Pipeline Before being turned into pixels by graphics hardware, a piece of geometry goes through a number of transformations... Image space, window space, raster space, screen space, device space

Normalized project space 3D Geometry Pipeline Object space World space View space Normalized project space Image space

Translate, scale &rotate 3D Geometry Pipeline Translate, scale &rotate Object space World space glTranslate*(tx,ty,tz)

Translate, scale &rotate 3D Geometry Pipeline Translate, scale &rotate Object space World space glScale*(sx,sy,sz)

Translate, scale &rotate 3D Geometry Pipeline Translate, scale &rotate Object space World space Rotate about r by the angle glRotate*

Normalized project space 3D Geometry Pipeline Object space World space View space Normalized project space Image space Screen space

3D Geometry Pipeline World space View space Now look at how we would compute the world->eye transformation World space View space

3D Geometry Pipeline World space View space Now look at how we would compute the world->eye transformation Rotate&translate World space View space

Camera Coordinate

Camera Coordinate Canonical coordinate system - usually right handed (looking down –z axis) - convenient for project and clipping

Camera Coordinate Mapping from world to eye coordinates - eye position maps to origin - right vector maps to x axis - up vector maps to y axis - back vector maps to z axis

Viewing Transformation We have the camera in world coordinates We want to transformation T which takes object from world to camera

Viewing Transformation We have the camera in world coordinates We want to transformation T which takes object from world to camera Trick: find T-1 taking object from camera to world

Viewing Transformation We have the camera in world coordinates We want to transformation T which takes object from world to camera Trick: find T-1 taking object from camera to world ?

Review: 3D Coordinate Trans. Transform object description from to p

Review: 3D Coordinate Trans. Transform object description from to p 24

Review: 3D Coordinate Trans. Transform object description from camera to world

Viewing Transformation Trick: find T-1 taking object from camera to world - eye position maps to origin - back vector maps to z axis - up vector maps to y axis - right vector maps to x axis

Viewing Transformation Trick: find T-1 taking object from camera to world H&B equation (7-4)

Viewing Trans: gluLookAt gluLookAt (eyex,eyey,eyez,atx,aty,atz,upx, upy,upz)

Viewing Trans: gluLookAt Mapping from world to eye coordinates gluLookAt (eyex,eyey,eyez,atx,aty,atz,upx, upy,upz) How to determine ?

Viewing Trans: gluLookAt Mapping from world to eye coordinates gluLookAt (eyex,eyey,eyez,atx,aty,atz,upx, upy,upz)

Viewing Trans: gluLookAt Mapping from world to eye coordinates gluLookAt (eyex,eyey,eyez,atx,aty,atz,upx, upy,upz)

Viewing Trans: gluLookAt Mapping from world to eye coordinates gluLookAt (eyex,eyey,eyez,atx,aty,atz,upx, upy,upz) Stop here. H&B equation (7-1)

3D-3D viewing transformation 3D Geometry Pipeline 3D-3D viewing transformation World space View space

Projection General definition transform points in n-space to m-space (m<n) In computer graphics map 3D coordinates to 2D screen coordinates

Projection General definition transform points in n-space to m-space (m<n) In computer graphics map 3D coordinates to 2D screen coordinates How can we project 3d objects to 2d screen space?

How Do We See the World? Let’s design a camera: idea 1: put a piece of film in front of camera Do we get a reasonable picture?

Pin-hole Camera Add a barrier to block off most of the rays This reduces blurring The opening known as the aperture How does this transform the image?

Camera Obscura The first camera Known to Aristotle Depth of the room is the focal length Pencil of rays – all rays through a point

Perspective Projection Maps points onto “view plane” along projectors emanating from “center of projection” (COP)

Perspective Projection Maps points onto “view plane” along projectors emanating from “center of projection” (COP) What’s relationship between 3D points and projected 2D points? 40

3D->2D Consider the projection of a 3D point on the camera plane

3D->2D Consider the projection of a 3D point on the camera plane 42

3D->2D Consider the projection of a point on the camera plane By similar triangles, we can compute how much the x and y coordinates are scaled

3D->2D Consider the projection of a point on the camera plane By similar triangles, we can compute how much the x and y coordinates are scaled

Homogeneous Coordinates Is this a linear transformation?

Homogeneous Coordinates Is this a linear transformation? no—division by z is nonlinear

Homogeneous Coordinates Is this a linear transformation? no—division by z is nonlinear Trick: add one more coordinate: homogeneous image coordinates homogeneous scene coordinates

Homogeneous Point Revisited Remember how we said 2D/3D geometric transformations work with the last coordinate always set to one What happens if the coordinate is not one We divide all coordinates by w: If w=1, nothing happens Sometimes, we call this division step the “perspective divide”

The Perspective Matrix Now we can rewrite the perspective projection equation as matrix-vector multiplications

The Perspective Matrix Now we can rewrite the perspective projection equation as matrix-vector multiplications This becomes a linear transformation!

The Perspective Matrix Now we can rewrite the perspective projection equation as matrix-vector multiplications After the division by w, we have

Perspective Effects Distant object becomes small The distortion of items when viewed at an angle (spatial foreshortening)

Perspective Effects Distant object becomes small The distortion of items when viewed at an angle (spatial foreshortening)

Perspective Effects Distant object becomes small The distortion of items when viewed at an angle (spatial foreshortening)

Properties of Perspective Proj. Perspective projection is an example of projective transformation - lines maps to lines - parallel lines do not necessary remain parallel - ratios are not preserved

Properties of Perspective Proj. Perspective projection is an example of projective transformation - lines maps to lines - parallel lines do not necessary remain parallel - ratios are not preserved One of advantages of perspective projection is that size varies inversely proportional to the distance-looks realistic

Vanishing Points What happens to parallel lines they are not parallel to the projection plane?

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line:

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line: After perspective transformation, we have

Vanishing Points (cont.) Letting t go to infinity:

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line:

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line: How about the line

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line: How about the line

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? The equation of the line: How about the line Same vanishing point!

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? Each set of parallel lines intersect at a vanishing point on the PP

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? Each set of parallel lines intersect at a vanishing point on the PP How many vanishing points are there?

Vanishing Points What happens to parallel lines they are not parallel to the projection plane? Each set of parallel lines intersect at a vanishing point on the PP How many vanishing points are there?

Parallel Projection Center of projection is at infinity Direction of projection (DOP) same for all points

Orthographic Projection Direction of projection (DOP) perpendicular to view plane

Orthographic Projection Direction of projection (DOP) perpendicular to view plane

Oblique Projection DOP not perpendicular to view plane A’ A O

Oblique Projection DOP not perpendicular to view plane A’ A O

Properties of Parallel Projection Not realistic looking Good for exact measurement Are actually affine transformation - parallel lines remain parallel - ratios are preserved - angles are often not preserved Most often used in CAD, architectural drawings, etc. where taking exact measurement is important

3D->2D Perspective projection from 3D to 2D 74

3D->2D Perspective projection from 3D to 2D But so far, we have not considered the size of film plane! 75

Normalized project space 3D Geometry Pipeline Object space World space View space Normalized project space Image space Screen space

Perspective Projection Volume The center of projection and the portion of projection plane that map to the final image form an infinite pyramid. The sides of pyramid called clipping planes Additional clipping planes are inserted to restrict the range of depths

OpenGL Perspective-Projection Normalized project space View space glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) gluPerspective(fovy,aspect,dnear, dfar) 78

General Perspective-Projection zfar (xwmax,ywmax,znear) (xwmin,ywmin,Znear) View space glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) Six parameters define six clipping planes!

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) Left-vertical clipping plane

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) right-vertical clipping plane

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) bottom-horizontal clipping plane

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) top-horizontal clipping plane

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) near clipping plane

General Perspective-Projection glFrustum(xwmin, xwmax,ywmin, ywmax ,dnear,dfar) far clipping plane

General Perspective-Projection B’=(1,1,1) B A A’=(-1,-1,-1) View space (right-handed) Normalized project space (left-handed) A maps to A’, B maps to B’ Keep the directions of x and y axes!

General Perspective-Projection B’=(1,1,1) B A A’=(-1,-1,-1) H&B equation (7-40)

OpenGL Symmetric Perspective-Projection Function gluPerspective(fovy,aspect,dnear, dfar) Assume z-axis is the centerline of 3D view frustum!

Normalized project space 3D Geometry Pipeline Object space World space View space Normalized project space Image space

Viewport Transformation (xmin,ymin) Image space-.>Image space gluViewport(xmin, ymin, width, height)

Viewport Transformation (xmin,ymin) Besides x and y, each pixel has a depth value z! Image space-.>Image space gluViewport(xmin, ymin, width, height)

Viewport Transformation B’=(1,1,1) B’’=(xvmax,yvmax,1) Normalized project space A’’=(xvmin,yvmin,0) A’=(-1,-1,-1) Normalized project space Image space

Viewport Transformation B’=(1,1,1) B’’=(xvmax,yvmax,1) Normalized project space A’’=(xvmin,yvmin,0) A’=(-1,-1,-1) Normalized project space Image space H&B equation (7-42)

Summary: 3D Geometry Pipeline Object space World space View space Normalized project space Image space

Normalized project space Taking Steps Together Object space World space View space Normalized project space Image space

OpenGL Codes