Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords...

21
Viewing CS418 Computer Graphics John C. Hart

Transcript of Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords...

Page 1: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Viewing

CS418 Computer Graphics

John C. Hart

Page 2: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Graphics Pipeline

Homogeneous Divide

Homogeneous Divide

ModelCoords

ModelCoords

ModelXform

ModelXform

WorldCoords

WorldCoords

ViewingXform

ViewingXform

StillClip

Coords.

StillClip

Coords.ClippingClipping

WindowCoordinates

WindowCoordinates

Windowto

Viewport

Windowto

Viewport

ViewportCoordinates

ViewportCoordinates

ClipCoords.

ClipCoords.

ViewingCoords

ViewingCoords

PerspectiveDistortion

Page 3: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Graphics Pipeline

Homogeneous Divide

Homogeneous Divide

ModelCoords

ModelCoords Model

Xform

ModelXform World

Coords

WorldCoords Viewing

Xform

ViewingXform

StillClip

Coords.

StillClip

Coords. ClippingClipping

WindowCoordinates

WindowCoordinates

Windowto

Viewport

Windowto

ViewportViewport

Coordinates

ViewportCoordinates

ClipCoords.

ClipCoords.

ViewingCoords

ViewingCoords

PerspectiveDistortion

W2V Persp View Model0

1 1

s m

s m

m

x x

y y

z

Page 4: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Graphics Pipeline

Homogeneous Divide

Homogeneous Divide

ModelCoords

ModelCoords Model

Xform

ModelXform World

Coords

WorldCoords Viewing

Xform

ViewingXform

StillClip

Coords.

StillClip

Coords. ClippingClipping

WindowCoordinates

WindowCoordinates

Windowto

Viewport

Windowto

ViewportViewport

Coordinates

ViewportCoordinates

ClipCoords.

ClipCoords.

ViewingCoords

ViewingCoords

PerspectiveDistortion

0

1

s

s

x

y

1

m

m

m

x

y

z

M

Page 5: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Transformation Order

0

1

s

s

x

y

1

m

m

m

x

y

z

M

x

y

z

glutSolidTeapot(1); glRotate3f(-90, 0,0,1);glTranslate3f(0,1,0);glutSolidTeapot(1);

glTranslate3f(0,1,0);glRotate3f(-90, 0,0,1);glutSolidTeapot(1);

0

1

s

s

x

y

1

m

m

m

x

y

z

M R T 0

1

s

s

x

y

1

m

m

m

x

y

z

M T R

Page 6: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Viewing Transformation

Homogeneous Divide

Homogeneous Divide

ModelCoords

ModelCoords Model

Xform

ModelXform World

Coords

WorldCoords Viewing

Xform

ViewingXform

StillClip

Coords.

StillClip

Coords. ClippingClipping

WindowCoordinates

WindowCoordinates

Windowto

Viewport

Windowto

ViewportViewport

Coordinates

ViewportCoordinates

ClipCoords.

ClipCoords.

ViewingCoords

ViewingCoords

PerspectiveDistortion

W2V Persp View Model0

1 1

s m

s m

m

x x

y y

z

Page 7: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Viewing Transformation

W2V

Model

View

Persp

ModelCoords

WorldCoords

ViewingCoords

ClipCoords

ScreenCoords

x

y

z

x

ylookatpoint

eyepoint

Page 8: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

x

y

z

WorldCoordinates

ViewingCoordinates

x

y

z

eye pointlookat point eye point(at origin)

lookat point(along –z axis)

Page 9: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

x

y

z

WorldCoordinates

ViewingCoordinates

x

yeye pointlookat point lookat point

(along –z axis)

Page 10: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

x

y

z

WorldCoordinates

ViewingCoordinates

x

yeye pointlookat point

y'x'

Why notthese axes?

Page 11: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

x

y

z

WorldCoordinates

ViewingCoordinates

y

z

eye pointlookat point

up vectorup vector

up

1. Specify up direction in world coordinates

2. Transform up vector into viewing coordinates

3. Rotate about z-axis until up vector in x-y plane.

x

Page 12: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

x

y

z

WorldCoordinates

ViewingCoordinates

y

z

eye pointlookat point

up vectorup vector

up

1. Specify up direction in world coordinates

2. Transform up vector into viewing coordinates

3. Rotate about z-axis until up vector in x-y plane.

x

Page 13: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Lookat Transformation

xy

z

lookatpoint

eyepoint

upvector

Page 14: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Lookat Transformation

1. Translate the eye point to the origin

xy

z

1

1

1

1

x

y

z

Page 15: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Lookat Transformation

1. Translate the eye point to the origin

2. Rotate the view vector into the negative z-axis

xy

z

1

1

1

1

x

yR

z

x

y

z

Page 16: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Easier Way

• Orthogonalize lookat vector system

x

y

z

upv

Page 17: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Easier Way

• Orthogonalize lookat vector system– Let r = v up/||vup||

x

y

z

up

r

v

Page 18: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Easier Way

• Orthogonalize lookat vector system– Let r = v up/||vup||– Let u = r v

x

y

z

upuv

r

Page 19: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Easier Way

• Orthogonalize lookat vector system– Let r = v up/||vup||– Let u = r v– Create rotation matrix from

<r,u,-v> to <x.y,z>

R r = x, R u = y, R v = -z

x

y

z

upuv

r

R=¿

Page 20: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Construct Lookat

• Translate eye point to origin• Rotate view into -z axis

– Let v = (lookat - eye)/||lookat - eye||– Let r = v up/||vup||– Let u = r v

x

y

z

xy

z

lookatpoint

eyepoint

upvector

Page 21: Viewing CS418 Computer Graphics John C. Hart. Graphics Pipeline Homogeneous Divide Model Coords Model Xform World Coords Viewing Xform Still Clip Coords.

Viewing Transformation

W2V

Model

View

Persp

ModelCoords

WorldCoords

ViewingCoords

ClipCoords

ScreenCoords

x

y

z

x

y

z

lookatpoint

eyepoint