Download presentation
Presentation is loading. Please wait.
1
Lecture 9: Projection Li Zhang Spring 2008
CS559: Computer Graphics Lecture 9: Projection Li Zhang Spring 2008
2
Today Projection Reading: Shirley ch 7
Last time, we talked how to sample a continuous light pattern into a discrete iamge. How to resample an discrete at different resolution or sampling rate. This lecture, we’ll look at what operation we can do on a discrete image. We’ll start with convolution
3
Geometric Interpretation 3D Rotations
Can construct rotation matrix from 3 orthonormal vectors Rows of matrix are 3 unit vectors of new coord frame Effectively, projections of point into new coord frame First row
4
The 3D synthetic camera model
3D model and virtual camera Simulate how light goes through the camera to form an image The synthetic camera model involves two components, specified independently: objects (a.k.a. geometry) viewer (a.k.a. camera)
5
Imaging with the synthetic camera
In graphics, we don’t need to put film in the box, we can image putting it in front of the camera, What’s the difference? Upside down. Conceptually trivial. Connecting each point on the model, find the intersection, draw the color there. For modeling, repeat shapes, waste of time to create pillar for every pillar. Having one and move it around. In general, we have library of objects. That’s the modeling part. We’ll be looking at those later on. The image is rendered onto an image plane or projection plane (usually in front of the camera). Rays emanate from the center of projection (COP) at the center of the lens (or pinhole). The image of an object point P is at the intersection of the ray through P and the image plane.
6
Specifying a viewer Camera specification requires four kinds of parameters: Position: the COP. Orientation: rotations about axes with origin at the COP. Focal length: determines the size of the image on the film plane, or the field of view. Film plane: its width and height. In this lecture, we’ll be focusing on the camera part.
7
3D Geometry Pipeline Model Space (Object Space) World Space Rotation
Library of objects Each one is in its’ own coord. Uint cube, unit sphere Model Space (Object Space) World Space Rotation Translation Resizing
8
3D Geometry Pipeline Model Space (Object Space) Eye Space (View Space)
Setting up the frustrum, fov, cliping plane. Occlusion, visibility changes Converging is OK, but not most convenient to implement, instead… Model Space (Object Space) Eye Space (View Space) World Space Rotation Translation Projective, Scale Translation Rotation Translation Resizing
9
3D Geometry Pipeline (cont’d)
Every thing here is still in 3D Continuous light pattern hitting the sensor plane Sample the lighting pattern to form a digital image Normalized Projection Space Image Space (pixels) Raster Space Screen Space (2D) Project Scale Translation
10
World -> eye transformation
Let’s look at how we would compute the world->eye transformation. This is a simple exercise of the last slide of Monday lecture or first slide of today’s lecture This is a good test whether you really understand the geometric interpretation of rotation
11
World -> eye transformation
Let’s look at how we would compute the world->eye transformation. This is a good test whether you really understand the geometric interpretation of rotation P-e is a translation Dot is rotation
12
How to specify eye coordinate?
Z negative convetion Which is vertical direction, or up vector? Advantage, no need to have u.ze=0 Give eye location e Give target position p Give upward direction u OpenGL has a helper command: gluLookAt (eyex, eyey, eyez, px, py, pz, upx, upy, upz )
13
Projections Projections transform points in n-space to m-space, where m<n. In 3-D, we map points from 3-space to the projection plane (PP) (a.k.a., image plane) along rays emanating from the center of projection (COP): There are two basic types of projections: Perspective – distance from COP to PP finite Parallel – distance from COP to PP infinite
14
Parallel projections For parallel projections, we specify a direction of projection (DOP) instead of a COP. We can write orthographic projection onto the z=0 plane with a simple matrix, such that x’=x, y’=y. Drop z value
15
Parallel projections For parallel projections, we specify a direction of projection (DOP) instead of a COP. We can write orthographic projection onto the z=0 plane with a simple matrix, such that x’=x, y’=y. Normally, we do not drop the z value right away. Why not? Drop z value You may wonder, why bother to introduce so many zeros to have a matrix. You will see later the unification reason later.
16
Properties of parallel projection
Are actually a kind of affine transformation Parallel lines remain parallel Ratios are preserved Angles not (in general) preserved Not realistic looking Good for exact measurements, Most often used in CAD, architectural drawings, etc., where taking exact measurement is important Scanalyze
17
Perspective effect Distant objects are smaller Paralle lines meet
18
Perspective Illusion
19
Perspective Illusion
20
Derivation of perspective projection
y/z = y’/-d y’ = -y/z d x’ = -x/z d Distant things look smaller Consider the projection of a point onto the projection plane: By similar triangles, we can compute how much the x and y coordinates are scaled:
21
Homogeneous coordinates and perspective projection
Now we can re-write the perspective projection as a matrix equation: x/z const, map to the same point What’s important here is that we can represent nonlinear thing using homo coord Only last row is different (4,4) is no longer zero Decompose complex tasks into simpler ones. Lost z is not best choice. Orthographic projection
22
Vanishing points What happens to two parallel lines that are not parallel to the projection plane? Think of train tracks receding into the horizon... The equation for a line is: After perspective transformation we get: 0 directional vector P is one point here V is the direction of the rail T is the step
23
Vanishing points (cont'd)
Dividing by w: Letting t go to infinity: We get a point! What happens to the line l = q + tv? Each set of parallel lines intersect at a vanishing point on the PP. Q: How many vanishing points are there? x’ = -vx/vz d y’ = -vy/vz d Inf number of vanishing points Same v means the two lines are parapllel
24
Vanishing points
25
Vanishing points
26
Vanishing points
27
General Projective Transformation
The perspective projection is an example of a projective transformation.
28
Properties of perspective projections
Here are some properties of projective transformations: Lines map to lines Parallel lines do not necessarily remain parallel Ratios are not preserved One of the advantages of perspective projection is that size varies inversely with distance – looks realistic. A disadvantage is that we can't judge distances as exactly as we can with parallel projections. Stereo, occlusions, perspective (comparative size), focus, motion parallax Auxiliary: sound
29
3D Geometry Pipeline Model Space (Object Space) Eye Space (View Space)
Setting up the frustrum, fov, cliping plane. Occlusion, visibility changes Converging is OK, but not most convenient to implement, instead… Model Space (Object Space) Eye Space (View Space) World Space Rotation Translation Projective, Scale Translation Rotation Translation Resizing
30
Clipping and the viewing frustum
The center of projection and the portion of the projection plane that map to the final image form an infinite pyramid. The sides of the pyramid are clipping planes. Frequently, additional clipping planes are inserted to restrict the range of depths. These clipping planes are called the near and far or the hither and yon clipping planes. All of the clipping planes bound the viewing frustum. The basic equations we have seen give a flavor of what happens, but they are insufficient for all applications They do not get us to a Canonical View Volume They make assumptions about the viewing conditions To get to a Canonical Volume, we need a Perspective Volume …
31
Clipping and the viewing frustum
Notice that it doesn’t really matter where the image plane is located, once you define the view volume You can move it forward and backward along the z axis and still get the same image, only scaled Usually d = near
32
Clipping Planes The left/right/top/bottom planes are defined according to where they cut the near clip plane Left Clip Plane Near Clip Plane xv Far Clip Plane View Volume l n -zv f r What is image size Right Clip Plane Need 6 parameters, Or, define the left/right and top/bottom clip planes by the field of view
33
Field of View Assumes a symmetric view volume Left Clip Plane
Near Clip Plane xv Far Clip Plane View Volume FOV -zv f Image size Right Clip Plane Need 4 parameters, Or, define the near, far, fov, aspect ratio
34
Focal Distance to FOV You must have the image size to do this conversion Why? Same d, different image size, different FOV height/2 d FOV/2 d
35
Perspective Parameters
We have seen three different ways to describe a perspective camera Clipping planes, Field of View, Focal distance, The most general is clipping planes – they directly describe the region of space you are viewing For most graphics applications, field of view is the most convenient You can convert one thing to another
36
Perspective Projection Matrices
We want a matrix that will take points in our perspective view volume and transform them into the orthographic view volume This matrix will go in our pipeline before an orthographic projection matrix (r,t,f) (r,t,f) (r,t,n) Parallel is eariser than perspective Clipping is more efficient (r,t,n) (l,b,n) (l,b,n)
37
Mapping Lines y -z We want to map all the lines through the center of projection to parallel lines This converts the perspective case to the orthographic case, we can use all our existing methods The relative intersection points of lines with the near clip plane should not change The matrix that does this looks like the matrix for our simple perspective case n f
38
How to get this mapping? y -z n f
39
Properties of this mapping
y -z n f If z = n, M(x,y,z,1) = [x,y,z,1] near plane is unchanged If x/z = c1, y/z = c2, then x’=n*c1, y’=n*c2 bending converging rays to parallel rays If z1 < z2, z1’ < z2’ z ordering is preserved
40
General Perspective
41
To Canonical view volume
Perspective projection transforms a pyramid volume to an orthographic view volume (r,t,f) (r,t,f) (r,t,n) (r,t,n) (l,b,n) (l,b,n) Rotate, translate Parallel is eariser than perspective Clipping is more efficient (-1,1,-1) (1,-1,1) Canonical view volume [-1,1]^3
42
Orthographic View to Canonical Matrix
43
Orthographic View to Canonical Matrix
44
Complete Perspective Projection
After applying the perspective matrix, we map the orthographic view volume to the canonical view volume:
45
3D Geometry Pipeline Model Space (Object Space) Eye Space (View Space)
Setting up the frustrum, fov, cliping plane. Converging is OK, but not most convenient to implement, instead… Model Space (Object Space) Eye Space (View Space) World Space Rotation Translation Projective, Scale Translation Rotation Translation Resizing
46
3D Geometry Pipeline (cont’d)
Continuous light pattern hitting the sensor plane Sample the lighting pattern to form a digital image Normalized Projection Space Image Space (pixels) Raster Space Screen Space (2D) Project Scale Translation
47
Canonical Window Transform
(1,1) (xmax,ymax) (xmin,ymin) (-1,-1)
48
Canonical Window Transform
(1,1) (xmax,ymax) (xmin,ymin) (-1,-1)
49
Mapping of Z is nonlinear
Many mappings proposed: all have nonlinearities Advantage: handles range of depths (10cm – 100m) Disadvantage: depth resolution not uniform More close to near plane, less further away Common mistake: set near = 0, far = infty. Don’t do this. Can’t set near = 0; lose depth resolution.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.