Khoa CNTT – DHBK Hanoi
8682595
1
1
Bài 5
Nguyên lý về 3D và
phép chiếu-Projection
Lê Tấn Hùng
0913030731
2
Nguyên lý về 3D
z Ðồ họa3 chiều - 3D computer graphics bao gồmviệcbổ
xung kích thướcvề chiềusâucủa đốitượng, cho phép ta
biểudiễn chúng trong thế giớithựcmột cách chính xác
và sinh động hơn.
z Tuy nhiên các thiếtbị truy xuấthiệntại đềulà2 chiều, Do
vậyviệcbiểudiễn đượcthực thi thông qua phép tô chát
– render để gây ảo giác illusion
vềđộsâu
z 3D Graphics là việcchyểnthế giớitự nhiên dướidạng
cácmôhìnhbiểudiễntrêncácthiếtbị hiểnthị thông qua
kỹ thuật tô chát (rendering).
3
Ðặc điểmcủakỹ thuật đồ hoạ 3D
Có các đốitượng phức tapj hơncácđốitượng
trong không gian 2D
– Bao bởicácmặtphẳng hay các bề mặt
– Có các thành phần trong và ngoài
z Các phép biến đổihìnhhọcphứctạp
z Các phép biến đổihệ toạđộphứctạphơn
z Thường xuyên phảibổ xung thêm phép chiếutừ
không gian 3D vào không gian 2D
z Luôn phảixácđịnh các bề mặthiểnthị
4
Các phương pháp hiểnthị 3D
z Vớicácthiếtbị hiểnthị 2D:
– 3D viewing positions
– Kỹ thuậtchiếu - projection: orthographic/perspective
– Kỹ thuật đánh dấu độ sâu - depth cueing
– Nét khuất - visible line/surface identification
– Tô chát bề mặt-surface rendering
– Cắt lát - exploded/cutaway scenes, cross-sections
z Thiếtbị hiểnthị 3D:
– Kính stereo - Stereoscopic displays*
– Màn hình 3D - Holograms
5
Different views of a 3D model
Shadows as depth cues
Perspective and
Depth of Field
Exploded/cutaway scenes
6
Stereo Projections
z In OpenGL we can produce
stereo views by creating two
side-by-side viewports with
slightly different viewing
angles.
z The lookat point stays the
same but the location of the
eye moves.
z Human eyes are about 3
inches apart, therefore a good
value for D is 1.5
Khoa CNTT – DHBK Hanoi
8682595
2
7
Stereo Projections
eye=(0,-1,2.5) eye=(0.5,-1,2.5)
8
3D GRAPHICS PIPELINE
WORLD SCENE/OBJECT
3D MODELLING
3D CLIPPING
PROJECTION
RASTERIZATION
2D PIXELMAP DISPLAY
Modelling coordinates:
- world coordinate system,
- object coordinate system
Camera coordinates
Screen/Window coordinates
Device coordinates
VIEWING
9
3D - Modelling
3D Modelling
Parametric
Polygonal
Particles
Implicit
2222
rzyx =++
θ
θ
2
4
cos
sin
=
=
y
x
10
Clipping 3D
view frustrum
outside view so
must be clipped
11
Viewing and Projection
viewport
3d models
camera setup
12
Rasterization
Khoa CNTT DHBK Hanoi
8682595
3
13
Phộp chiu
nh nghav phộp chiu
Mtcỏchtng quỏt, phộp chiu l phộp chuyn inhng
imca itng trong h thng ta nchiu thnh
nhng im trong h thng ta cú s chiunh hnn.
nh nghav hỡnh chiu
nh ca itng trờn mtphng chiu c hỡnh thnh t
phộp chiubicỏcng thng giltiachiu (projector)
xut phỏt t mt imgiltõmchiu (center of
projection) i qua cỏc imca itng giao vimt
chiu (projection plan).
14
Cỏc bc xõy dng hỡnh chiu
z 1. itng trong khụng gian 3Dvita thc cct theo mt khụng
gian xỏc nh gil view volume.
z 2. view volume cchiulờnmtphng chiu. Dintớch choỏnbiview
volume trờn mtphng chiu ú s cho chỳng ta khung nhỡn.
z 3. l vic ỏnh x khung nhỡnvotrongmtcng nhỡnbtk cho trctrờn
mnhỡnh hinth hỡnh nh
Cắt theo view
volum
Phép chiếu trên
mặt phẳng chiếu
Phép biến đổi vo
cổng nhìn của
tọa độ thiết bị
tọa độ thực
3D
tọa độ theo vùng
cắt
khung nhìn
tọa độ thiết
bị
15 16
Phộp chiu song song
Parallel Projections
Phộp chiu song song - Parallel
Projections l phộp chium úcỏctia
chiu song song vi nhau hay xut phỏt t
im vụ cựng
Phõn loi phộp chiu song song datrờn
hng ca tia chiu Direction Of Projection
v mtphng chiu -projection plane
z Points on the object are projected to the
viewing plane along parallel lines
z Preserves relative dimensions of the
object but does not give a realistic
presentation
A
D
C
B
projectio
n plane
D
C
B
A
centre of
projection
at infinity
17
Phộp chiu trc giao (Orthographic
projection) l phộp chiu song song v
tia chiu vuụng gúc vi mt phng
chiu thng dựng mt phng z=0
ng vi mi mt phng chiu ta cú 1
ma trn chiu tng ng
=
1000
0000
0010
0001
][
z
T
=
1000
0100
0000
0001
][
y
T
=
1000
0100
0010
0000
][
x
T
18
Taxonomy of Projections
z Orthographic Projections
Multiview Orthographic
Khoa CNTT – DHBK Hanoi
8682595
4
19
Phép chiếutrụclượng (Axonometric)
z Phép chiếutrụclượng là phép chiếumàhìnhchiếuthuđược
z Phép chiếu Trimetric
z Là phép chiếu hình thành từ việc quay tự do đốitượng trên mộttrục
hay tấtcả các trụccủahệ tọa độ và chiếu đốitượng đóbằng phép
chiếu song song lên mặtphẳng chiếu (thường là mặtphẳng z = 0)
vuông góc với tia chiếu
z trên cơ sở tỉ lệ co - SF của ảnh đốitượng trên mỗitrụclàkhácnhau.
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎣
⎡
=
1000
10
10
10
][
1100
1010
1001
][
''
''
''
zz
yy
xx
yx
yx
yx
TU
20
Trimetric
[ U ] :là ma trận vector đơnvị
của các trụcx, y, zbấtbiến
[ T ] : là ma trậnchiếutổng hợp
tương ứng
SF- tỉ lệ co theo các trụclà:
2
x
2
xx
'y'xf +=
2
y
2
yy
'y'xf +=
2
z
2
zz
'y'xf +=
21
Phép chiếu Dimetric
]][][[][ PzRxRyT =
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
=
1000
0000
0010
0001
1000
00
00
0001
1000
00
0010
00
.
cossin
sincos
.
cossin
sincos
ϕϕ
ϕϕ
φφ
φφ
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
=
1000
00sincossin
00cos0
00sinsincos
][
ϕφφ
ϕ
ϕφφ
T
Là phép chiếu Trimetric với 2 hệ
số tỉ lệ co bằng nhau, giá trị thứ 3
còn lạilàtuỳ ý.
•Quay đốitượng quanh trụcytheo
một góc φ,
•Quay quanh x theo một góc ψ
•Chiếutrênmặtphẳng z = 0 vớitâm
chiếutại điểmvôhạn
22
ϕ
2222
cos)(
''
=+=
yyy
yxf
ϕφφ
222222
sincossin)(
''
+=+=
zzz
yxf
)(sin
2
1
z
f
±=
−
ϕ
)(sin
2
1
2
z
z
f
f
−
±=
−
φ
23
Phép chiếuIsometric
z Là phép chiếutrụclượng
mà ở đóhệ số co cạnh
trên 3 trụclàbằng nhau
z Góc quay tương ứng là
35.26 và 45
z Ðược ứng dụng nhiều
trong việcxâydựng các
góc quan sát chuẩncho
đốitượng trong các hệ
soạnthảo đồ họa
ϕ
ϕ
φ
2
2
2
1 sin
sin
sin
−
=
ϕ
ϕ
φ
2
2
2
1
21
sin
sin
sin
−
−
=
3
1
±=
ϕ
sin
0
45
0
26.35
±=
±=
φ
ϕ
21
311
31
1
2
2
2
/
/
/
sin
sin
sin =
−
=
−
=
ϕ
ϕ
φ
8165.03/2cos
2
===
ϕ
f
24
.
Khoa CNTT – DHBK Hanoi
8682595
5
25
Taxonomy of Projections
z Oblique Projections
26
Parallel Projections
axonometric
orthographic
oblique
isometric
27
Taxonomy of Projections
z Oblique Projections
– Combine the properties of Orthographic and
Axonometric
– Preserves the object face; and
– Gives a better sense of the 3D nature.
28
Phép chiếuxiên-Oblique
z Phép chiếu Cavalier
z Phép chiếu Cabinet
29
Phép chiếu Cavalier
G Phép chiếu cavalier là phép chiếuxiênđượctạo thành khi các
tia chiếu làm thành vớimặtphẳng chiếumộtgóc45
0
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−
=
1000
00
0010
0001
]''[
ba
T
α
α
sinfb
f
=
=
cos a
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−−
=
1000
00sincos
0010
0001
][
αα
ff
T
30
– f = 0, β = 90
0
phép
chiếusẽ trở thành
phépchiếutrực giao.
– Còn vớif = 1 kích
thướccủahình chiếu
bằng kích thướccủa
đốitượng => cavalier
– Phépchiếu Cavalier
cho phépgiá trị của α
biến đổimộtcách tự
do α = 30
0
và 45
0
Khoa CNTT – DHBK Hanoi
8682595
6
31
Phép chiếu Cabinet
– Phép chiếuxiênvớihệ số co tỉ lệ f = 1/2
0
22
1
22
1
435.63)
)21(1
2
1
(cos
)
1
(cos
=
+
=
+
=
−
−
f
f
β
32
Oblique Projections
D/2
D
D
D
Cavalier Project
Cabinet Projection
33
Phép chiếuphốicảnh
Perspective Projection
z Phép chiếu phốicảnh là phép chiếumàcáctiachiếu không song
song với nhau mà xuấtpháttừ 1 điểmgọilàtâmchiếu.Phép chiếu
phốicảnh tạorahiệu ứng về luậtxagầntạocảmgiácvềđộsâu của
đốitượng trong thế giớithật mà phép chiếu song song không lộttả
được.
z Các đoạnthẳng song song của mô hình 3D sau phép chiếuhộitụ tại1
điểmgọilàđiểmtriệt tiêu - vanishing point
z Phân loại phép chiếu phốicảnh dựa vào tâm chiếu-Centre Of
Projection (COP) và mặtphẳng chiếu projection plane
34
Vanishing points
z Each set of parallel lines (=direction) meets at a
different point: The vanishing point for this direction
z Sets of parallel lines on the same plane lead to
collinear vanishing points: the horizon for that plane
z Easy examples
– corridor
– higher = further away
z Good way to spot faked images
35
Điểm triệt tiêu
Vanishing point
z Nếu điểm triệt tiêu nằm trên trục tọa độ thì điểm
đó được gọi là điểm triệt tiêu quy tắc - principle
vanishing point
z The number of principal vanishing points is determined
by the number of principal axes cut by the projection
plane.
z If the plane only cut the z axis (most common), there is
only 1 vanishing point.
z 2-points sometimes used in architecture and
engineering. 3-points seldom used … add little extra
realism
36
Perspective Projections
3-point perspective
2-point perspective
1-point perspective
Khoa CNTT – DHBK Hanoi
8682595
7
37
Phép chiếuphốicảnh
38
Phép biến đổiphốicảnh
z Phépchiếuphốica?nhcủa
các điểmtrênđốitượng lên
trên mặtphẳng 2D thu được
từ phépchiếutrựcgiaovà
phépbiến đổiphốicảnh
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
100
0010
0001
][
r
Tr
⎥
⎦
⎤
⎢
⎣
⎡
+++
= 1
111
]1'''[
rz
z
rz
y
rz
x
zyx
39
Perspective Projections
z Tham số:
– centre of projection (COP)
– field of view (θ, φ)
– projection direction
– up direction
40
Perspective Projections
z Projecting a 3D Point
z We use similar triangles to project the point onto the plane
in the line of the eye.
– x’/x = N/-z (z in the negative direction)
– y’/y = N/-z
– Once projected onto a 2D plane the z coordinate is not needed.
near plane
Nz
(x,y,z)
(x’,y’)
41
Perspective Projections
Consider a perspective projection with the viewpoint at the origin
and a viewing direction oriented along the positive -z axis and the
view-plane located at z = -d
y
y
p
dz
y
y
d
y
z
y
P
P
=⇒=
-z
d
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
↔
⎥
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎢
⎣
⎡
−
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
10100
0100
0010
0001
1
1
z
y
x
ddz
z
y
x
d
dz
y
dz
x
z
y
x
P
P
P
divide by homogenous ordinate to
map back to 3D space
a similar construction for x
p
⇒
42
Perspective Projection Details
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
↔
⎥
⎥
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎢
⎢
⎣
⎡
−
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
dz
z
y
x
d
dz
y
dz
x
z
y
x
P
P
P
1
1
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
−
10000
0100
0010
0001
1
z
y
x
z
y
x
Flip z to transform to a left handed co-ordinate
system ⇒ increasing z values mean increasing
distance from the viewer.
PROJECTION
matrix
perspective
division
Khoa CNTT – DHBK Hanoi
8682595
8
43
Phép chiếuphốicảnh 1 tâm
Giả sử khi mặtphẳng được đặttại z = 0 và tâm phép chiếu
nằmtrêntrục z , cách trụcz mộtkhoảng zc = -1/r.
Nếu đốitượng cũng nằmtrênmặtphẳng z = 0 thì đốitượng
sẽ cho hình ảnh thật.
Phương trình biến đổi:
[ x y z 1 ][ Tr ] = [ x y z rz+1 ]
ma trậnbiến đổimột điểmphốicảnh [ Tr ] có dạng:
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
100
0010
0001
][
r
Tr
44
y
H G
DC
E F
x
A B
z
y’
D’ C’
H’ G’
A’ E’ F’ B x
phép chiếuphốicảnh 1 tâm
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
000
0010
0001
1000
0000
0010
0001
1000
100
0010
0001
rr
[] [ ]
10
1000
000
0010
0001
1 +=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
rzyx
r
zyx
[]
⎥
⎦
⎤
⎢
⎣
⎡
++
= 10
11
1'''
rz
y
rz
x
zyx
45
Phép chiếuphốicảnh 2 tâm
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
0100
010
001
][
q
p
T
pq
[] [ ]
)1(
1000
0100
010
001
1 ++=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
qypxzyx
q
p
zyx
Y’
VP ≡ y = 10
D’ H’
C’,G’
VP
X=10
A’, E’B’, F’x’
VP (y=10)
D’, H’C’, G’
VP( x = 10)
A’, E’B’, F’
46
z [ Tc ] = [ Tpq ][ Tz ]
z
2 tâm chiếu:
z [ -1/p 0 0 1 ]
z [ 0 -1/q 0 1 ]
z VP (Vanishing point) tương ứng trên 2 trụcxvàylà
điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ].
[]
⎥
⎦
⎤
⎢
⎣
⎡
++++++
= 1
)1()1()1(
1'''
qypx
z
qypx
y
qypx
x
zyx
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
0000
010
001
1000
0000
0010
0001
1000
0100
010
001
q
p
q
p
47
Phép chiếuphốicảnh 3 tâm chiếu
z [ Tpqr ] = [Tp ][Tq ][Tr ]
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
100
010
001
1000
100
0010
0001
1000
0100
010
0001
1000
0100
0010
001
r
q
p
r
q
p
[] [ ]
)1(
1000
100
010
001
1 +++=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
rzqypxzyx
r
q
p
zyx
48
[]
⎥
⎦
⎤
⎢
⎣
⎡
+++++++++
= 1
)1()1()1(
1'''
rzqypx
z
rzqypx
y
rzqypx
x
zyx
y'
x'
D'
H'
C'
G'
A', E' F'
B'
VP ( y = 10)
VP ( x = 10 )
VP ( z = 10 )
y'
x'
z'
A'
B'
C'
D'
H'
G'
F'
E'
Khoa CNTT – DHBK Hanoi
8682595
9
49
z 3 tâm chiếu:
– trên trụcxtại điểm [ -1/p 0 0 1 ],
– ytại điểm [ 0 -1/q 0 1 ]
– ztại điểm [ 0 0 -1/r 1 ].
z VP sẽ tương ứng vớicácgiátrị :
– [ 1/p 0 0 1 ], [ 0 1/q 0 1 ] [ 0 0 1/r 1 ]
z [ Tc ] = [ Tpqr ][ Tz ]
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
⎥
⎥
⎥
⎥
⎦
⎤
⎢
⎢
⎢
⎢
⎣
⎡
=
1000
000
010
001
1000
0000
0010
0001
.
1000
100
010
001
r
q
p
r
q
p
50
Đặc tính của phép chiếu phối cảnh
1. Parallel lines in 3D will
meet at a vanishing point
2. Lines that pass behind the
eye of the camera cause a
catastropic “passage
through infinity”.
3. Perspective projections
usually produce
geometrically realistic
pictures.
51
Taxonomy of Projections
z Perspective
– Three Point
M.C. Escher: Ascending and Descending
52
Classical Projections
Angel Figure 5.3
53
Phân loại các phép chiếu
PhÐp chiÕu h×nh häc
ph¼ng
PhÐp chiÕu song
song
PhÐp chiÕu phèi c¶nh
Mét ®iÓm
Ba ®iÓm
Hai ®iÓm
Trùc giao
PhÐp chiÕu
Xiªn
Cavalier
Cabinet
PhÐp chiÕu
kh¸c
ChiÕu
®øng
ChiÕu
c¹nh
Axonometric
Trimetric
Dimetric
Isometric
ChiÕu
b»ng
54
Viewing in OpenGL
z OpenGL has multiple matrix stacks - transformation
functions right-multiply the top of the stack
z Two most important stacks: GL_MODELVIEW and
GL_PROJECTION
z Points get multiplied by the modelview matrix first, and
then the projection matrix
z GL_MODELVIEW: Object->Camera
z GL_PROJECTION: Camera->Screen
z glViewport(0,0,w,h): Screen->Device
Khoa CNTT – DHBK Hanoi
8682595
10
55
OpenGL Example
void SetUpViewing()
{
// The viewport isn’t a matrix, it’s just state
glViewport( 0, 0, window_width, window_height );
// Set up camera->screen transformation first
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far
// Set up the model->camera transformation
glMatrixMode( GL_MODELVIEW );
gluLookAt( 3, 3, 2, // eye point
0, 0, 0, // look at point
0, 0, 1 ); // up vector
glRotatef( theta, 0, 0, 1 ); // rotate the model
glScalef( zoom, zoom, zoom ); // scale the model
}
56
Stereo Projections
z Faking depth in a 2D image
z Based on natural stereoscopic eye-brain system.
z Objects are not viewed with just one eye, but two
eyes.
z Each eye looks at the object from a slightly
different location.
57
Stereo Projections