Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Nguyên lý về 3D<br />
<br />
Bài 5<br />
Nguyên lý về 3D và<br />
phép chiếu-Projection<br />
<br />
z<br />
<br />
z<br />
Lê Tấn Hùng<br />
0913030731<br />
hunglt@it-hut.edu.vn<br />
<br />
z<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<br />
biểu diễn chúng trong thế giới thực một cách chính xác<br />
và sinh độ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<br />
các mô hình biểu diễn trên các thiết bị hiển thị thông qua<br />
kỹ thuật tô chát (rendering).<br />
<br />
2<br />
<br />
1<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<br />
trong không gian 2D<br />
<br />
z<br />
<br />
–<br />
–<br />
<br />
z<br />
z<br />
z<br />
z<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 />
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 />
<br />
–<br />
–<br />
–<br />
<br />
z<br />
<br />
Thiết bị hiển thị 3D:<br />
–<br />
–<br />
<br />
3<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 />
Kính stereo - Stereoscopic displays*<br />
Màn hình 3D - Holograms<br />
<br />
4<br />
<br />
Perspective and<br />
Depth of Field<br />
<br />
Exploded/cutaway scenes<br />
<br />
Stereo Projections<br />
Shadows as depth cues<br />
<br />
z<br />
<br />
z<br />
<br />
z<br />
<br />
In OpenGL we can produce<br />
stereo views by creating two<br />
side-by-side viewports with<br />
slightly different viewing<br />
angles.<br />
The lookat point stays the<br />
same but the location of the<br />
eye moves.<br />
Human eyes are about 3<br />
inches apart, therefore a good<br />
value for D is 1.5<br />
<br />
Different views of a 3D model<br />
5<br />
<br />
6<br />
<br />
1<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Stereo Projections<br />
<br />
3D GRAPHICS PIPELINE<br />
WORLD SCENE/OBJECT<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 />
<br />
eye=(0,-1,2.5)<br />
<br />
Device coordinates<br />
<br />
eye=(0.5,-1,2.5)<br />
<br />
2D PIXELMAP DISPLAY<br />
<br />
7<br />
<br />
8<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 />
9<br />
<br />
10<br />
<br />
Viewing and Projection<br />
<br />
Rasterization<br />
<br />
3d models<br />
camera setup<br />
viewport<br />
<br />
11<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<br />
<br />
Các bước xây dựng hình chiếu<br />
täa ®é thùc<br />
3D<br />
<br />
Định nghĩa về phép chiếu<br />
Một cách tổng quát, phép chiếu là phép chuyển đổi những<br />
điểm của đối tượng trong hệ thống tọa độ n chiều thành<br />
những điểm trong hệ thống tọa độ có số chiều nhỏ hơn n.<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<br />
projection) đi qua các điểm của đối tượng giao với mặt<br />
chiếu (projection plan).<br />
<br />
täa ®é theo vïng<br />
c¾t<br />
<br />
C¾t theo view<br />
volum<br />
<br />
täa ®é thiÕt<br />
bÞ<br />
<br />
khung nh×n<br />
<br />
PhÐp chiÕu trªn<br />
mÆt ph¼ng chiÕu<br />
<br />
PhÐp biÕn ®æi vμo<br />
cæng nh×n cña<br />
täa ®é thiÕt bÞ<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<br />
<br />
z<br />
<br />
gian xác định gọi là view volume.<br />
2. view volume được chiếu lên mặt phẳng chiếu. Diện tích choán bởi view<br />
<br />
z<br />
<br />
volume trên mặt phẳng chiếu đó sẽ cho chúng ta khung nhìn.<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<br />
<br />
z<br />
<br />
màn hình để hiển thị hình ảnh<br />
<br />
13<br />
<br />
14<br />
<br />
Phép chiếu song song<br />
Parallel Projections<br />
Phép chiếu song song - Parallel<br />
Projections là phép chiếu mà ở đó các tia<br />
chiếu song song với nhau hay xuất phát từ<br />
điểm vô cùng<br />
Phân loại phép chiếu song song dựa trên<br />
hướng của tia chiếu Direction Of Projection<br />
và mặt phẳng chiếu -projection plane<br />
z<br />
z<br />
<br />
15<br />
<br />
Points on the object are projected to the<br />
viewing plane along parallel lines<br />
Preserves relative dimensions of the<br />
object but does not give a realistic<br />
presentation<br />
<br />
centre of<br />
projection<br />
at infinity<br />
<br />
16<br />
<br />
A<br />
’<br />
D<br />
’<br />
<br />
A<br />
B<br />
’D<br />
C<br />
’<br />
<br />
B<br />
C<br />
projectio<br />
n plane<br />
<br />
Taxonomy of Projections<br />
Phép chiếu trực giao (Orthographic<br />
projection) là phép chiếu song song và<br />
tia chiếu vuông góc với mặt phẳng<br />
chiếu thường dùng mặt phẳng z=0<br />
Ứng với mỗi mặt phẳng chiếu ta có 1<br />
ma trận chiếu tương ứng<br />
<br />
⎡1<br />
⎢0<br />
[T y ] = ⎢<br />
⎢0<br />
⎢<br />
⎣0<br />
<br />
17<br />
<br />
0 0 0⎤<br />
⎡0<br />
⎢0<br />
0 0 0⎥⎥<br />
⎢<br />
[<br />
]<br />
=<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 />
z<br />
<br />
Orthographic Projections<br />
–<br />
<br />
Multiview Orthographic<br />
<br />
0 0 0⎤<br />
1 0 0⎥⎥<br />
0 0 0⎥<br />
⎥<br />
0 0 1⎦<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 trục lượng (Axonometric)<br />
z<br />
z<br />
z<br />
<br />
z<br />
<br />
Trimetric<br />
<br />
Phép chiếu trục lượng là phép chiếu mà hình chiếu thu được<br />
Phép chiếu Trimetric<br />
Là phép chiếu hình thành từ việc quay tự do đối tượng trên một trục<br />
hay tất cả các trục của hệ tọa độ và chiếu đối tượng đó bằng phép<br />
chiếu song song lên mặt phẳng chiếu (thường là mặt phẳng z = 0)<br />
vuông góc với tia chiếu<br />
trên cơ sở tỉ lệ co - SF của ảnh đối tượng trên mỗi trục là khác nhau.<br />
<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 />
19<br />
<br />
y x'<br />
y 'y<br />
y z'<br />
0<br />
<br />
[ U ] :là ma trận vector đơn vị<br />
của các trục x, y, z bất biến<br />
[ T ] : là ma trận chiếu tổng hợp<br />
tương ứng<br />
SF- tỉ lệ co theo các trục là:<br />
<br />
f x = x' 2x + y' 2x<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 />
20<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 />
0 0⎤<br />
0 0⎥⎥<br />
0 0⎥<br />
⎥<br />
0 1⎦<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 />
0⎥ ⎢0<br />
.<br />
cos ϕ 0⎥ ⎢0<br />
⎥ ⎢<br />
0<br />
1⎦ ⎣0<br />
0<br />
<br />
sin ϕ<br />
<br />
f z2 = (xz'2 + yz'2 ) = sin2 φ + cos2 φ sin2 ϕ<br />
<br />
0 0 0⎤<br />
1 0 0⎥⎥<br />
0 0 0⎥<br />
⎥<br />
0 0 1⎦<br />
<br />
f y2 = ( x 'y2 + y 'y2 ) = cos 2 ϕ<br />
φ = sin −1 ( ±<br />
<br />
•Quay đối tượng quanh trục y theo<br />
một góc φ,<br />
•Quay quanh x theo một góc ψ<br />
<br />
ϕ = sin −1 (±<br />
<br />
•Chiếu trên mặt phẳng z = 0 với tâm<br />
chiếu tại điểm vô hạn<br />
<br />
fz<br />
2 − f z2<br />
<br />
fz<br />
<br />
)<br />
<br />
)<br />
<br />
2<br />
<br />
21<br />
<br />
22<br />
<br />
Phép chiếu Isometric<br />
z<br />
<br />
z<br />
z<br />
<br />
23<br />
<br />
Là phép chiếu trục lượng<br />
mà ở đó hệ số co cạnh<br />
trên 3 trục là bằng nhau<br />
Góc quay tương ứng là<br />
35.26 và 45<br />
Ðược ứng dụng nhiều<br />
trong việc xây dựng các<br />
góc quan sát chuẩn cho<br />
đối tượng trong các hệ<br />
soạn thảo đồ họa<br />
<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 />
ϕ = ±35.260<br />
φ = ±450<br />
f = cos 2 ϕ = 2 / 3 = 0.8165<br />
<br />
.<br />
<br />
24<br />
<br />
4<br />
<br />
Khoa CNTT – DHBK Hanoi<br />
hunglt@it-hut.edu.vn<br />
8682595<br />
<br />
Taxonomy of Projections<br />
z<br />
<br />
Parallel Projections<br />
<br />
Oblique Projections<br />
<br />
orthographic<br />
oblique<br />
<br />
25<br />
<br />
axonometric<br />
<br />
26<br />
<br />
Taxonomy of Projections<br />
z<br />
<br />
Phép chiếu xiên - Oblique<br />
<br />
Oblique Projections<br />
–<br />
–<br />
–<br />
<br />
isometric<br />
<br />
z<br />
<br />
Combine the properties of Orthographic and<br />
Axonometric<br />
Preserves the object face; and<br />
Gives a better sense of the 3D nature.<br />
<br />
z<br />
<br />
27<br />
<br />
Phép chiếu Cavalier<br />
Phép chiếu Cabinet<br />
<br />
28<br />
<br />
Phép chiếu Cavalier<br />
G Phép<br />
<br />
chiếu cavalier là phép chiếu xiên được tạo thành khi các<br />
tia chiếu làm thành với mặt phẳng chiếu một góc 450<br />
<br />
0<br />
⎡ 1<br />
⎢ 0<br />
1<br />
[T ' ' ] = ⎢<br />
⎢− a − b<br />
⎢<br />
0<br />
⎣ 0<br />
<br />
29<br />
<br />
0<br />
0<br />
0<br />
0<br />
<br />
0⎤<br />
0⎥<br />
⎥<br />
0⎥<br />
⎥<br />
1⎦<br />
<br />
–<br />
<br />
–<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 />
<br />
0<br />
1<br />
− f sin α<br />
0<br />
<br />
–<br />
<br />
0 0⎤<br />
0 0⎥⎥<br />
0 0⎥<br />
⎥<br />
0 1⎦<br />
<br />
f = 0, β = 900 phép<br />
chiếu sẽ trở thành<br />
phép chiếu trực giao.<br />
Còn với f = 1 kích<br />
thước của hình chiếu<br />
bằng kích thước của<br />
đối tượng => cavalier<br />
Phép chiếu Cavalier<br />
cho phép giá trị của α<br />
biến đổi một cách tự<br />
do α = 300 và 450<br />
<br />
30<br />
<br />
5<br />
<br />