honours graphics 2008

Post on 20-Mar-2016

47 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Honours Graphics 2008. Session 3. Today’s focus. Perspective and orthogonal projection Quaternions Graphics camera. Projections. Visualizing 3D data on a 2D screen requires projection of the data onto a 2D plane Several projection models exist, with varying qualities - PowerPoint PPT Presentation

TRANSCRIPT

Honours Graphics 2008

Session 3

Today’s focus

• Perspective and orthogonal projection

• Quaternions

• Graphics camera

Projections

• Visualizing 3D data on a 2D screen requires projection of the data onto a 2D plane

• Several projection models exist, with varying qualities

• We’re interested in orthogonal and perspective projection

Perspective projection

Perspective projection, cont.• Starting from world coordinate space:

Increasing focal length and distance of the camera to infinity changes perspective into orthogonal projection

Orthogonal projection• Flat, 2D projection• Used when precise profiles or measurements need to be displayed • Special case of perspective projection, when focal length

approaches infinity

Quaternions

• Developed by Sir William Rowan Hamilton in 1843

• Generally superceded by vectors and matrices, but still very useful in applied mathematics and computer graphics

• Specifically useful to compute 3D rotations• Consists of scalar and “vector” components

Quaternions, cont.

• Defined as an extension to the complex numbers: three components i, j and k all are squareroots of -1, hence

• Furthermore

Quaternions, cont.

• Finally

• Quaternion addition and subtraction

Quaternions, cont.• Magnitude of a quaternion

• Quaternion multiplication

Quaternions, cont.

• For graphics purposes a unit quaternion is used, which has the property that

• Unit quaternions represent rotation / orientation

Quaternions, cont.

• Quaternion to rotation matrix conversion

Graphics camera

• Both DirectX and OpenGL expose camera parameters that consist of

• View position• View target• Relative view-up direction

Camera commands• OpenGL

void gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ )

• DirectX

D3DXMatrixLookAtLH(mat, eye, center, up);DX9Device.SetTransform(D3DTS_VIEW, mat);

Homework

• Write a camera library that makes use of quaternions. Allow for keyboard and mouse input to control the camera.

• For next session

top related