Tải bản đầy đủ (.pdf) (6 trang)

Đồ họa máy tính - Chương 4 Kỹ thuật xử lý hình khuất - Bài 14 doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (262.09 KB, 6 trang )

Kỹ thuật Đồ hoạ máy tính
78
Mặt Các đỉnh
1
1 2 3 4
2
5 6 7 8
3
1 2 6 5
4
2 3 7 6
5
3 4 8 7
6
4 1 5 8

Vẽ hình lập phơng theo mô hình trên
Bài tập : Biểu diễn các khối đa diện đều và viết chơng trình minh hoạ :
1. Tứ diện đều
2. Khối lập phơng
3. Bát diện đều (8 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 4 mặt)
4. Nhị thập diện đều (20 mặt, mỗi mặt là một tam giác đều, 1 đỉnh kề 5 mặt)
5. Thập nhị diện đều (12 mặt, mỗi mặt là một ngũ giác đều, 1 đỉnh kề 3 mặt)
6. Biểu diễn hình lăng trụ và viết chơng trình minh hoạ


$14. Xác định đờng khuất mặt khuất
Để có thể tạo ra ảnh nổi trong không gian 3 chiều ngời ta phải bỏ đi các mặt khuất
đờng khuất hoặc dựa vào màu sắc để tạo nên độ sáng tối khác nhau, điều này dẫn
đến bài toán xác định mặt khuất đờng khuất trong kỹ thuật đồ hoạ
1. Xác định phía trớc phía sau của một mặt


Giả sử cho một vật thể trong không gian 3D đợc giới hạn bởi các mặt là các đa giác

Một mặt giới hạn cùng vật thể là phần giới hạn của mặt phẳng chứa đa giác đó giả
sử mặt phẳng có phơng trình:
Kỹ thuật Đồ hoạ máy tính
79
ax+by+cz+d=0 (*)
Mặt phẳng (*) chia không gian thành hai phần. Chúng ta quy ớc tất cả các điểm
(x,y,z) mà ax+by+cz+d <0 là phía sau của mặt và tập các điểm (x,y,z) mà
ax+by+cz+d 0 là phần phía trớc của mặt
Với các quy định trên thì vật thể là tập hợp tất cả các điểm thuộc phần phía sau của
tất cả các mặt tạo nên vật thể

Từ đây ta cũng suy ra những điểm nằm về phía sau của tất cả các mặt tạo nên phần
bên trong vật thể, phần còn lại của không gian là phần bên ngoài vật thể, suy ra
ngời quan sát có thể nhìn thấy vật thể khi ngời đó ở phía ngoài vật thể
Giả sử vật thể 3D đợc cho bởi danh sách các mặt và mỗi mặt là danh sách các cạnh
hoặc các đỉnh. Mỗi mặt là một đa giác lồi. Ta giả sử các cạnh đợc đánh số theo
chiều ngợc chiều kim đồng hồ.
Gọi

n là véctơ pháp tuyến của mặt ABCD ngợc với hớng nhìn từ bên ngoài
Giả sử ngời quan sát ở vị trí
Ex y z
EEE
(,,) nhìn vào vật thể. Lấy một điểm P bất
kỳ trên mặt Si của vật thể khi đó vectơ
ep

tạo nên hớng nhìn của ngời quan sát

đối với mặt Si
E
D
C
b
n
a
B
A
Kỹ thuật Đồ hoạ máy tính
80
n
E
P
n
a
b


Xét tích các hớng
epn ep n n ep





.cos(,)= khi đó nếu ep n


.

<
0 góc
(, )


nep
O
< 90

thì mặt Si chứa điểm P bị che khuất khi đó các cạnh tạo nên mặt bị
che khuất không nhìn thấy, nó tạo nên các đờng khuất. Ngợc lại nếu
(, )

nep
O
90

thì ngời quan sát nhìn thấy mặt Si và do đó các cạnh tạo nên mặt Si
không bị che khuất

Chú ý:
1. Chúng ta chú ý rằng nếu mặt phẳng song song với hớng nhìn thì hình ảnh của
mặt trên mặt phẳng chiếu là một đoạn thẳng
2. Việc xác định các đờng khuất mặt khuất dựa theo nguyên tắc trên đối với các vật
thể có hình dạng tuỳ ý là rất phức tạp vì các cạnh có thể bị che khuất một phần do
các mặt khác mà không phải bị che khuất toàn bộ. Nguyên tắc trên chỉ thích hợp với
các vật thể đơn giản

P
E

O
n
A
C
B
Kỹ thuật Đồ hoạ máy tính
81


