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

Bài giảng đồ họa : KHỬ MẶT KHUẤT HIDDEN SURFACE REMOVAL part 2 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 (259.42 KB, 5 trang )

ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 6/15
D
D
e
e
p
p
t
t
h
h
s
s
o
o
r
r
t
t
i
i
n
n
g
g
• Còn gọi là Painter’s algorithm
• Sắp xếp các mặt theo thứ tự từ xa đến gần (giảm dần
theo độ sâu) theo vò trí sâu nhất của mỗi mặt.
• Scan convert từng mặt theo thứ tự này.
• Tuy nhiên, không phải bao giờ ta cũng có thể sắp xếp


theo độ sâu (xem hình dưới)
• Giải quyết vấn đề này như thế nào ?
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 7/15
X
X
ư
ư
û
û
l
l
y
y
ù
ù
c
c
a
a
ù
ù
c
c
v
v
ư
ư
ơ
ơ

ù
ù
n
n
g
g
m
m
a
a
é
é
c
c
k
k
h
h
i
i
t
t
í
í
n
n
h
h
đ
đ

o
o
ä
ä
s
s
a
a
â
â
u
u
• Khi sắp xếp các mặt theo độ sâu, có nhiều tình huống
xác đònh rất khó.
• Thuật toán sắp xếp theo độ sâu có thể cài đặt như sau:
1. Khởi động việc sắp xếp theo vò trí z nhỏ nhất (xa)
2. Giải quyết các mơ hồ:
(a) So sánh theo toạ độ X
(b) So sánh theo toạ độ Y
(c) Kiểm tra P có hoàn toàn nằm về 1 phía của Q ?
(d) Kiểm tra Q có hoàn toàn nằm về 1 phía của P ?
(e) So sánh hình chiếu lên X-Y (Polygon Intersection)
(f) Hoán vò hoặc tách các polygon
3. Scan convert từ xa đến gần.
• Một số lưu ý về Painter’s Algorithm
♦ Có độ phức tạp O(nlogn)
♦ Các polygon cắt nhau phải được chia thành các polygon
con.
♦ Phải tính toán trên mỗi pixel của mọi polygon.
♦ Việc xác đònh độ sâu của các mặt không đơn giản

ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 8/15
R
R
a
a
y
y
c
c
a
a
s
s
t
t
i
i
n
n
g
g
• Từ view point phóng các tia đến mọi điểm trên view
plane.
• Xác đònh mặt gần nhất cắt các tia này.
• Một số lưu ý về Ray casting
♦ Có độ phức tạp O(plogn) với p là số pixel trên VP
♦ Đơn giản về mặt khái niệm nhưng không phổ dụng
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 9/15

Z
Z
-
-
B
B
u
u
f
f
f
f
e
e
r
r
• Xây dựng 2 buffer:
♦ Intensity Buffer: lưu màu các pixel (init bằng màu nền)
♦ Depth (“Z”) Buffer: lưu độ sâu (init bằng độ sâu max).
• “Vẽ” từng polygon:
♦ Nếu độ sâu của điểm trên polygon nhỏ hơn độ sâu tương
ứng đang lưu trong Z-Buffer thì cập nhật lại Z-Buffer và
Intensity Buffer.
• Các ưu điểm của Z-Buffer
♦ Thích hợp cài đặt trên phần cứng.
♦ Ta có thể scan-convert các polygon theo thứ tự bất kỳ.
♦ Mỗi lần ta chỉ phải xét một polygon
♦ Cho phép tổng hợp nhiều cảnh với nhau hoặc bổ sung các
đối tượng mới vào một cảnh phức tạp.
♦ Có thể áp dụng với các mặt cong, các mặt không có dạng

đa giác.
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 10/15
• Các nhược điểm của Z-Buffer
♦ Đòi hỏi bộ nhớ rất lớn
♦ Có thể mất chính xác khi chuẩn hoá trong qua trình tính
độ sâu.
♦ Không thực hiện được phép xử lý anti-alias
♦ Phải scan-convert tất cả các đối tượng.
L
L
a
a
ø
ø
m
m
t
t
h
h
e
e
á
á
n
n
a
a
ø

ø
o
o
đ
đ
e
e
å
å
t
t
í
í
n
n
h
h
t
t
o
o
a
a
ù
ù
n
n
Z
Z
-

-
B
B
u
u
f
f
f
f
e
e
r
r
h
h
i
i
e
e
ä
ä
u
u
q
q
u
u
a
a
û

û
• Lấy ý tưởng của phép tô màu polygon (theo thuật toán
scanline) khi tính giao điểm của scanline với các cạnh
của polygon.
• Ta có thể thực hiện tương tự để tính độ sâu cho từng
điểm trên polygon:
• Khi đã có z
a
và z
b
với mỗi cạnh, ta có thể tính z
p
tuần tự

×