Post on 22-Mar-2018
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)