# CS 445 / 645 Introduction to Computer Graphics Lecture 10 Camera Models Lecture 10 Camera Models

date post

17-Jan-2016Category

## Documents

view

222download

3

Embed Size (px)

### Transcript of CS 445 / 645 Introduction to Computer Graphics Lecture 10 Camera Models Lecture 10 Camera Models

CS 445 / 645Introduction to Computer GraphicsLecture 10Camera Models

Where are we?Rendering PipelineModeling TransformationIlluminationViewing TransformationClippingProjectionRasterizationDisplay

Pinhole CameraIngredientsBoxFilmHole PunchResultsPictures!www.kodak.comwww.pinhole.orgwww.debevec.org

Pinhole CameraNon-zero sized holeFilm PlanePinholeMultiple raysof projection

Pinhole CameraTheoretical PinholeFilm PlanePinholeOne rayof projection

Pinhole CameraField of ViewFilm PlaneField of ViewPinholeFocal Length

Pinhole CameraField of ViewFilm PlaneField of ViewPinholeFocal Length

Moving the Film PlaneVarying distance to film planeWhat does this do?Film Planed1Field of ViewPinholed2

Adding a LensPinhole camera has small aperture (lens opening)Its hard to get enough light to expose the filmLens permits larger aperturesLens permits changing distance to film plane without actually moving the film plane

Computer Graphic CameraWe use Center of Projection (COP)Projection PlaneCOPProjectionPlane

Moving the COPPerspective vs. Orthographic ViewsPerspectiveWhen COP at infinity, Orthographic View

Multi-point PerspectiveOne-point PerpectiveOne Vanishing Point

Two-point PerspectiveTwo Vanishing Pointshttp://www.sanford-artedventures.com/create/tech_2pt_perspective.html

Perspective ProjectionOur camera must model perspective

Perspective ProjectionCOPProjection Plane

Perspective ProjectionThe geometry of the situation is that of similar triangles. View from above:

What is x ? dP (x, y, z)XZView plane(0,0,0)x = ?

Perspective ProjectionDesired result for a point [x, y, z, 1]T projected onto the view plane:

What could a matrix look like to do this?

A Perspective Projection MatrixAnswer:

A Perspective Projection MatrixExample:

Or, in 3-D coordinates:

Homogeneous CoordinatesThe role of w in (x, y, z, w)All 3-D points are described with a four vectorAll 3-D tranformations are represented with 4x4 matrixWhen projected to screen coordinates (rasterization)x, y, and z are divided by points w valueThis allows us to perform perspective foreshortening while preserving the reversibility of the mappingWe can retrieve x, y, and z by multiplying by w

Perspective ProjectionPerspective projection matrix is not affineParallel lines not preservedPerspective projection is irreversibleMany 3-D points can be mapped to same (x, y, d) on the projection planeNo way to retrieve the unique z values

Orthographic Camera ProjectionCameras back plane parallel to lensInfinite focal lengthNo perspective convergence

PipelineModelviewPerspective DivisionProjectionClipRasterize

OpenGL PipelineProjection matrix is stored in GL_PROJECTION stackThis controls type of cameraAll vertices are multiplied by this matrixGL_MODELVIEW controls camera locationAll vertices are multiplied by this matrix

Making GL_PROJECTIONglFrustum for perspective projectionsxminxmaxyminymaxnear farCamera looks along zmin/max need not be symmetric about any axisnear and far planes are parallel to plane z=0

Making GL_PROJECTIONgluPerspective for perspective projectionsfovyaspectnearfar

fovy is the angle between top and bottom of viewing volumeaspect is ratio of width over heightThis volume is symmetricalView plane is parallel to camera

Making GL_PROJECTIONglOrtho for orthographic projectionsleftrightbottomtopnearfar(left, bottom) and (right, top) define dimensions of projection planenear and far used to clip

Making GL_PROJECTIONIts like any other matrixThese OpenGL commands just build a matrix for youYou could build the matrix yourselfYou can multiply the GL_PROJECTION matrix by any affine transformation you wishNot typically needed

*View more*