CÁC KỸ THUẬT XỬ LÝ ĐỒ HỌA 3D
Mục tiêu:
1. Cung cấp các khái niệm về đồ họa không gian 3 chiều (3D), phương pháp
biểu diễn đối tượng 3D.
2. Các kỹ thuật xử lý đối tượng 3D trong đồ họa.
3. Phương pháp thể hiện (vẽ) đối tượng 3D lên màn hình
4. Từ đó lập trình được các kỹ thuật tính tốn để xử lý trên đối tượng 3D như
phép quay, tịnh tiến, co giãn, biến dạng,.. các thuật toán của phép chiếu
song song, chiếu phối cảnh để vẽ hình 3D lên màn hình.
Nội dung:
I. Giới thiệu về đồ họa trong khơng gian 3D
Các đối tượng trong thế giới thực phần lớn là các đối tượng ba chiều, nên việc
thể hiện các đối tượng ba chiều trên máy tính là một cơng việc hết sức cần thiết
để đưa tin học gần gũi với thực tế hơn. Cũng giống như các cách biểu diễn các
đối tượng ba chiều trên mặt phẳng khác (như của máy ảnh, camera, ... ), biểu diễn
bằng máy tính cũng phải tuân theo các quy luật về phối cảnh, sáng, tối, ... nhằm
giúp người xem có thể tưởng tượng lại hình ảnh một cách gần đúng nhất. Ngồi
ra biểu diễn trên máy tính có ưu thế giúp ta có thể quan sát đối tượng ở nhiều góc
cạnh khác nhau, ở các khoảng cách khác nhau.
Phần này sẽ giới thiệu một số kĩ thuật biểu diễn các đối tượng ba chiều trên
máy tính, từ các đối tượng đơn giản như các hình khối, các đa diện, ... đến các
đối tượng tương đối phức tạp
1. Hệ tọa độ
Hệ tọa độ dùng để biểu diễn các điểm trong không gian.
Hệ tọa độ Đề - các biểu diễn một điểm gồm bộ 3 giá trị (x,y,z) tương ứng
với hoành độ, tung độ và cao độ.
Hệ tọa độ biểu diễn theo quy tắc bàn tay phải: để bàn tay phải sao cho ngón
cái hướng theo trục z, khi nắm tay lại, các tay chuyển động theo hướng từ trục x
đến trục y.
Hình 1: Minh họa hệ tọa độ bàn tay phải
Hệ tọa tọa độ theo qui ước bàn tay trái : để bàn tay phải sao cho ngón cái
hướng theo trục z, khi nắm tay lại, các ngón tay chuyển động theo hướng từ trục
x đến trục y.
Hình 2: Minh họa hệ tọa độ bàn tay trái
Hệ tọa tọa độ thuần nhất: Mỗi điểm (x, y, z) trong không gian Đề-các
được biểu diễn bởi một bộ bốn tọa độ trong không gian 4 chiều thu gọn (hx, hy,
hz, h). Người ta thường chọn h = 1.
Hệ tọa độ cầu biểu diễn một điểm trong không gian dựa trên bộ ba (R, ,
), trong đó:
R là khoảng cách từ điểm đến gốc tọa độ
là góc lệch so với Ox trên mặt phẳng Oxy
là góc lệch so với mặt phẳng Oxy
Hình 3 Minh họa hệ tọa độ cầu
2. Mơ hình WireFrame
Một phương pháp thông dụng và đơn giản để mô hình hóa đối tượng là mơ
hình khung nối kết (WireFrame)
Một mơ hình khung nối kết gồm có một tập các đỉnh và tập các cạnh nối
giữa các đỉnh đó. Khi thể hiện bằng mơ hình này, các đối tượng ba chiều có vẻ
rỡng và khơng giống thực tế lắm. Để hồn thiện hơn, người ta dùng các kĩ thuật
tạo bóng và loại bỏ các đường và mặt khuất. Tuy nhiên vẽ bằng mơ hình này
thường nhanh nên người ta thường dùng nó trong việc xem phác thảo (preview)
các đối tượng, đặc biệt là trong các hệ CAD.
Danh sách đỉnh
Vertex
x
y
x
1
0
0
0
2
0
1
0
3
0
1
1
4
0
0.5
1.5
5
0
0
1
6
1
0
0
7
1
1
0
Kỹ thuật lập trình đồ họa
mặt sau
mặt trước
Với mơ hình khung nối
kết, hình dạng của đối tượng ba
chiều được biểu diễn bằng hai
danh sách (list) : danh sách các
đỉnh (vertices) và danh sách các
cạnh (edges) nối các đỉnh đó.
Danh sách các đỉnh cho biết
thơng tin hình học đó là vị trí các
đỉnh, cịn danh sách các cạnh
xác định thơng tin về sự kết nối,
nó cho biết cặp các đỉnh tạo ra
cạnh. Chúng ta hãy quan sát một
vật thể ba chiều được biểu diễn
bằng mơ hình khung nối kết như
sau :
8
1
1
1
9
1
0.5
1.5
10
1
0
1
Hình 4: Vật thể 3D biểu diễn bằng mơ hình Wire
Frame
DANH SÁCH CẠNH
Edge Vertex1 Vertex2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
2
1
2
3
4
5
1
7
8
9
10
6
6
7
8
9
10
5
3
3. Các phép biến đổi 3D
Phép biến đổi một đối tượng A{ (xi, yi, zi) | i=1,…,n } thành A’{ (x’i, y’i,
z’i) với i=1,…,n }
Đặc điểm:
Thực hiện biến đổi từng điểm độc lập
Số lượng điểm không thay đổi
Tập cạnh không đổi
Mở rộng từ phép biến đổi 2D
Biến một điểm P(x,y,z) thành điểm Q(x’,y’,z’)
Dạng ma trận:
Q[x’,y’,z’,1] = P[x, y, z,1]M
M là ma trận biến đổi.
m11
m
21
m31
m41
m12
m22
m13
m23
m32
m42
m33
m43
0
0
0
1
a. Phép tịnh tiến (Translation )
Phép tịnh tiến (translation) với véc tơ tịnh tiến (Tx,Ty,Tz) ta có ma trận M như
sau:
Hình 5 Minh họa phép tịnh tiến
b. Phép co giãn (Scaling)
Tỷ lệ co giãn theo 3 chiều (Sx,Sy,Sz), ta có ma trận M như sau:
Hình 6 Minh họa phép co giãn
c. Phép biến dạng (Shear)
Hệ số biến dạng (b,c,d,f,g,h) ta có ma trận M như sau:
d. Phép đối xứng (Mirror)
Đối xứng qua trục tọa độ với tham số (Mx, My, Mz) ma trận M như sau:
Đối xứng qua trục Ox: Mx=1, My=-1, Mz=-1
Đối xứng qua trục Oy: Mx=-1, My=1, Mz=-1
Đối xứng qua trục Oz: Mx=-1, My=-1, Mz=1
Đối xứng qua gốc tọa độ O: Mx=-1, My=-1, Mz=-1
Hình 7: Minh họa phép đối xứng
e. Phép quay (Rotation)
Đơn giản nhất là các phép quay quanh các trục tọa độ với góc quay dương, khi
đó quay trở về phép quay 2D quanh gốc tọa độ
i. Quay quanh trục Oz
Quay quanh trục Oz với góc quay , có ma trận M như sau:
Hình 8 Minh họa phép quay quanh trục Oz
ii. Quay quanh trục Oz
Quay quanh trục Oy với góc quay , có ma trận M như sau:
Hình 9: Minh họa phép quay quanh Oy
iii. Quay quanh trục Oz
Quay quanh trục Oy với góc quay , có ma trận M như sau:
Hình 10: Minh họa phép quay quanh Ox
iv. Quay quanh trục bất kì song song với trục tọa độ
Tịnh tiến trục quay về trùng với trục TĐ
Thực hiện quay quanh trục TĐ đó
Tịnh tiến ngược lại vị trí ban đầu
Hình 11: Minh họa quay quanh trục song song với trục tọa độ
Ví dụ: Thực hiện phép quay với trục quay song song với Oz đi qua điểm
(XR,YR,0) với góc . Ta thực hiện 3 bước:
Tịnh tiến trục quay đến Oz - MT1;
Quay quanh Oz - MROz;
Tịnh tiến ngược lại – MT2.
v. Trục quay bất kỳ
Trục quay bất kì đi (V)
(1) Tịnh tiến V đến vị trí gốc TĐ
(sao cho V đi qua gốc TĐ)
(2) Thực hiện với trục quay
đi qua gốc như ở trên
(3) Tịnh tiến ngược lại so với (1)
Trục quay bất kỳ đi qua gốc tọa độ (V)
(1) Quay V về một mặt phẳng tọa độ (Oxzquanh Ox)
(2) Quay V về trục tọa độ (Oxquanh Oz)
(3) Quay đối tượng quanh Ox
(4) Thực hiện ngược lại 21
4. Các phép chiếu trong 3D
Đị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.
Đị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ác bước xây dựng hình chiếu
1. Đối tượng trong khơng gian 3D với tọa độ thực được cắt theo một không gian
xác định gọi là view volume.
2. View volume được chiếu lên mặt phẳng chiếu. Diện tích chốn bởi 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.
Hình 12: Minh họa chiếu phối cảnh
song
Hình 13: Minh họa chiếu song
a. Phép chiếu song song
Phép chiếu song song (Parallel 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.
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
Là phép chiếu song song và tia chiếu vng góc với mặt phẳng chiếu. Về
mặt tốn học, phép chiếu trực giao là phép chiếu với một trong các mặt phẳng toạ
độ có giá trị bằng 0. Thường dùng mặt phẳng z=0, ngồi ra x=0 và y=0.
Ứng với mỡi mặt phẳng chiếu ta có một ma trận chiếu tương ứng.
Muốn biến điểm P(x,y,z) thành điểm Q qua phép chiếu trực giao thì tọa độ
của Q xác định như sau:
Q(x,y,z,1) = P(x,y,z,1)*M4*4 (M là ma trận chiếu)
Với mặt phẳng chiếu là Oxy (z=0), ma trận chiếu sẽ là:
Với mặt phẳng chiếu là Oyz (x=0), ma trận chiếu sẽ là:
Với mặt phẳng chiếu là Oxz (y=0), ma trận chiếu sẽ là:
Hình 14: Hinh minh họa phép chiếu trực giao
b. Phép chiếu phối cảnh
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ừ một đ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.
Các đoạn thẳng song song của mơ hình 3D sau phép chiếu hội tụ tại một
đ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
Phép chiếu phối cảnh gồm 1 tâm chiếu, 2 tâm chiếu, 3 tâm chiếu
Hình 15: Minh họa chiếu phối cảnh
i. Phép chiếu phối cảnh một tâm chiếu
Giả sử mặt phẳng đặt tại z=0 và tâm chiếu nằm trên trục z, cách trục z một khoảng
zc= -1/r
Phương trình biến đổi:
Ma trận biến đổi Tr có dạng:
Hình 16 Minh họa chiếu phối cảnh một tâm chiếu
ii. Phép chiếu phối cảnh một tâm chiếu
Tâm chiếu 1 nằm trên trục x, cách x một khoảng -1/p
Tâm chiếu 2 nằm trên trục y, cách y một khoảng -1/q
Tọa độ 2 tâm chiếu
Điểm triệt tiêu trên trục x, y là:
Phương trình biến đổi
iii. Phép chiếu phới cảnh một tâm chiếu
Tâm chiếu trên trục x tại điểm [-1/p 0 0 1]
Tâm chiếu trên trục y tại điểm [0 -1/q 0 1]
Tâm chiếu trên trục z tại điểm [ 0 0 -1/r 1]
Điểm triệt tiêu -VP tương ứng sẽ là
[1/p 0 0 1], [0 1/q 0 1], [ 0 0 1/r 1]
Phương trình biến đổi
Chúc Anh/ Chị học tập tốt!
Bài 5 - Kỹ thuật lập trình đồ họa
Trang 1