Khoa CNTT – DHBK Hanoi
8682595
Bài 5
Nguyên lý về 3D và
Phép chiếu-Projection
Nguyên lý về 3D
Lê Tấn Hùng
0913030731
(c) SE/FIT/HUT 2002
Ðồ họa 3 chiều - 3D computer graphics bao gồm việc bổ
xung kích thước về chiều sâu của đối tượng, cho phép ta biểu
diễn chúng trong thế giới thực một cách chính xác và sinh
động hơn.
Tuy nhiên các thiết bị truy xuất hiện tại đều là 2 chiều, Do
vậy việc biểu diễn được thực thi thông qua phép tô chát –
render để gây ảo giác illusion về độ sâu
3D Graphics là việc chyển thế giới tự nhiên dưới dạng các mơ
hình biểu diễn trên các thiết bị hiển thị thông qua kỹ thuật tô
chát (rendering).
1
(c) SE/FIT/HUT 2002
Ðặc điểm của kỹ thuật đồ hoạ 3D
Các phương pháp hiển thị 3D
Có các đối tượng phức tapj hơn các đối tượng trong
không gian 2D
Các phép biến đổi hình học phức tạp
Các phép biến đổi hệ toạ độ phức tạp hơn
Thường xuyên phải bổ xung thêm phép chiếu từ
không gian 3D vào không gian 2D
Luôn phải xác định các bề mặt hiển thị
(c) SE/FIT/HUT 2002
Perspective and
Depth of Field
Với các thiết bị hiển thị 2D:
Bao bởi các mặt phẳng hay các bề mặt
Có các thành phần trong và ngoài
2
3D viewing positions
Kỹ thuật chiế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
Thiết bị hiển thị 3D:
Kính stereo - Stereoscopic displays*
Màn hình 3D - Holograms
3
(c) SE/FIT/HUT 2002
4
Exploded/cutaway scenes
3D GRAPHICS WORLD
PIPELINE
SCENE/OBJECT
Shadows as depth cues
Modelling coordinates:
- world coordinate system,
- object coordinate system
3D MODELLING
VIEWING
3D CLIPPING
Camera coordinates
PROJECTION
Screen/Window coordinates
RASTERIZATION
Device coordinates
Different views of a 3D model
(c) SE/FIT/HUT 2002
2D PIXELMAP DISPLAY
5
(c) SE/FIT/HUT 2002
6
1
Khoa CNTT – DHBK Hanoi
8682595
3D - Modelling
Clipping 3D
x +y +z =r
2
2
2
2
view frustrum
Polygonal
3D Modelling
Implicit
x = sin 4θ
y = cos 2θ
outside view so
must be clipped
Particles
Parametric
7
(c) SE/FIT/HUT 2002
Viewing and Projection
(c) SE/FIT/HUT 2002
8
(c) SE/FIT/HUT 2002
10
Rasterization
3d models
camera setup
viewport
(c) SE/FIT/HUT 2002
9
Các bước xây dựng hình chiếu
Phép chiu
tọa độ thực
3D
nh ngha v phộp chiu
tọa độ theo vùng
cắt
Cắt theo view
volum
Định nghĩa về hình chiếu
Ảnh của đối tượng trên mặt phẳng chiếu được hình thành từ
phép chiếu bởi các đường thẳng gọi là tia chiếu (projector)
xuất phát từ một điểm gọi là tâm chiếu (center of projection)
đi qua các điểm của đối tượng giao với mặt chiếu (projection
plan).
(c) SE/FIT/HUT 2002
11
khung nhìn
Phép chiếu trên
mặt phẳng chiếu
tọa độ thiết
bị
Phép biến đổi vào
cổng nhìn của
tọa độ thiết bị
1. i tng trong khụng gian 3D với tọa độ thực được cắt theo một không gian
2. view volume được chiếu lên mặt phẳng chiếu. Diện tích chốn bởi view volume
xác định gọi là view volume.
trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.
3. là việc ánh xạ khung nhìn vào trong một cổng nhìn bất kỳ cho trước trên màn
hình để hiển thị hình ảnh
(c) SE/FIT/HUT 2002
12
2
Khoa CNTT – DHBK Hanoi
8682595
Phép chiếu song song
Parallel Projections
Phép chiếu song song - Parallel Projections
Phân loại phép chiếu song song dựa trên hướng của tia
chiếu Direction Of Projection và mặt phẳng chiếu projection plane
Phép chiếu trực giao (Orthographic projection)
Ứng với mỗi mặt phẳng chiếu ta có 1 ma trận chiếu
tương ứng
1
0
[T y ] =
0
0
0 0 0
0
0
0 0 0
[T ] =
0 1 0 x
0
0 0 1
0
0 0 0
1
0
1 0 0
[T z ] =
0
0 1 0
0 0 1
0
13
(c) SE/FIT/HUT 2002
Phép chiếu trục lượng (Axonometric)
0 0 0
1 0 0
0 0 0
0 0 1
(c) SE/FIT/HUT 2002
14
(c) SE/FIT/HUT 2002
16
Trimetric
Phép chiếu trục lượng
Phép chiếu Trimetric
trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là
khác nhau.
SF- tỉ lệ co theo các trục là:
f x = x' 2x + y' 2x
xx'
'
x
[T ] = y'
xz
0
1 0 0 1
[U ] = 0 1 0 1
0 0 1 1
y x'
y 'y
y z'
0
(c) SE/FIT/HUT 2002
0 1
0 1
0 1
0 1
f y = x' 2y + y' 2y
f z = x' 2z + y' 2z
15
Phép chiếu Dimetric
[T ] = [ Ry ][ Rx ][ Pz ]
cos φ
0
=
sin φ
0
0
0 − sin φ 0 1
1
0
0 0 cos ϕ
.
0 cos φ 0 0 − sin ϕ
0
0
0
1 0
cos φ
0
[T ] =
sin φ
0
sin φ sin ϕ
cos ϕ
− cos φ sin ϕ
0
Là phép chiếu Trimetric với 2 hệ
số tỉ lệ co bằng nhau, giá trị thứ 3
còn lại là tuỳ ý.
0 1
sin ϕ 0 0
.
cos ϕ 0 0
0
1 0
0
0 0 0
1 0 0
0 0 0
0 0 1
f z2 = (xz'2 + yz'2 ) = sin2 φ + cos2 φ sin2 ϕ
f y2 = ( x 'y2 + y 'y2 ) = cos 2 ϕ
φ = sin −1 ( ±
0 0
0 0
0 0
0 1
ϕ = sin −1 (±
fz
2 − f z2
fz
)
)
2
(c) SE/FIT/HUT 2002
17
(c) SE/FIT/HUT 2002
18
3
Khoa CNTT – DHBK Hanoi
8682595
Phép chiếu Isometric
sin 2 φ =
1 − 2 sin 2 ϕ
1 − sin 2 ϕ
sin 2 ϕ
1 − sin 2 ϕ
sin2 ϕ
1/ 3
sin2 φ =
=
= 1/ 2
1 − sin2 ϕ 1 − 1/ 3
1
sin ϕ = ±
3
sin 2 φ =
.
ϕ = ±35.260
φ = ±450
f = cos 2 ϕ = 2 / 3 = 0.8165
19
(c) SE/FIT/HUT 2002
(c) SE/FIT/HUT 2002
Parallel Projections
20
Phép chiếu xiên - Oblique
Phép chiếu Cavalier
Phép chiếu Cabinet
orthographic
oblique
axonometric
isometric
(c) SE/FIT/HUT 2002
21
(c) SE/FIT/HUT 2002
22
(c) SE/FIT/HUT 2002
24
Phép chiếu Cavalier
0
1
0
1
[T ' ' ] =
− a − b
0
0
0
0
0
0
0
0
0
1
a = f cosα
b = f sin α
1
0
[T ] =
− f cos α
0
(c) SE/FIT/HUT 2002
0
1
− f sin α
0
0 0
0 0
0 0
0 1
23
f = 0, β = 900 phép chiếu
sẽ trở thành phép chiếu
trực giao.
Cịn với f = 1 kích thước
của hình chiếu bằng kích
thước của đối tượng =>
cavalier
Phép chiếu Cavalier cho
phép giá trị của α biến
đổi một cách tự do α =
300 và 450
4
Khoa CNTT – DHBK Hanoi
8682595
Phép chiếu Cabinet
Oblique Projections
Phép chiếu xiên với hệ số co tỉ lệ f = 1/2
f
β = cos −1 (
= cos −1 (
1 + f
2
2
)
1
2
) = 63.435 0
1 + (1 2 ) 2
2
D/2
D
D
D
Cavalier Project
Cabinet Projection
(c) SE/FIT/HUT 2002
25
(c) SE/FIT/HUT 2002
Phép chiếu phối cảnh
Perspective Projection
Vanishing points
Phép chiếu phối cảnh
Các đoạn thẳng song song của mơ hình 3D sau phép chiếu hội tụ tại 1 điểm gọi là
điểm triệt tiêu - vanishing point
Phân loại phép chiếu phối cảnh dựa vào tâm chiếu - Centre Of Projection (COP) và
mặt phẳng chiếu projection plane
Each set of parallel lines (=direction) meets at a different
point: The vanishing point for this direction
Sets of parallel lines on the same plane lead to collinear
vanishing points: the horizon for that plane
Easy examples
(c) SE/FIT/HUT 2002
corridor
higher = further away
Good way to spot faked images
27
Điểm triệt tiêu
Vanishing point
26
28
(c) SE/FIT/HUT 2002
Perspective Projections
3-point perspective
điểm triệt tiêu quy tắc - principle vanishing point
1-point perspective
The number of principal vanishing points is determined by
the number of principal axes cut by the projection plane.
If the plane only cut the z axis (most common), there is only
1 vanishing point.
2-points sometimes used in architecture and engineering. 3points seldom used … add little extra realism
2-point perspective
(c) SE/FIT/HUT 2002
29
(c) SE/FIT/HUT 2002
30
5
Khoa CNTT – DHBK Hanoi
8682595
Phép biến đổi phối cảnh
Phép chiếu phối cảnh
1
0
[Tr ] =
0
0
Phép chiếu phối ca?nh của các
điểm trên đối tượng lên trên
mặt phẳng 2D thu được từ
phép chiếu trực giao và phép
biến đổi phối cảnh
31
(c) SE/FIT/HUT 2002
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 yP
y
=
⇒ yP =
z
d
zd
Tham số:
centre of projection (COP)
field of view (θ, φ)
projection direction
up direction
a similar construction for xp
d
⇒
y
yp
Perspective Projection Details
0
0
PROJECTION
matrix
divide by homogenous ordinate to
map back to 3D space
(c) SE/FIT/HUT 2002
0 x
0 y
0 z
0 1
34
Giả sử khi mặt phẳng được đặt tại z = 0 và tâm phép chiếu nằm trên
trục z , cách trục z một khoảng zc = -1/r.
Nếu đối tượng cũng nằm trên mặt phẳng z = 0 thì đối tượ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ận biến đổi một điểm phối cảnh [ Tr ] có dạng:
perspective
division
[ Tr
Flip z to transform to a left handed co-ordinate
system ⇒ increasing z values mean increasing
distance from the viewer.
(c) SE/FIT/HUT 2002
-z
0 0
1 0
0 −1
0 1d
Phép chiếu phối cảnh 1 tâm
x
x
xP z d
y y
↔ y
P =
− z
zP z d
−d
z d
1
1
0 x
0 y
0 − 1 0 z
0 0 0 1
0
1
x
x 1
xP z d
y y
↔ y = 0
P =
− z 0
zP z d
−d
z d 0
1
1
33
(c) SE/FIT/HUT 2002
x 1
y 0
=
− z 0
1 0
32
(c) SE/FIT/HUT 2002
Perspective Projections
Perspective Projections
0 0 0
1 0 0
0 1 r
0 0 1
35
] =
1
0
0
0
0
1
0
0
0
0
1
0
0
0
r
1
(c) SE/FIT/HUT 2002
36
6
Khoa CNTT – DHBK Hanoi
8682595
phép chiếu phối cảnh 1 tâm
Phép chiếu phối cảnh 2 tâm
Y’
VP (y=10)
VP ≡ y = 10
y
1
0
=
0
0
0 0 0 1
1 0 0 0
0 1 r 0
0 0 1 0
1
0
[x y z 1]
0
0
0 0 0 1
1 0 0 0
=
0 0 0 0
0 0 1 0
0
1
0
0
0
0
0
0
D’
0 0 0
1 0 0
0 0 r
0 0 1
H
C’
H’
G’
A’, E’B’, F’
C
E
A’, E’B’, F’x’
F
x
A’ E’
A
F’ B
x
B
z
0
0
= [x y 0 rz+1]
r
1
[x'
y
x
y' z' 1] =
0 1
rz +1 rz +1
x
y ' z ' 1] =
( px + qy + 1)
y
( px + qy + 1)
1
0
=
0
0
z
1
( px + qy + 1)
1
0
0
0
0 0 0 1
1 0 0 0
=
0 0 0 0
0 0 1 0
0 0 p
1 0 q
0 0 0
0 0 1
1
0
=
0
0
2 tâm chiếu:
[ -1/p 0 0 1 ]
[ 0 -1/q 0 1 ]
VP (Vanishing point) tương ứng trên 2 trục x và y là điểm: [
1/p 0 0 1 ] và [ 0 1/q 0 1 ].
y
( px + qy + rz + 1)
[x
H'
G'
C'
E'
G'
C'
VP ( x = 10 )
VP ( z = 10 )
z'
A', E'
F'
x'
B'
B'
(c) SE/FIT/HUT 2002
0
0
1
0
p
0
0
1
1
0
0
0
1
0
z 1]
0
0
y
z ( px + qy + 1)]
38
0
1
0
0
0
0
1
0
0
q
0
1
1
0
0
0
0 0 p
1 0 q
= [x
0 1 r
0 0 1
0
1
0
0
y
0 1
0 0
=
r 0
1 0
0
0
1
0
0
1
0
0
0
0
1
0
p
q
r
1
z ( px + qy + rz + 1)]
40
3 tâm chiếu:
trên trục x tại điểm [ -1/p 0 0 1 ],
y tại điểm [ 0 -1/q 0 1 ]
z tại điểm [ 0 0 -1/r 1 ].
VP sẽ tương ứng với các giá trị :
[ 1/p 0 0 1 ], [ 0 1/q 0 1 ] [ 0 0 1/r 1 ]
[ Tc ] = [ Tpqr ][ Tz ]
1
0
=
0
0
F'
A'
x'
0 0 p
1 0 q
= [x
0 1 0
0 0 1
(c) SE/FIT/HUT 2002
D'
H'
1
0
z 1]
0
0
z
1
( px + qy + rz + 1)
y'
D'
0
1
0
0
y
y'
VP ( y = 10)
y
[ Tpqr ] = [Tp ][Tq ][Tr ]
39
(c) SE/FIT/HUT 2002
x
y' z ' 1] =
( px + qy + rz + 1)
0 1
0 0
[x
Phép chiếu phối cảnh 3 tâm chiếu
0 0 p
1 0 q
0 1 0
0 0 1
p
q
0
1
0 0
1 0
(c) SE/FIT/HUT 2002
[ Tc ] = [ Tpq ][ Tz ]
[x'
1
0
[T pq ] =
0
0
37
(c) SE/FIT/HUT 2002
[x'
VP( x = 10)
VP
X=10
G
D
D’, H’C’, G’
D’ H’
C’,G’
y’
41
0 0 p 1
1 0 q 0
.
0 1 r 0
0 0 1 0
0 0 0 1
1 0 0 0
=
0 0 0 0
0 0 1 0
0 0 p
1 0 q
0 0 r
0 0 1
(c) SE/FIT/HUT 2002
42
7
Khoa CNTT – DHBK Hanoi
8682595
Phân loại các phép chiếu
(c) SE/FIT/HUT 2002
43
8