• 沒有找到結果。

Computer Viewing

N/A
N/A
Protected

Academic year: 2022

Share "Computer Viewing"

Copied!
21
0
0

加載中.... (立即查看全文)

全文

(1)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 1

Computer Viewing

Ed Angel

Professor of Computer Science, Electrical and Computer

Engineering, and Media Arts University of New Mexico

(2)

Objectives

• Introduce the mathematics of projection

• Introduce OpenGL viewing functions

• Look at alternate viewing APIs

(3)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 3

Computer Viewing

• There are three aspects of the viewing process, all of which are implemented in the pipeline,

- Positioning the camera

Setting the model-view matrix

- Selecting a lens

Setting the projection matrix

- Clipping

Setting the view volume

(4)

The OpenGL Camera

• In OpenGL, initially the object and camera frames are the same

- Default model-view matrix is an identity

• The camera is located at origin and points in the negative z direction

• OpenGL also specifies a default view

volume that is a cube with sides of length 2 centered at the origin

- Default projection matrix is an identity

(5)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 5

Default Projection

Default projection is orthogonal

clipped out

z=0 2

(6)

Moving the Camera Frame

• If we want to visualize object with both positive and negative z values we can either

- Move the camera in the positive z direction

Translate the camera frame

- Move the objects in the negative z direction

Translate the world frame

• Both of these views are equivalent and are determined by the model-view matrix

- Want a translation (glTranslatef(0.0,0.0,-d);)

-d > 0

(7)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 7

Moving Camera back from Origin

default frames

frames after translation by –d d > 0

(8)

Moving the Camera

• We can move the camera to any desired position by a sequence of rotations and translations

• Example: side view

- Rotate the camera

- Move it away from origin - Model-view matrix C = TR

(9)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 9

OpenGL code

• Remember that last transformation specified is first to be applied

glMatrixMode(GL_MODELVIEW) glLoadIdentity();

glTranslatef(0.0, 0.0, -d);

glRotatef(90.0, 0.0, 1.0, 0.0);

(10)

The LookAt Function

• The GLU library contains the function gluLookAt to form the required modelview matrix through a simple interface

• Note the need for setting an up direction

• Still need to initialize

- Can concatenate with modeling transformations

• Example: isometric view of cube aligned with axes

glMatrixMode(GL_MODELVIEW):

glLoadIdentity();

gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0., 1.0. 0.0);

(11)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 11

gluLookAt

gluLookAt(eyex, eyey, eyez, atx, aty,

atz, upx, upy, upz)

(12)

Other Viewing APIs

• The LookAt function is only one possible API for positioning the camera

• Others include

- View reference point, view plane normal, view up (PHIGS, GKS-3D)

- Yaw, pitch, roll

- Elevation, azimuth, twist - Direction angles

(13)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 13

Projections and Normalization

• The default projection in the eye (camera) frame is orthogonal

• For points within the default view volume

• Most graphics systems use view normalization

- All other views are converted to the default view by transformations that determine the projection matrix - Allows use of the same pipeline for all views

xp = x yp = y zp = 0

(14)

Homogeneous Coordinate Representation

xp = x yp = y zp = 0 wp = 1

pp = Mp

M =

!!

!!

"

#

$$

$$

%

&

1 0

0 0

0 0

0 0

0 0

1 0

0 0

0 1

In practice, we can let M = I and set the z term to zero later

default orthographic projection

(15)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 15

Simple Perspective

• Center of projection at the origin

• Projection plane z = d, d < 0

(16)

Perspective Equations

Consider top and side views

xp =

d z

x /

d z

x

/ yp = z d

y

/ zp = d

(17)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 17

Homogeneous Coordinate Form

M =

!!

!!

"

#

$$

$$

%

&

0 /

1 0

0

0 1

0 0

0 0

1 0

0 0

0 1

d

consider q = Mp where

! !

! !

"

#

$ $

$ $

%

&

1 z y x

!!

!!

"

#

$$

$$

%

&

d z

z y x

/

q = ⇒ p =

(18)

Perspective Division

• However w ≠ 1, so we must divide by w to return from homogeneous coordinates

• This perspective division yields

the desired perspective equations

• We will consider the corresponding clipping volume with the OpenGL functions

xp =

d z

x

/ yp = z d

y

/ zp = d

(19)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 19

OpenGL Orthogonal Viewing

glOrtho(left,right,bottom,top,near,far)

near and far measured from camera

(20)

OpenGL Perspective

glFrustum(left,right,bottom,top,near,far)

(21)

Angel: Interactive Computer Graphics 4E © Addison-Wesley 2005 21

Using Field of View

• With glFrustum it is often difficult to get the desired view

•gluPerpective(fovy, aspect, near, far)

often provides a better interface

aspect = w/h

front plane

參考文獻

相關文件

• Richard Szeliski, Image Alignment and Stitching: A Tutorial, Foundations and Trends in Computer Graphics and Computer Vision, 2(1):1-104, December 2006. Szeliski

Conducting binary morphological operations: dilation, erosion, opening, closing and hit-and-miss.. Dynamic gray morphological operation kernel assignment with color depth showing

I have passed Microsoft Office Specialist Certification IC³, LPIC-1 Certification, the required qualification examination of class C skill category of Computer Maintenance,

• When a number can not be represented exactly with the fixed finite number of digits in a computer, a near-by floating-point number is chosen for approximate

(A) AGP ( advanced graphics port ) (B) IDE ( integrated drive electronics ) (C) SATA ( serial at attachment ). (D) SCSI ( small computer system interface

• It is a plus if you have background knowledge on computer vision, image processing and computer graphics.. • It is a plus if you have access to digital cameras

Compensates for deep fades via diversity techniques over time, frequency and space. (Glass is

A smaller aperture increases the range in which A smaller aperture increases the range in which the object is approximately in focus. Di