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

Bài giảng đồ họa : KHỬ MẶT KHUẤT HIDDEN SURFACE REMOVAL part 3 ppt

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 (231.46 KB, 5 trang )

ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 11/15
S
S
c
c
a
a
n
n
-
-
l
l
i
i
n
n
e
e
• Mở rộng tư tưởng của thuật toán tô màu scanline.
• Quét scanline dọc theo VP.
• Với mỗi scanline xác đònh các đoạn ứng với các mặt:
♦ Xác đònh các giao điểm của scanline với các đường biên.
♦ Sắp xếp các giao điểm theo thứ tự tăng dần của x.
♦ Với mỗi đoạn tô bằng 1 màu (của mặt gần nhất).
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 12/15
W
W
a


a
r
r
n
n
o
o
c
c
k
k


s
s
A
A
l
l
g
g
o
o
r
r
i
i
t
t
h

h
m
m
• Bắt đầu với vùng là toàn bộ viewport
• Tô một vùng nếu:
♦ Không có mặt nào giao với nó: màu nền.
♦ Chỉ có duy nhất 1 mặt giao với nó: đơn giản
♦ Có một mặt che khuất tất cả các mặt khác trong vùng.
• Ngược lại: chia nhỏ vùng làm 4, tiếp tục qui trình với
từng vùng con.
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 13/15
B
B
S
S
P
P
A
A
l
l
g
g
o
o
r
r
i
i

t
t
h
h
m
m
• BSP: Binary Space Partitioning
• Thuật toán cung cấp một qui trình chia nhỏ không gian
và xác đònh thứ tự vẽ các đối tượng.
• Dùng chiến lược chia để trò:
♦ Để hiển thò các polygon đúng, ta hiển thò các polygon ở
phía “xa” trước sau đó mới hiển thò các polygon ở phía
“gần”. (Gần là phía chứa View point)
♦ Để hiển thò đúng các polygon ở cùng một phía, ta chọn
một polygon bất kỳ làm chuẩn chia và xử lý đệ qui.
• Xét một ví dụ:
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 14/15
• Bắt đầu từ mặt số 3:
• Nếu bắt đầu từ mặt số 5 ta có kết quả khác:
ĐỒ HỌA MÁY TÍNH
Dương Anh Đức, Lê Đình Duy Khử mặt khuất 15/15
void BSP_displayTree(BSP_tree* tree)
{
if ( tree is not empty )
if ( viewer is in front of root ){
BSP_displayTree(tree->backChild);
displayPolygon(tree->root);
BSP_displayTree(tree->frontChild)
}

else {
BSP_displayTree(tree->frontChild);
/* ignore next line if back-face culling desired */
displayPolygon(tree->root);
BSP_displayTree(tree->backChild)
}
}
K
K
e
e
á
á
t
t
l
l
u
u
a
a
ä
ä
n
n
• Hidden surface algorithms
♦ Back-face detection
♦ Depth sort
♦ Ray casting
♦ Z-buffer

♦ Scan-line
♦ Area subdivision (Warnock’s)
♦ BSP
• Hardware
♦ Z-buffer
• Software
♦ Depth sort
♦ Scan-line

×