Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Nguyên lý về 3D
Bài 5 Nguyên lý về 3D và phép chiếu-Projection
(cid:122) Ðồ 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.
(cid:122) 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
Lê Tấn Hùng 0913030731 hunglt@it-hut.edu.vn
(cid:122) 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).
2 1
Ðặ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
(cid:122) Với các thiết bị hiển thị 2D:
trong không gian 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
– 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
(cid:122) Các phép biến đổi hình học phức tạp (cid:122) Các phép biến đổi hệ toạ độ phức tạp hơn (cid:122) 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
(cid:122) Thiết bị hiển thị 3D:
(cid:122) Luôn phải xác định các bề mặt hiển thị
– Kính stereo - Stereoscopic displays* – Màn hình 3D - Holograms
3 4
Perspective and Depth of Field
Exploded/cutaway scenes
Stereo Projections
Shadows as depth cues
(cid:122) In OpenGL we can produce stereo views by creating two side-by-side viewports with slightly different viewing angles.
(cid:122) The lookat point stays the
(cid:122) Human eyes are about 3
same but the location of the eye moves.
Different views of a 3D model
inches apart, therefore a good value for D is 1.5
5 6
1
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Stereo Projections
3D GRAPHICS PIPELINE
WORLD SCENE/OBJECT
3D MODELLING
Modelling coordinates: - world coordinate system, - object coordinate system
VIEWING
3D CLIPPING
Camera coordinates
PROJECTION
Screen/Window coordinates
RASTERIZATION
Device coordinates
eye=(0,-1,2.5)
eye=(0.5,-1,2.5)
2D PIXELMAP DISPLAY
7 8
3D - Modelling
Clipping 3D
2
2
2
2
x
y
z
r
+
+
=
view frustrum
Polygonal
Implicit
3D Modelling
x y
= =
sin 4 θ cos 2 θ
outside view so must be clipped
Particles
Parametric
9 10
Viewing and Projection
Rasterization
3d models
camera setup
viewport
11 12
2
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Các bước xây dựng hình chiếu
Phép chiếu
khung nh×n
täa ®é thùc 3D
täa ®é theo vïng c¾t
täa ®é thiÕt bÞ
Định nghĩa về phép chiếu Một cách tổng quát, phép chiếu là phép chuyển đổi những điểm của đối tượng trong hệ thống tọa độ n chiều thành những điểm trong hệ thống tọa độ có số chiều nhỏ hơn n.
C¾t theo view volum
PhÐp chiÕu trªn mÆt ph¼ng chiÕu
PhÐp biÕn ®æi vμo cæng nh×n cña täa ®é thiÕt bÞ
(cid:122) 1. đối tượng trong không gian 3D với tọa độ thực được cắt theo một không
Đị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ừ
gian xác định gọi là view volume.
(cid:122) 2. view volume được chiếu lên mặt phẳng chiếu. Diện tích choán bởi view
volume trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.
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).
(cid:122) 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
14 13
Phép chiếu song song Parallel Projections
(cid:131) Phép chiếu song song - Parallel
A
B
(cid:122) Points on the object are projected to the
D
B ’
C
A ’ D ’
Projections là phép chiếu mà ở đó các tia chiếu song song với nhau hay xuất phát từ điểm vô cùng (cid:131) 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
C ’
projectio n plane
centre of projection at infinity
viewing plane along parallel lines (cid:122) Preserves relative dimensions of the object but does not give a realistic presentation
15 16
Taxonomy of Projections
(cid:122) Orthographic Projections – Multiview Orthographic
(cid:131) Phép chiếu trực giao (Orthographic
]
=
[ yT
]
=
]
=
[ zT
[ xT
0001 ⎡ ⎤ ⎢ ⎥ 0000 ⎢ ⎥ ⎢ ⎥ 0100 ⎢ ⎥ 1000 ⎣ ⎦
0001 ⎤ ⎡ ⎥ ⎢ 0010 ⎥ ⎢ ⎥ ⎢ 0000 ⎥ ⎢ 1000 ⎦ ⎣
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
0000 ⎤ ⎥ 0010 ⎥ ⎥ 0100 ⎥ 1000 ⎦
projection) là phép chiếu song song và tia chiếu vuông góc với mặt phẳng chiếu thường dùng mặt phẳng z=0 (cid:131) Ứng với mỗi mặt phẳng chiếu ta có 1 ma trận chiếu tương ứng
17 18
3
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Phép chiếu trục lượng (Axonometric)
Trimetric
(cid:122) Phép chiếu trục lượng là phép chiếu mà hình chiếu thu được (cid:122) Phép chiếu Trimetric (cid:122) Là phép chiếu hình thành từ việc quay tự do đối tượng trên một trục hay tất cả các trục của hệ tọa độ và chiếu đối tượng đó bằng phép chiếu song song lên mặt phẳng chiếu (thường là mặt phẳng z = 0) vuông góc với tia chiếu
(cid:122) trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là khác nhau.
[ U ] :là ma trận vector đơn vị của các trục x, y, z bất biến [ T ] : là ma trận chiếu tổng hợp tương ứng SF- tỉ lệ co theo các trục là:
=
+
f
'x
'y
x
2 x
2 x
=
+
f
'x
'y
]
[ U
][ T
=
=
y
2 y
2 y
x x x
y y y
1001 ⎡ ⎤ ⎢ ⎥ 1010 ⎢ ⎥ ⎢ ⎥ 1100 ⎣ ⎦
=
+
f
'x
'y
z
2 z
2 z
' x ' y ' z 0
' x ' y ' z 0
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ 10 ⎥ 10 ⎥ ⎥ 10 ⎥ 10 ⎥ ⎦
19 20
Phép chiếu Dimetric
[
Ry
][
Rx
][
Pz
]
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ại là tuỳ ý.
0
0
0
−
φ
φ
f
(
y
)
2 sin
2 cos
=
+
=
+ φ
2 sin ϕφ
2 z
2 ' x z
2 ' z
cos 0
1
sin 0
cos
sin
ϕ
ϕ
.
.
=
−
φ
φ
ϕ
ϕ
f
(
x
y
cos
=
+
=
ϕ2
2 y
2 ' y
2 ' y
sin 0
cos 0
sin 0
0 0
cos 0
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
0 ⎤ ⎥ 0 ⎥ ⎥ 0 ⎥ 1 ⎦
1 ⎡ ⎢ 0 ⎢ ⎢ 0 ⎢ 0 ⎣
0 ⎤ ⎥ 0 ⎥ ⎥ 0 ⎥ 1 ⎦
0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ ⎢ ⎥ 0000 ⎢ ⎥ 1000 ⎣ ⎦
) f
1
−
z
sin
(
)
=
±
φ
sin
φ
•Quay đối tượng quanh trục y theo một góc φ,
cos 0
00 00
sin ϕφ cos ϕ
f
−
2 z
][ T
=
•Quay quanh x theo một góc ψ
cos
−
1
−
sin φ 0
sin ϕφ 0
00 10
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
sin
(
)
=
±
ϕ
•Chiếu trên mặt phẳng z = 0 với tâm chiếu tại điểm vô hạn
2 zf 2
21 22
Phép chiếu Isometric
2
2
sin
φ
=
sin 2 sin
ϕ ϕ
21 − 1 −
2
2
(cid:122) Là phép chiếu trục lượng mà ở đó hệ số co cạnh trên 3 trục là bằng nhau (cid:122) Góc quay tương ứng là
sin
φ
=
ϕ 2
.
ϕ
35.26 và 45
(cid:122) Ðược ứng dụng nhiều
2 sin
21 /
=
=
=
φ
31 / 311 / −
1
ϕ
sin 1 sin − 2 sin ϕ 2 sin − 1
±=ϕsin
trong việc xây dựng các góc quan sát chuẩn cho đối tượng trong các hệ soạn thảo đồ họa
3 026.35 045 cos2
3/2
.0
8165
ϕ
ϕ ±= φ ±= f =
=
=
23 24
4
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Taxonomy of Projections
Parallel Projections
(cid:122) Oblique Projections
orthographic
oblique
isometric
axonometric
26 25
Taxonomy of Projections
Phép chiếu xiên - Oblique
(cid:122) Oblique Projections
– Combine the properties of Orthographic and
(cid:122) Phép chiếu Cavalier (cid:122) Phép chiếu Cabinet
Axonometric
– Preserves the object face; and – Gives a better sense of the 3D nature.
27 28
Phép chiếu Cavalier
(cid:71) Phép chiếu cavalier là phép chiếu xiên được tạo thành khi các
– 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
α
cos a f sinf
b
= =
α
T [
]''
=
1
0
00
1 0 a − 0
0 1 b − 0
00 00 00 10
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
tia chiếu làm thành với mặt phẳng chiếu một góc 450
][ T
=
0 cos
1 sin
00 00
f
−
−
α f
α
0
0
10
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
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
29 30
5
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 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
1 −
cos
(
)
β
=
2
2
f
1
+
1
0
1 −
)
.63
435
cos
(
=
=
2
2
2 )21(
1
+
D/2
D
D
D
Cabinet Projection
Cavalier Project
32 31
Vanishing points
Phép chiếu phối cảnh Perspective Projection
(cid:122) Each set of parallel lines (=direction) meets at a
different point: The vanishing point for this direction
(cid:122) Sets of parallel lines on the same plane lead to
(cid:122) Phép chiếu phối cảnh là phép chiếu mà các tia chiếu không song song với nhau mà xuất phát từ 1 điểm gọi là tâm chiếu.Phép chiếu phối cảnh tạo ra hiệu ứng về luật xa gần tạo cảm giác về độ sâu của đối tượng trong thế giới thật mà phép chiếu song song không lột tả được.
(cid:122) 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
collinear vanishing points: the horizon for that plane
(cid:122) Easy examples
(cid:122) Phân loại phép chiếu phối cảnh dựa vào tâm chiếu - Centre Of
– corridor – higher = further away
(cid:122) Good way to spot faked images
điểm gọi là điểm triệt tiêu - vanishing point Projection (COP) và mặt phẳng chiếu projection plane
33 34
Perspective Projections
Điểm triệt tiêu Vanishing point
3-point perspective
(cid:122) 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
1-point perspective
(cid:122) The number of principal vanishing points is determined by the number of principal axes cut by the projection plane.
(cid:122) If the plane only cut the z axis (most common), there is
only 1 vanishing point.
(cid:122) 2-points sometimes used in architecture and
engineering. 3-points seldom used … add little extra realism
2-point perspective
35 36
6
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Phép chiếu phối cảnh
Phép biến đổi phối cảnh
Tr [
]
=
100
r
1000
0001 ⎤ ⎡ ⎥ ⎢ 0010 ⎥ ⎢ ⎥ ⎢ ⎥ ⎢ ⎦ ⎣
x '[
y
'
z
]1'
=
rz
1
rz
1
rz
1
x +
y +
z +
⎡ ⎢⎣
⎤ 1 ⎥⎦
(cid:122) 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
38 37
Perspective Projections
Perspective Projections
(cid:122) Tham số:
(cid:122) Projecting a 3D Point (cid:122) We use similar triangles to project the point onto the plane
– centre of projection (COP) – field of view (θ, φ) – projection direction – up direction
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.
(x’,y’)
(x,y,z)
N
z
near plane
39 40
Perspective Projection Details
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
P
y
=⇒=
P
y z
y P d
y dz
P
↔
=
d
a similar construction for xp ⇒
x y z P 1
x y z − dz
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
y
x dz y dz d − 1
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
0 0
0 0
x y
x y
P
=
yp
=
↔
=
-z
00 00
01 − 0
z − 1
x y z − dz
0 0 0 0 01 d
x P y z P 1
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
01 ⎡ ⎢ 10 ⎢ ⎢ ⎢ ⎣
⎤ ⎡ ⎥ ⎢ ⎥ ⎢ z ⎥ ⎢ ⎥ ⎢ 10 ⎦ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
PROJECTION matrix
perspective division
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
x ⎡ ⎤ ⎢ ⎥ y ⎢ ⎥ z ⎢ ⎥ ⎢ ⎥ 10 ⎣ ⎦
01 ⎡ ⎢ 10 ⎢ 00 − ⎢ ⎢ 100 ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
x dz y dz d − 1
⎤ ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣
Flip z to transform to a left handed co-ordinate system ⇒ increasing z values mean increasing distance from the viewer.
divide by homogenous ordinate to map back to 3D space
41 42
7
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Phép chiếu phối cảnh 1 tâm
phép chiếu phối cảnh 1 tâm
y
y’
D’
C’
H G
H’
G’
D
C
=
=
E
F
x
A’ E’
F’ B x
A
B
0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ r 100 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦
0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ 0000 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦
0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ r 000 ⎢ ⎥ ⎢ ⎥ 1000 ⎣ ⎦
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
z
1
0
0
0
0
rz
=
0
1
0
0
[ zyx
] 1
[ yx
]1 +
y '
=
[ x '
] z 1'
[
Tr
]
=
1
1
x rz +
y rz +
⎡ ⎢ ⎣
⎤ 10 ⎥ ⎦
0
0
1
0001 ⎡ ⎤ ⎢ ⎥ 0010 ⎢ ⎥ ⎢ ⎥ 000 r ⎢ ⎥ 1000 ⎣ ⎦
0
0
0
r 1
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
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:
'
'
y
z
=
[ x
] 1'
Y’
43 44
Phép chiếu phối cảnh 2 tâm
VP (y=10)
x qy
(
px
)1
(
px
)1
(
px
)1
y qy
z qy
+
+
+
+
+
+
⎡ ⎢ ⎣
⎤ 1 ⎥ ⎦
VP ≡ y = 10
D’, H’C’, G’
D’ H’ C’,G’
VP( x = 10)
VP
X=10
A’, E’B’, F’
001 010
p q
p q
A’, E’B’, F’x’
=
=
000 0 1000
0000 1000
100 0 1000
(cid:122) [ Tc ] = [ Tpq ][ Tz ] 001 ⎡ ⎢ 010 ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
0001 ⎡ ⎢ 0010 ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
001
p
p
010
q
(
x
y
z
px
qy
y
z
=
+
+
]
=
[ x
] 1
[
])1
Tpq [
(cid:122) 2 tâm chiếu: (cid:122) [ -1/p 0 0 1 ] (cid:122) [ 0 -1/q 0 1 ] (cid:122) VP (Vanishing point) tương ứng trên 2 trục x và y là
010 100
q 0
1000
điểm: [ 1/p 0 0 1 ] và [ 0 1/q 0 1 ].
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
001 ⎡ ⎢ ⎢ ⎢ ⎢ ⎣
100 000
0 1
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
'
y
'
z
=
[ x
] 1'
(
px
rz
)1
(
px
rz
)1
(
px
rz
)1
x qy +
y qy +
+
+
+
+
+
+
z qy +
⎡ ⎢ ⎣
⎤ 1 ⎥ ⎦
45 46
Phép chiếu phối cảnh 3 tâm chiếu
y'
(cid:122) [ Tpqr ] = [Tp ][Tq ][Tr ]
y'
VP ( y = 10)
H'
D'
=
=
D'
H'
G'
C'
1 0 0 0
0 1 0 0
0 0 1 0
p q r 1
1 0 0 0
0 1 0 0
0 0 1 0
0 0 r 1
1 0 0 0
0 1 0 0
0 0 1 0
0 q 0 1
1 0 0 0
0 1 0 0
0 0 1 0
p 0 0 1
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
⎡ ⎢ ⎢ ⎢ ⎢ ⎣
C'
E'
G'
p
VP ( x = 10 )
VP ( z = 10 )
F'
y
z
y
z
px
qy
rz
(
=
+
+
+
A'
[ x
] 1
[ x
])1
x'
z'
x'
q 010 r 100 1000
001 ⎡ ⎢ ⎢ ⎢ ⎢ ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
B'
A', E'
F'
B'
47 48
8
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
Đặc tính của phép chiếu phối cảnh
(cid:122) 3 tâm chiếu:
1.
2.
– 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 ]. (cid:122) 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 ]
3.
(cid:122) [ Tc ] = [ Tpqr ][ Tz ]
p
p
q
q
Parallel lines in 3D will meet at a vanishing point Lines that pass behind the eye of the camera cause a catastropic “passage through infinity”. Perspective projections usually produce geometrically realistic pictures.
=
=
001 ⎡ ⎢ 010 ⎢ ⎢ r 000 ⎢ 1000 ⎣
⎤ ⎥ ⎥ ⎥ ⎥ ⎦
001 ⎡ ⎢ 010 ⎢ ⎢ r 100 ⎢ 1000 ⎣
0001 ⎤ ⎡ ⎤ ⎢ ⎥ ⎥ 0010 ⎥ ⎢ ⎥ . ⎢ ⎥ ⎥ 0000 ⎢ ⎥ ⎥ 1000 ⎣ ⎦ ⎦
49 50
Taxonomy of Projections
Classical Projections
(cid:122) Perspective – Three Point
M.C. Escher: Ascending and Descending
Angel Figure 5.3 51 52
Phân loại các phép chiếu
Viewing in OpenGL
PhÐp chiÕu h×nh häc ph¼ng
(cid:122) OpenGL has multiple matrix stacks - transformation
functions right-multiply the top of the stack
PhÐp chiÕu phèi c¶nh
PhÐp chiÕu song song
(cid:122) Two most important stacks: GL_MODELVIEW and
GL_PROJECTION
Trùc giao
(cid:122) Points get multiplied by the modelview matrix first, and
Mét ®iÓm
PhÐp chiÕu Xiªn
then the projection matrix
Axonometric
Hai ®iÓm
Cavalier
ChiÕu b»ng
Trimetric
(cid:122) GL_MODELVIEW: Object->Camera (cid:122) GL_PROJECTION: Camera->Screen (cid:122) glViewport(0,0,w,h): Screen->Device
Cabinet
Ba ®iÓm
ChiÕu ®øng
Dimetric
ChiÕu c¹nh
Isometric
PhÐp chiÕu kh¸c
53 54
9
Khoa CNTT – DHBK Hanoi hunglt@it-hut.edu.vn 8682595
OpenGL Example
Stereo Projections
void SetUpViewing() {
// The viewport isn’t a matrix, it’s just state... glViewport( 0, 0, window_width, window_height );
(cid:122) Faking depth in a 2D image (cid:122) Based on natural stereoscopic eye-brain system. (cid:122) Objects are not viewed with just one eye, but two
eyes.
// Set up camera->screen transformation first glMatrixMode( GL_PROJECTION ); glLoadIdentity(); gluPerspective( 60, 1, 1, 1000 ); // fov, aspect, near, far
(cid:122) Each eye looks at the object from a slightly
different location.
// 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 55
Stereo Projections
57