2. Thuật toán mô tả vật thể theo độ sâu
(Depth buffer Method)
Bây giờ chúng ta khảo sát một thuật toán khác - gọi là thuật toán mô tả vật thể theo
độ sâu, ý tởng của thuật toán rất đơn giản là dựa vào khoảng cách giữa mỗi điểm
trên vật thể với vị trí ngời quan sát để tô màu sáng tối khác nhau
Ưu điểm của phơng pháp này là vật thể có thể có hình dạng bất kỳ không nhất thiết
là đa diện, dễ ứng dụng, dễ hiểu
Bài toán nh sau :
Giả sử cho vật thể V đợc giới hạn bởi các mặt S1,S2 Sm, các điểm (i,j) thuộc
mặt Sk của vật thể đợc tô bởi màu f(k,i,j) (k=1,m) (để đơn giản ta có thể giả thiết
các điểm của mỗi mặt Sk đợc tô cùng một màu fk). Giả sử ngời quan sát ở vị trí
Ex y z
EEE
(
,,) và nhìn vật thể theo hớng OZ
S1
S2
Z
Y
O
X



Thuật toán mô tả vật thể theo độ sâu đợc thể hiện nh sau:
Ta sử dụng hai mảng : một mảng gọi là mảng depth(i,j) dùng để chứa độ sâu theo
hớng OZ của điểm (i,j)

nào đó, mảng thứ hai là mảng có tên gọi color(i,j) dùng để
chứa màu cần tô của điểm (i,j)
Thuật toán:
1. Với mỗi điểm (i,j) thuộc hình chữ nhật bao vật thể ta đặt
Kỹ thuật Đồ hoạ máy tính
82
depth(i,j):=0; color(i,j):=<màu nền>
2. For (mỗi điểm (i,j) thuộc hình chữ nhật bao vật thể) Do
Begin
For k:=1 To m Do
Begin
If (điểm (i,j) thuộc mặt Sk) Then
Begin
Tính độ sâu của điểm (i,j) thuộc Sk : z:=(-a
k
i-b
k
j-d
k
)/c
k

If (z<depth(i,j)) Then
Begin

depth(i,j):=z; color(i,j):=f(k,i,j);
End;
End;
End;
End;
3. Với mỗi điểm (i,j) thuộc hình chữ nhật bao vật thể
vẽ điểm (i,j) bằng màu color(i,j);
4. Kết thúc
Ưu điểm của thuật toán này nh trên đã nêu đơn giản, dễ áp dụng cho mọi đối
tợng. Nhiều lúc nó còn có u điểm lớn hơn là với vật thể phức tạp, số mặt tăng lên
số phép tính không tăng. Nhợc điểm lớn nhất là kích thớc của 2 mảng tăng nhanh
khi độ phân giải của màn hình tăng
Chú ý: Nếu các mặt của vật thể là các đa giác nghĩa là một phần của mặt phẳng:
ax+by+cz+d=0
khi đó việc tính độ sâu z đợc tính theo công thức:
z
a
x
b
y
d
c
kkk
k
=




3. Thuật toán xác định vật thể theo đờng quét

Phơng pháp ny còn có tên gọi l thuật toán scan-line
ý tởng của thuật toán nh sau:
Kỹ thuật Đồ hoạ máy tính
83

Giả sử cho vật thể V trong không gian 3D. Ngời quan sát ở vị trí E nhìn vật thể V
theo hớng OZ khi đó ta thực hiện các bớc sau:
1. Chiếu vật thể V theo hớng OZ lên mặt phẳng chiếu XOY. Giả sử S1,S2 Sm
tơng ứng là hình chiếu của các mặt V1,V2 Vm của vật thể V
2. Giả sử hình chiếu của vật thể đợc bao bởi hình chữ nhật
(x
min
, x
max) x (
y
min
, y
max)

For i:= y
min
To y
max
Do
Begin
Kẻ đờng thẳng y= i (song song với OX)
Gọi x
1
<= x
2


<=

<=

x
m
là hoànhđộ của các giao điểm
của tia quét với biên của các mặt hình chiếu
For j:=1 To m-1 Do
Begin
xét đoạn thẳng x
j
x
j+1

If (x
j
x
j+1
chỉ thuộc 1 mặt) Then (tô màu x
j
x
j+1
theo mặt đó)
Else
Begin
Tại mỗi điểm trên đoạn xác định độ sâu của điểm
theo từng mặt để chọn đợc mặt gần nhất và
tô màu của điểm theo mặt đó

End;
End;
End;
Chú ý:
Phơng pháp này thực chất là cải tiến của phơng pháp độ sâu ở trên với cách này
có thể làm giảm kích thớc của mảng độ sâu và mảng màu trong thuật toán độ sâu.

×