Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Bài 5<br />
Nguyên lý về 3D và<br />
Phép chiếu-Projection<br />
<br />
Nguyên lý về 3D<br />
<br />
<br />
<br />
Lê Tấn Hùng<br />
0913030731<br />
hunglt@it-hut.edu.vn<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
<br />
<br />
Ðồ họa 3 chiều - 3D computer graphics bao gồm việc bổ<br />
xung kích thước về chiều sâu của đối tượng, cho phép ta biểu<br />
diễn chúng trong thế giới thực một cách chính xác và sinh<br />
động hơn.<br />
Tuy nhiên các thiết bị truy xuất hiện tại đều là 2 chiều, Do<br />
vậy việc biểu diễn được thực thi thông qua phép tô chát –<br />
render để gây ảo giác illusion về độ sâu<br />
3D Graphics là việc chyển thế giới tự nhiên dưới dạng các mô<br />
hình biểu diễn trên các thiết bị hiển thị thông qua kỹ thuật tô<br />
chát (rendering).<br />
<br />
1<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Ðặc điểm của kỹ thuật đồ hoạ 3D<br />
<br />
Các phương pháp hiển thị 3D<br />
<br />
Có các đối tượng phức tapj hơn các đối tượng trong<br />
không gian 2D<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Các phép biến đổi hình học phức tạp<br />
Các phép biến đổi hệ toạ độ phức tạp hơn<br />
Thường xuyên phải bổ xung thêm phép chiếu từ<br />
không gian 3D vào không gian 2D<br />
Luôn phải xác định các bề mặt hiển thị<br />
(c) SE/FIT/HUT 2002<br />
<br />
Perspective and<br />
Depth of Field<br />
<br />
Với các thiết bị hiển thị 2D:<br />
<br />
<br />
Bao bởi các mặt phẳng hay các bề mặt<br />
Có các thành phần trong và ngoài<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
2<br />
<br />
3D viewing positions<br />
Kỹ thuật chiếu - projection: orthographic/perspective<br />
Kỹ thuật đánh dấu độ sâu - depth cueing<br />
Nét khuất - visible line/surface identification<br />
Tô chát bề mặt-surface rendering<br />
Cắt lát - exploded/cutaway scenes, cross-sections<br />
<br />
Thiết bị hiển thị 3D:<br />
<br />
<br />
<br />
Kính stereo - Stereoscopic displays*<br />
Màn hình 3D - Holograms<br />
<br />
3<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
4<br />
<br />
Exploded/cutaway scenes<br />
<br />
3D GRAPHICS WORLD<br />
PIPELINE<br />
SCENE/OBJECT<br />
<br />
Shadows as depth cues<br />
<br />
Modelling coordinates:<br />
- world coordinate system,<br />
- object coordinate system<br />
<br />
3D MODELLING<br />
<br />
VIEWING<br />
<br />
3D CLIPPING<br />
Camera coordinates<br />
PROJECTION<br />
Screen/Window coordinates<br />
RASTERIZATION<br />
Device coordinates<br />
<br />
Different views of a 3D model<br />
(c) SE/FIT/HUT 2002<br />
<br />
2D PIXELMAP DISPLAY<br />
5<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
6<br />
<br />
1<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
3D - Modelling<br />
<br />
Clipping 3D<br />
x +y +z =r<br />
2<br />
<br />
2<br />
<br />
2<br />
<br />
2<br />
<br />
view frustrum<br />
<br />
Polygonal<br />
<br />
3D Modelling<br />
<br />
Implicit<br />
<br />
x = sin 4θ<br />
y = cos 2θ<br />
<br />
outside view so<br />
must be clipped<br />
<br />
Particles<br />
<br />
Parametric<br />
<br />
7<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Viewing and Projection<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
8<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
10<br />
<br />
Rasterization<br />
<br />
3d models<br />
camera setup<br />
viewport<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
9<br />
<br />
Các bước xây dựng hình chiếu<br />
<br />
Phép chiếu<br />
<br />
täa ®é thùc<br />
3D<br />
<br />
Định nghĩa về phép chiếu<br />
<br />
täa ®é theo vïng<br />
c¾t<br />
<br />
C¾t theo view<br />
volum<br />
<br />
Định nghĩa về hình chiếu<br />
Ảnh của đối tượng trên mặt phẳng chiếu được hình thành từ<br />
phép chiếu bởi các đường thẳng gọi là tia chiếu (projector)<br />
xuất phát từ một điểm gọi là tâm chiếu (center of projection)<br />
đi qua các điểm của đối tượng giao với mặt chiếu (projection<br />
plan).<br />
(c) SE/FIT/HUT 2002<br />
<br />
11<br />
<br />
khung nh×n<br />
<br />
PhÐp chiÕu trªn<br />
mÆt ph¼ng chiÕu<br />
<br />
täa ®é thiÕt<br />
bÞ<br />
<br />
PhÐp biÕn ®æi vµo<br />
cæng nh×n cña<br />
täa ®é thiÕt bÞ<br />
<br />
<br />
<br />
1. đối tượng trong không gian 3D với tọa độ thực được cắt theo một không gian<br />
<br />
<br />
<br />
2. view volume được chiếu lên mặt phẳng chiếu. Diện tích choán bởi view volume<br />
<br />
xác định gọi là view volume.<br />
trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.<br />
<br />
<br />
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<br />
hình để hiển thị hình ảnh<br />
(c) SE/FIT/HUT 2002<br />
<br />
12<br />
<br />
2<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Phép chiếu song song<br />
Parallel Projections<br />
<br />
<br />
Phép chiếu song song - Parallel Projections<br />
<br />
<br />
<br />
Phân loại phép chiếu song song dựa trên hướng của tia<br />
chiếu Direction Of Projection và mặt phẳng chiếu projection plane<br />
Phép chiếu trực giao (Orthographic projection)<br />
<br />
<br />
<br />
<br />
Ứng với mỗi mặt phẳng chiếu ta có 1 ma trận chiếu<br />
tương ứng<br />
<br />
1<br />
0<br />
[T y ] = <br />
0<br />
<br />
0<br />
<br />
0 0 0<br />
0<br />
0<br />
0 0 0<br />
[T ] = <br />
0 1 0 x<br />
0<br />
<br />
<br />
0 0 1<br />
0<br />
<br />
0 0 0<br />
1<br />
0<br />
1 0 0<br />
[T z ] = <br />
0<br />
0 1 0<br />
<br />
<br />
0 0 1<br />
0<br />
<br />
13<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Phép chiếu trục lượng (Axonometric)<br />
<br />
0 0 0<br />
1 0 0<br />
0 0 0<br />
<br />
0 0 1<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
14<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
16<br />
<br />
Trimetric<br />
<br />
<br />
<br />
Phép chiếu trục lượng<br />
<br />
<br />
<br />
Phép chiếu Trimetric<br />
<br />
<br />
<br />
trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là<br />
khác nhau.<br />
<br />
SF- tỉ lệ co theo các trục là:<br />
<br />
f x = x' 2x + y' 2x<br />
xx'<br />
'<br />
x<br />
[T ] = y'<br />
xz<br />
<br />
0<br />
<br />
1 0 0 1<br />
[U ] = 0 1 0 1<br />
0 0 1 1<br />
<br />
y x'<br />
y 'y<br />
y z'<br />
0<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
0 1<br />
<br />
0 1<br />
0 1<br />
<br />
0 1<br />
<br />
f y = x' 2y + y' 2y<br />
<br />
f z = x' 2z + y' 2z<br />
<br />
15<br />
<br />
Phép chiếu Dimetric<br />
[T ] = [ Ry ][ Rx ][ Pz ]<br />
cos φ<br />
<br />
0<br />
=<br />
sin φ<br />
<br />
0<br />
<br />
0<br />
0 − sin φ 0 1<br />
<br />
1<br />
0<br />
0 0 cos ϕ<br />
.<br />
0 cos φ 0 0 − sin ϕ<br />
<br />
0<br />
0<br />
0<br />
1 0<br />
<br />
cos φ<br />
0<br />
[T ] = <br />
sin φ<br />
<br />
0<br />
<br />
sin φ sin ϕ<br />
cos ϕ<br />
− cos φ sin ϕ<br />
0<br />
<br />
Là phép chiếu Trimetric với 2 hệ<br />
số tỉ lệ co bằng nhau, giá trị thứ 3<br />
còn lại là tuỳ ý.<br />
0 1<br />
<br />
sin ϕ 0 0<br />
.<br />
cos ϕ 0 0<br />
<br />
0<br />
1 0<br />
0<br />
<br />
0 0 0<br />
<br />
1 0 0<br />
0 0 0<br />
<br />
0 0 1<br />
<br />
f z2 = (xz'2 + yz'2 ) = sin2 φ + cos2 φ sin2 ϕ<br />
f y2 = ( x 'y2 + y 'y2 ) = cos 2 ϕ<br />
φ = sin −1 ( ±<br />
<br />
0 0<br />
0 0<br />
0 0<br />
<br />
0 1<br />
<br />
ϕ = sin −1 (±<br />
<br />
fz<br />
2 − f z2<br />
<br />
fz<br />
<br />
)<br />
<br />
)<br />
<br />
2<br />
(c) SE/FIT/HUT 2002<br />
<br />
17<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
18<br />
<br />
3<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Phép chiếu Isometric<br />
sin 2 φ =<br />
<br />
1 − 2 sin 2 ϕ<br />
1 − sin 2 ϕ<br />
<br />
sin 2 ϕ<br />
1 − sin 2 ϕ<br />
sin2 ϕ<br />
1/ 3<br />
sin2 φ =<br />
=<br />
= 1/ 2<br />
1 − sin2 ϕ 1 − 1/ 3<br />
1<br />
sin ϕ = ±<br />
3<br />
sin 2 φ =<br />
<br />
.<br />
<br />
ϕ = ±35.260<br />
φ = ±450<br />
f = cos 2 ϕ = 2 / 3 = 0.8165<br />
19<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Parallel Projections<br />
<br />
20<br />
<br />
Phép chiếu xiên - Oblique<br />
<br />
<br />
<br />
Phép chiếu Cavalier<br />
Phép chiếu Cabinet<br />
<br />
orthographic<br />
oblique<br />
<br />
axonometric<br />
<br />
isometric<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
21<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
22<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
24<br />
<br />
Phép chiếu Cavalier<br />
<br />
<br />
0<br />
1<br />
0<br />
1<br />
[T ' ' ] = <br />
− a − b<br />
<br />
0<br />
0<br />
<br />
0<br />
0<br />
0<br />
0<br />
<br />
0<br />
0<br />
<br />
0<br />
<br />
1<br />
<br />
a = f cosα<br />
b = f sin α<br />
1<br />
<br />
<br />
0<br />
[T ] = <br />
− f cos α<br />
<br />
0<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
<br />
<br />
0<br />
1<br />
− f sin α<br />
0<br />
<br />
0 0<br />
0 0<br />
0 0<br />
<br />
0 1<br />
23<br />
<br />
<br />
<br />
f = 0, β = 900 phép chiếu<br />
sẽ trở thành phép chiếu<br />
trực giao.<br />
Còn với f = 1 kích thước<br />
của hình chiếu bằng kích<br />
thước của đối tượng =><br />
cavalier<br />
Phép chiếu Cavalier cho<br />
phép giá trị của α biến<br />
đổi một cách tự do α =<br />
300 và 450<br />
<br />
4<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Phép chiếu Cabinet<br />
<br />
<br />
Oblique Projections<br />
<br />
Phép chiếu xiên với hệ số co tỉ lệ f = 1/2<br />
<br />
f<br />
<br />
β = cos −1 (<br />
= cos −1 (<br />
<br />
1 + f<br />
2<br />
<br />
2<br />
<br />
)<br />
<br />
1<br />
<br />
2<br />
) = 63.435 0<br />
1 + (1 2 ) 2<br />
2<br />
<br />
D/2<br />
<br />
D<br />
<br />
D<br />
D<br />
Cavalier Project<br />
<br />
Cabinet Projection<br />
(c) SE/FIT/HUT 2002<br />
<br />
25<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Phép chiếu phối cảnh<br />
Perspective Projection<br />
<br />
Vanishing points<br />
<br />
<br />
<br />
Phép chiếu phối cảnh<br />
<br />
<br />
<br />
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à<br />
điểm triệt tiêu - vanishing point<br />
<br />
<br />
<br />
<br />
<br />
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à<br />
mặt phẳng chiếu projection plane<br />
<br />
<br />
<br />
<br />
<br />
Each set of parallel lines (=direction) meets at a different<br />
point: The vanishing point for this direction<br />
Sets of parallel lines on the same plane lead to collinear<br />
vanishing points: the horizon for that plane<br />
Easy examples<br />
<br />
<br />
<br />
<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
corridor<br />
higher = further away<br />
<br />
Good way to spot faked images<br />
<br />
27<br />
<br />
Điểm triệt tiêu<br />
Vanishing point<br />
<br />
<br />
26<br />
<br />
28<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
Perspective Projections<br />
3-point perspective<br />
<br />
điểm triệt tiêu quy tắc - principle vanishing point<br />
<br />
1-point perspective<br />
<br />
<br />
<br />
<br />
The number of principal vanishing points is determined by<br />
the number of principal axes cut by the projection plane.<br />
If the plane only cut the z axis (most common), there is only<br />
1 vanishing point.<br />
2-points sometimes used in architecture and engineering. 3points seldom used … add little extra realism<br />
2-point perspective<br />
(c) SE/FIT/HUT 2002<br />
<br />
29<br />
<br />
(c) SE/FIT/HUT 2002<br />
<br />
30<br />
<br />
5<br />
<br />