Introduction to Computer Graphics - National Chiao Tung...

Post on 22-Mar-2018

226 views 1 download

transcript

Introduction to Computer

Graphics4. Viewing in 3D (Example)

National Chiao Tung Univ, Taiwan

By: I-Chen Lin, Assistant Professor

Textbook: E.Angel, Interactive Computer Graphics, 5th Ed., Addison Wesley

Ref:Hearn and Baker, Computer Graphics, 3rd Ed., Prentice Hall

Pipeline View

Modeling

Transformation

Viewing

Transformation

Projection

TransformationNormalization

and

clipping

Viewport

Transformation

MC WC VC

PC NC DC

Mmodel= TmRmSm… Mview= (TvRv)-1= Rv

tTv-1

Mnorm,perspective

Mnorm,oblique

Mnorm,ortho

(xo, yo, zo, 1)t (xm, ym, zm, 1)t (xv, yv, zv, 1)t

(xh, yh, zh, h)t

Divide h

(xp, yp, zp, 1)t (xd, yd)t

Mvp= TvpSvp…

Loading an Object

(xo, yo, zo, 1)t

Object coord.

Xoaxis

Yoaxis

Zoaxis

Modeling Transformation

(xm, ym, zm, 1)t = Mm(xo, yo, zo, 1)t

where Mm = ….TmRmSm ….

Xwaxis

Ywaxis

Zwaxis

Mm = ….TmRmSm ….

Put a Virtual Camera

Xwaxis

Ywaxis

Zwaxis Xvaxis

Yvaxis

Zvaxis

Move a camera from the origin (by TvRv)

TvRv

(xm, ym, zm, 1)t

Virtual camera’s Coordinate

Change the object’s coordinate

(xv, yv, zv, 1)t = Mview (xm, ym, zm, 1)t

Mview = (TvRv)-1 = Rv

-1 Tv-1

Xwaxis

Ywaxis

Zwaxis Xvaxis

Yvaxis

Zvaxis

(xv, yv, zv, 1)t =Mview(xm, ym, zm, 1)t

Virtual camera’s Coordinate

Xvaxis

Zvaxis

Zfar

Znear

xwmin, ywmin

xwmax, ywmax

Yvaxis

Perspective

Projection

Xvaxis

Zvaxis

Zfar

Znear

xwmin, ywmin

xwmax, ywmax

0100

200

000

000

farnear

farnear

farnear

farnear

near

near

pers

zz

zz

zz

zz

z

z

M

This matrix is usually combined

with the normalization matrix.

(xv, yv, zv, 1)t

Xvaxis

Zvaxis

xwmin, ywmin

xwmax, ywmax

(xv, yv, zv, 1)t

Yvaxis

Z=-1

Z=1

Xppaxis

Yppaxis

Zppaxis

Projection + Normalization

pers

farnear

farnear

farnear

farnear

near

near

normpers

Mywyw

xwxw

zz

zz

zz

zz

ywywz

xwxwz

M

1000

0100

002

0

0002

0100

200

002

0

0002

minmax

minmax

minmax

minmax

Xwmax

Ywmax

1

1

Xwmin

Ywmin

-1

1 1

1

-1

1-1

-1

-1

1

Scaling

Projection+

Normalization

(xh, yh, zh, h)t = Mnormpers(xv, yv, zv, 1)t

Don’t divide h at this step.

0100

200

002

0

0002

minmax

minmax

farnear

farnear

farnear

farnear

near

near

normpers

zz

zz

zz

zz

ywywz

xwxwz

M

Xvaxis

Zvaxis

-1, -1

1,1

Mnormpers(xv, yv, zv, 1)t

=(xh, yh, zh, h)t

Z=-1

Z=1

Xhxis

Yhaxis

Zhaxis

Xvaxis

Zvaxis

Zfar

Znear

xwmin, ywmin

xwmax, ywmax

(xv, yv, zv, 1)t

Yvaxis

Clipping

Xvaxis

Zvaxis

-1, -1

1,1

(xh, yh, zh, h)t

Z=-1

Z=1

Xhxis

Yhaxis

Zhaxis

Perform clipping with (xh, yh, zh, h)t

Avoid unnecessary division

Use parametric forms for intersection

xh = xha + (xhb - xha)u

yh = yha + (yhb - yha)u

zh = zha + (zhb - zha)u

h = ha + (hb - ha)u

, , hzhhyhhxh hhh

Viewport

Transformation

(xd, yd, zd, 1)t = Mviewport (xh, yh, zh, h)t

OR

(xd, yd)t = SUBMviewport (xP, yP)

t, (xP, yP)t= (xh/h, yh/h)t

Xvaxis

Zvaxis

-1, -1

1,1

(xh, yh, zh, h)t

Z=-1

Z=1

Xhxis

Yhaxis

Zhaxis

(xdmin, ydmin)

(xdmax, ydmax)

(xd , yd)

1000

01002

02

0

200

2

minmaxminmax

minmaxminmax

dddd

dddd

viewport

yyyy

xxxx

M

Rasterization

Line drawing or polygon filling with

(xd, yd, zd, 1)t or (xd, yd)t and zh

(xdmin, ydmin)

(xdmax, ydmax)

(xd, yd)