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

5 292 2
Bài giảng đồ họa : KHỬ MẶT KHUẤT HIDDEN SURFACE REMOVAL part 2 doc

Đang tải... (xem toàn văn)

Thông tin tài liệu

ĐỒ 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ự . 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. 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. ĐỒ 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ừ

Ngày đăng: 23/07/2014, 21:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan