Bố cục của luận văn gồm Phần mở đầu, Phần kết luận, Tài liệu tham khảo và 3 chương nội dung, cụ thể: Chương 1: Tổng quan về Thực tại ảo và rút gọn biểu diễn bề mặt Trình bày tổng quan về
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Lương Quang Linh
NGHIÊN CỨU MỘT SỐ PHƯƠNG PHÁP RÚT GỌN
SỐ LƯỢNG ĐIỂM BIỂU DIỄN
Ngành: Công nghệ Thông tin
Mã số: 1.01.10
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC
Tiến sĩ Đỗ Năng Toàn
Hà Nội – 2007
Trang 2MỤC LỤC
Trang
LỜI CAM ĐOAN 1
LỜI CẢM ƠN 2
MỤC LỤC 3
MỞ ĐẦU 5
Chương 1: TỔNG QUAN VỀ THỰC TẠI ẢO VÀ RÚT GỌN BIỂU DIỄN BỀ MẶT 7
1.1 Tổng quan về thực tại ảo 7
1.1.1 “Thực tại ảo” là gì? 7
1.1.2 Sơ lược lịch sử phát triển 8
1.1.3 Các lĩnh vực ứng dụng 9
1.1.3.1 Kiến trúc và thiết kế thiết bị công nghệ 9
1.1.3.2 Giải trí 11
1.1.3.3 Giáo dục và Đào tạo 12
1.1.3.4 Y học 13
1.2 Mô hình hóa và biểu diễn bề mặt 15
1.2.1 Mô hình hoá trong thực tại ảo 15
1.2.2 Biểu diễn bề mặt 16
1.3 Rút gọn bề mặt trong biểu diễn bề mặt vật thể ba chiều 24
Chương 2: RÚT GỌN BIỂU DIỄN BỀ MẶT 28
2.1 Rút gọn số lượng điểm biểu diễn 28
2.1.1 Thuật toán đơn giản hóa Douglas-Peucker 29
2.1.2 Thuật toán Band Width 30
2.1.3 Thuật toán Angles 31
2.2 Thuật toán “độ đo sai số bậc hai QEM” (Quadric Error Metric) 33
2.2.1 Một số khái niệm và giả thiết ban đầu của thuật toán 34
2.2.2 Ý tưởng và các bước của thuật toán 41
2.2.3 Tập các cặp đỉnh sẽ được xem xét và loại bỏ 42
2.2.4 Hàm xác định giá 43
2.2.5 Kiểm tra tính toàn vẹn 49 2.2.6 Kết luận
Trang 32.3 Đơn giản hóa bề mặt kết hợp với kỹ thuật che phủ 53
2.3.1 Rút gọn số lượng bề mặt biểu diễn dựa vào kỹ thuật che phủ 53
2.3.2 Mô hình "Sao la" 57
Chương 3: ỨNG DỤNG 59
3.1 Nhận dạng các đối tượng hình học cơ sở 59
3.1.1 Xấp xỉ đa giác theo bất biến đồng dạng 60
3.1.2 Xấp xỉ đa giác theo bất biến aphin 63
3.2 Rút gọn kích thước đối tượng 3 chiều 64
3.2.1 Dữ liệu thực tại ảo và các bước trong xây dựng 64
3.2.2 Thực nghiệm 66
KẾT LUẬN 68
TÀI LIỆU THAM KHẢO 70
Trang 4MỞ ĐẦU
Sự phát triển của công nghệ thông tin đã đẩy nhanh sự phát triển nhiều lĩnh vực của đời sống xã hội Với sự phát triển của phần cứng về cả phương diện thu nhận và hiển thị đã mở ra nhiều hướng mới cho sự phát triển của phần mềm Trong số đó phải kể đến lĩnh vực thể hiện hình ảnh 3 chiều Trong lĩnh vực thể hiện hình ảnh 3 chiều có 2 phần chính là tạo mô hình bề mặt (Modelling) và tạo sự chuyển động cho mô hình (Animation) Việc tạo mô hình 3 chiều thường thông qua máy quét 3 chiều hoặc các phần mềm chuyên dụng Hai phần mềm chuyên dụng phổ biến hiện nay trên thế giới là Maya và 3Ds max Mỗi phần mềm có thế mạnh riêng, trong
đó 3Ds max được người sử dụng Việt Nam biết đến nhiều hơn thông qua lĩnh vực kiến trúc, xây dựng Nhưng một đặc điểm chung của các phần mềm này là chú trọng đưa ra kết quả dưới phim, ảnh, còn hình ảnh đưa ra dưới dạng Object phục vụ cho các hoạt động điều khiển trong môi trường sau đó thì thường rất nặng
Mặc dù, ngày nay, với sự phát triển nhanh và có hỗ trợ hữu hiệu của công nghệ phần cứng của máy tính nhưng cũng chưa thể đáp ứng một cách đầy đủ “không gian” cho việc xử lý hình ảnh Vấn đề đặt ra là cần giảm thiểu không gian lưu trữ đối tượng, để có thể tích hợp đối tượng vào những không gian lớn phục vụ cho việc điều khiển sau này
Có nhiều kỹ thuật nhằm giảm thiểu không gian lưu trữ thông qua các
kỹ thuật nén ảnh Một cách tiếp cận khác thường được dùng nhằm giảm thiểu không gian lưu trữ bằng cách bỏ bớt một số điểm hay mặt phẳng biểu diễn đối tượng nhưng vẫn đảm bảo được hình dáng của đối tượng
Trang 5Hiện nay với sự phát triển của phần cứng đã thúc đẩy sự phát triển của nhiều lĩnh vực khác, đặc biệt là xử lý ảnh và đồ hoạ 3 chiều Những kết quả này hiện nay ở Việt Nam chưa nhiều Xuất phát từ những lý do trên, dưới
sự gợi ý của thầy hướng dẫn, em đã chọn đề tài “Nghiên cứu một số phương pháp rút gọn số lượng điểm biểu diễn”
Bố cục của luận văn gồm Phần mở đầu, Phần kết luận, Tài liệu tham khảo và 3 chương nội dung, cụ thể:
Chương 1: Tổng quan về Thực tại ảo và rút gọn biểu diễn bề mặt
Trình bày tổng quan về thực tại ảo, các lĩnh vực ứng dụng cơ bản của thực tại ảo, các kỹ thuật biểu diễn bề mặt trong xây dựng mô hình và đặt ra nhiệm vụ của luận văn là nghiên cứu các kỹ thuật rút gọn biểu diễn bề mặt trong biểu diễn đối tượng 3 chiều
Chương 2: Các kỹ thuật rút gọn điểm và bề mặt biểu diễn đối tượng
Trình bày hai kỹ thuật rút gọn số lượng điểm biểu diễn đối với các mô hình biểu diễn đối tượng ba chiều bởi bề mặt đa giác
Chương 3: Ứng dụng
Trình bày ứng dụng của việc rút gọn số lượng điểm biểu diễn vào việc xấp xỉ đối tượng bởi các hình cơ sở và ứng dụng việc rút gọn số lượng mặt biểu diễn trong việc giảm thiểu không gian lưu trữ đối với đối tượng
ba chiều
Trang 6Thực tại ảo là công nghệ sử dụng các kỹ thuật mô hình hoá không gian ba chiều với sự hỗ trợ của các thiết bị đa phương tiện hiện đại để xây
dựng một thế giới mô phỏng bằng máy tính – môi trường ảo (virtual
environment) Trong thế giới ảo này, người sử dụng không còn được xem như người quan sát bên ngoài, mà đã thực sự trở thành một phần của hệ thống Một cách lý tưởng, người sử dụng có thể tự do chuyển động trong không gian ba chiều, tương tác với các vật thể ảo, quan sát và khảo cứu thế giới ảo ở những góc độ khác nhau về mặt không gian Ngược lại, môi trường ảo lại có những phản ứng tương ứng với mỗi hành động của người
sử dụng, tác động vào các giác quan như thị giác, thính giác, xúc giác của người sử dụng trong thời gian thực và tuân theo những quy tắc vật lý rất tự nhiên, làm anh ta có cảm giác như đang tồn tại trong một thế giới thực
Trang 71.1.2 Sơ lược lịch sử phát triển
Mặc dù Thực tại ảo được mô tả như một công nghệ mới mang tính cách mạng, nhưng ý tưởng về việc nhúng người sử dụng vào một môi trường nhân tạo không còn mới Thực tại ảo có thể được xem như một sự
mở rộng của những ý tưởng đã ra đời khá lâu như hệ thống mô phỏng bay (flight simulation), rạp chiếu phim màn ảnh rộng (như Cinerama hay IMAX) Sử dụng các hệ thống như vậy, người dùng được quan sát hình ảnh trong một màn hình có trường nhìn rộng lớn cho họ cảm giác như đang tồn tại trong trường không gian đó
Sự ra đời của các máy điện toán mini và bài báo khoa học của Ivan
Sutherland có tên “Màn hình tối tân” (Ultimate Display) vào năm 1965
được xem là hai bước đột phá lớn vào những năm 1960 cho công nghệ Thực tại ảo Trong bài báo của mình, Sutherland đã tiên đoán sự phát triển
của Thiết bị Hiển thị đội đầu (Head Mounted Display-HMD) đầu tiên, mà sau đó chính ông đã tạo ra một thiết bị như vậy, có tên là “Thanh kiếm của
Damocles” (The Sword of Damocles) Sutherland cũng nhận ra tiềm năng
của máy điện toán trong việc tạo lập hình ảnh cho hệ thống mô phỏng bay, trong khi những hình ảnh này trước đó được xây dựng bằng video camera Những ý tưởng này được hai nhà khoa học Mỹ ở NASA là Fisher và
McGreevy kết hợp lại trong một dự án có tên là “trạm làm việc ảo” (visual
workstation) vào năm 1984 Cũng từ đó NASA phát triển thiết bị Hiển thị
đội đầu có tính thương mại đầu tiên, được gọi là màn hình môi trường trực
quan (visual environment display - VIVED), thiết kế dựa trên mẫu hình
mặt nạ lặn với các màn hình quang học mà hình ảnh được cung cấp bởi hai thiết bị truyền hình cầm tay Sony Watchman Sự phát triển của thiết bị này
đã thành công ngoài dự đoán, bởi NASA đã sản xuất được một thiết bị
Trang 8HMD có giá chấp nhận được trên thị trường, và như vậy ngành công nghiệp Thực tại ảo đã ra đời
1.1.3 Các lĩnh vực ứng dụng
Mặc dù khái niệm về Thực tại ảo đã xuất hiện từ khá lâu, nhưng do nhiều lý do về mặt công nghệ (kéo theo chi phí cho nghiên cứu và phát triển), phải mất nhiều thời gian và nỗ lực để Thực tại ảo có được những thành tựu như ngày nay Hiện tại đây vẫn là lĩnh vực công nghệ nhiều tiềm năng xét về khía cạnh ứng dụng Ở đây, báo cáo cố gắng đưa ra những lĩnh vực ứng dụng chính có khuynh hướng phát triển mạnh mẽ nhất trong thời gian gần đây
1.1.3.1 Kiến trúc và thiết kế thiết bị công nghệ
Một trong những lĩnh vực ứng dụng tiêu biểu nhất của Thực tại ảo là thiết kế kiến trúc Khả năng mô hình hoá thế giới thực của công nghệ Thực tại ảo dường như đáp ứng một cách tự nhiên mục tiêu của ngành thiết kế kiến trúc: Đưa ra mô hình trực quan nhất có thể về hình ảnh công trình kiến trúc mong muốn trong tương lai
Hình 1.1: Ứng dụng thực tại ảo trong thiết kế kiến trúc
(Hình ảnh của hoạ sỹ Chris LeBlanc http://www.es.com/wg/wg_images.html)
Trang 9Việc xây dựng các mô hình không gian kiến trúc bằng hình ảnh lập thể với đầy đủ mô tả trực quan về các hình khối kiến trúc của một căn nhà, cách bố trí nội thất bên trong, thậm chí hoa văn cửa sổ hay màu sơn của tường, cùng với khả năng cho phép khách hàng tự do tham quan, khảo sát căn nhà của họ trong tương lai theo nhiều góc độ và vị trí, từ phòng này sang phòng khác thực sự đem lại hiệu quả trực quan mang tính cách mạng trong lĩnh vực mang nhiều đặc điểm nghệ thuật này
Tương tự như trong kiến trúc, với các ngành sản xuất thiết bị mà trong
đó công đoạn thiết kế đóng vai trò quan trọng như thiết kế động cơ, thiết kế
ô tô, tàu biển, hay thậm chí tàu vũ trụ, hình dạng và cách bố trí các chi tiết không chỉ đơn thuần mang tính thẩm mỹ, tính kỹ thuật mà đôi khi còn ảnh hưởng tới sức sống của thiết bị xét về khía cạnh thương mại Khả năng mô hình hoá bằng hình ảnh lập thể của công nghệ Thực tại ảo cho phép người thiết kế thể hiện được một cách trực quan nhất ý tưởng thiết kế của mình, đánh giá cơ bản về hiệu năng của thiết bị dựa trên những thử nghiệm mô phỏng trên thiết bị ảo, từ đó có những hiệu chỉnh cần thiết trước khi thiết bị thực sự được sản xuất Điều này rõ ràng góp phần không nhỏ trong thành
công của thiết bị công nghệ, giảm bớt những chi phí phát sinh
Hình 1.2: Ứng dụng công nghệ Thực tại ảo trong thiết kế thiết bị công nghệ
(Hình ảnh từ Silicon Graphics, Inc http://www.sgi.com/realitycenter/)
Trang 101.1.3.2 Giải trí
Thị trường giải trí cũng là một ứng dụng tiêu biểu khác của các môi trường Thực tại ảo Trên thực tế, đây là lĩnh vực ứng dụng lớn nhất xét theo khía cạnh lợi ích về tài chính Rất nhiều công ty đang sản xuất ra các trò chơi có sử dụng các nguyên lý Thực tại ảo Số lượng người bị cuốn hút theo các trò chơi như vậy, đặc biệt là giới trẻ, tăng theo cấp số nhân đánh dấu tiềm năng thương mại to lớn của công nghệ Thực tại ảo trong lĩnh vực này
Hình 1.3: Ứng dụng thực tại ảo trong lĩnh vực giải trí
(Hình ảnh từ Cybermind UK Ltd http://www.cybermind.co.uk/ )
Hơn thế, ngành công nghiệp trò chơi điện tử có những ảnh hưởng to lớn tới lĩnh vực Thực tại ảo Nó tạo ra động lực cần thiết để thúc đẩy sự
phát triển của rất nhiều phần cứng Thực tại ảo, chẳng hạn như card tăng
tốc đồ hoạ (graphic accelerator cards) Nếu như chúng ta trở lại khoảng 10
năm về trước, thật khó có thể tìm thấy một card tăng tốc đồ hoạ có đủ năng lực tính toán cần thiết cho phép tạo ra các ứng dụng Thực tại ảo thời gian thực Tại thời điểm đó, những chiếc card như vậy trị giá hàng ngàn đô-la và chỉ đủ khả năng sinh 100.000 đa giác/giây ở mức độ phân giải trung bình
Những thiết bị phần cứng khác như Găng tay dữ liệu (DataGloves) và Thiết
Trang 11bị hiển thị đội đầu (Head Mounted Displays-HMD) cũng chịu ảnh hưởng
phần nào của công nghiệp giải trí Tóm lại, chúng ta có thể nói rằng các ứng dụng Thực tại ảo trong giải trí đã và đang đóng một vai trò quan trọng trong việc định hướng đi cho công nghiệp Thực tại ảo
1.1.3.3 Giáo dục và Đào tạo
Phát triển trên nền công nghệ và kỹ thuật cao, Thực tại ảo tích hợp những đặc tính làm cho bản thân nó có những tiềm năng vượt trội so với các công nghệ đa phương tiện truyền thống khác, cho người sử dụng cảm nhận sự hiện diện của mình trong môi trường do máy tính tạo ra bằng khả năng tương tác, tự trị (autonomy) của người dùng trong môi trường ảo, cũng như bằng những phản hồi tức thời, trực quan từ phía môi trường ảo tới các giác quan của người sử dụng Hơn thế nữa, công nghệ Thực tại ảo cho phép mô phỏng những môi trường nguy hiểm hay tốn kém như buồng lái máy bay, phòng thí nghiệm hoá chất v.v
Hình 1.4: Mô hình huấn luyện bay sử dụng công nghệ Thực tại ảo
(Hình ảnh từ hãng Boeing http://www.vr-atlantis.com/vr_systems_guide/65.html)
Tất cả những đặc tính này khiến công nghệ Thực tại ảo trở nên rất phù hợp cho các ứng dụng có tính chất giáo dục hay đào tạo Trong đó, những
Trang 12mô hình trình diễn lập thể đóng vai trò quan trọng Các vật thể trong thế giới ảo được biểu diễn chính xác hơn nhiều so với các đối tượng phẳng (hình ảnh hai chiều) do được bổ sung thêm chiều sâu Kết quả là các trình diễn minh hoạ hay những thí nghiệm cũng được mô phỏng chính xác hơn
do có thể quan sát từ nhiều góc độ khác nhau về mặt không gian, điều mà thế giới phẳng hai chiều không làm được
Tính chất trực quan của bài giảng được nâng cao một bước làm tăng
sự hứng thú trong học tập cũng như khả năng ghi nhớ các khái niệm quan trọng trong bài giảng Xét về mặt này, khả năng tương tác với môi trường
ảo là một khía cạnh đáng lưu ý Nếu thiếu đi khả năng tương tác (hai chiều) giữa môi trường ảo và người tham dự, Thực tại ảo không gì khác hơn là một giao diện lập thể ấn tượng nhưng không có sự sống Trong các phòng thí nghiệm hay huấn luyện ảo, thực hiện các thao tác trên các đối tượng trong môi trường ảo, nhận được những phản hồi kịp thời và có nghĩa từ các vật thể và môi trường là một trong những yếu tố tiên quyết khiến cho học viên có cảm nhận đang được trải nghiệm trong những tình huống thực Từ
đó, học viên nắm bắt được nhanh chóng và có ý thức hơn với những tính huống được học
1.1.3.4 Y học
Y học là một trong những lĩnh vực ứng dụng tiềm năng trong công nghệ Thực tại ảo và là một trong số ít lĩnh vực ứng dụng thuộc ngành khoa học của Thực tại ảo Cho đến nay, lĩnh vực nổi bật trong y học áp dụng
thành công công nghệ Thực tại ảo là giả lập giải phẫu (Surgical Simulation)
Trên cơ sở các kỹ thuật đồ hoạ máy tính và Thực tại ảo, hệ thống đào tạo y học này bao gồm hai bộ phận cơ bản: Khối tương tác ba chiều là mô hình sinh thể ảo cho phép người sử dụng thực hiện các thao tác giải phẫu thông qua các dụng cụ giải phẫu ảo; Khối giao diện người dùng hai chiều
Trang 13cung cấp những thông tin phản hồi trực quan từ mô hình trong quá trình giải phẫu cũng như những thông tin hướng dẫn trong phiên đào tạo
Hình 1 5: Phẫu thuật ảo – Phương pháp
đào tạo phẫu thuật mới dùng công nghệ
Thực tại ảo
(Hình ảnh từ Virtualvision Inc., Artma
Biomedical Inc http://www.virtualvision.com/ ;
http://www.artma.com/)
Phương pháp đào tạo có tính tương tác cao này mang nhiều ưu điểm
so với các phương pháp truyền thống như thực hành trên mô hình plastic hay trên bệnh nhân thực Thứ nhất, khác với phương pháp dùng mô hình plastic, sinh thể giải phẫu ảo có khả năng cung cấp những thông tin phản hồi sinh học một cách tự nhiên như một sinh thể sống thực, dưới tác động giải phẫu của bác sỹ mổ, chẳng hạn như sự thay đổi về nhịp tim, huyết áp,… Điều này tạo cho học viên có cảm giác đang trải qua một ca mổ trong một tình huống thực Thứ hai, khác với thực hành trên bệnh nhân thật, rõ ràng sai lầm của học viên trong quá trình thực tập không phải trả giá bằng những thương tổn thực trên cơ thể người bệnh Điều này cũng làm giảm áp lực lên học viên khi thực hiện phẫu thuật ảo Từ đó, giúp họ tự tin và chủ động hơn trong học tập
Phương pháp này không chỉ cho phép các học viên y khoa thực hành các ca phẫu thuật trong tình huống thực, đem lại cho họ những kinh nghiệm cần thiết trước khi thực hiện phẫu thuật trên cơ thể con người, đây còn là cơ hội để các bác sỹ mổ nâng cao kỹ thuật giải phẫu và kỹ năng phối hợp làm
Trang 14việc theo nhóm trong phòng mổ Điều này đặc biệt quan trọng trong các tình huống phẫu thuật nguy hiểm và nhạy cảm
Các kỹ thuật Thực tại ảo cũng được sử dụng để hỗ trợ bác sỹ mổ trong giai đoạn lập kế hoạch tiền phẫu thuật (preoperative planning) Trước khi thực hiện quy trình giải phẫu trên bệnh nhân thực, người bác sỹ có thể thử nghiệm các phương pháp tiến hành phẫu thuật khác nhau trên mô hình ảo của người bệnh Mô hình này mô phỏng đầy đủ các đặc điểm bệnh lý của người bệnh thật Theo cách này, người bác sỹ sẽ lựa chọn ra được cách thức an toàn nhất, hiệu quả nhất và tốn ít thời gian nhất trong phòng phẫu thuật, hạn chế những biến cố trong quá trình giải phẫu
1.2 Mô hình hóa và biểu diễn bề mặt
1.2.1 Mô hình hóa trong thực tại ảo
Hai khâu quan trọng trong việc xây dựng một hệ thống thực tại ảo (virtual reality system) là xây dựng mô hình (modelling) và điều khiển mô hình (rendering) Xây dựng mô hình là một khâu quan trọng trong các hệ thống thực tại ảo Mô hình được xây dựng không những phải đảm bảo về chất lượng mà còn phải đảm bảo về yêu cầu giảm thiểu không gian bộ nhớ, nhằm phục vụ cho các yêu cầu điều khiển sau đó
Việc tạo mô hình 3 chiều người ta phải nhờ vào những thiết bị và những phần mềm chuyên dụng Hình 1.6 là sơ đồ tổng quát cho một quy trình hình thành dữ liệu thực tại ảo
Hình 1.6: Sơ đồ tổng quát của một quy trình hình thành dữ liệu thực tại ảo
VRML, OBJ v.v…
hình
Đơn giản hóa
Trang 151.2.2 Biểu diễn bề mặt
Để có thể mô tả được đối tượng khảo sát bằng thực tại ảo chúng ta cần phải biểu diễn được các đường cong và bề mặt cho các đối tượng đang tồn tại trong thế giới thực dưới dạng các mô hình các đối tượng đang tồn tại
(modeling existing objects), chẳng hạn như ôtô, bề mặt, quả núi, v.v hoặc trong mô hình tạm thời (modeling from scratch) cho các đối tượng vật lý đã không tồn tại trước đó được biểu diễn ở dạng mô hình (Foley et al , 1994-
1996)
Trong trường hợp thứ nhất, nếu không thể mô tả hình dạng của đối tượng bằng toán học, ta có thể sử dụng mô hình tọa độ của tất cả các điểm thuộc đối tượng Cách tiếp cận này khó thực hiện đối với máy tính vì khả năng lưu trữ có hạn Người ta thường xấp xỉ đối tượng bằng các phần mặt phẳng, mặt hình cầu hoặc các bề mặt khác để có thể dễ dàng mô tả bằng toán học Tuy nhiên, cần phải làm sao cho các điểm trong mô mình phải gần với vị trí các điểm tương ứng của đối tượng thực
Trong trường hợp thứ hai, khi không có sự tồn tại trước đó của đối tượng dưới dạng mô hình, người sử dụng tạo ra đối tượng trong mô hình xử
lý Để tạo ra đối tượng, người sử dụng phải chỉnh sửa đối tượng, mô tả nó dưới dạng toán học hoặc đề ra một mô tả xấp xỉ để đưa vào một chương trình ứng dụng nào đó Trong CAD, việc biểu diễn bằng máy tính được sử dụng cuối cùng để thể hiện về mặt vật lý của đối tượng đã được mô tả dưới dạng lý thuyết
Mô hình bề mặt (Surface modeling) là một lĩnh vực rộng lớn, thu hút
nhiều sự quan tâm của các nhà khoa học, hiện có ba cách biểu diễn bề mặt
ba chiều phổ biến đó là: Bề mặt lưới đa giác (polygon mesh surface), bề mặt Tham số (parametric surface) và bề mặt Bậc hai (quadric surface)
Trang 16Như vậy, ta thấy rằng, bề mặt đóng vai trò quan trọng trong các mô hình hình học Chương này nghiên cứu một vài bề mặt quan trọng sử dụng
để biểu diễn đối tượng trong thế giới thực bằng việc tiếp cận biểu diễn bao
đóng (boulldary representationl (B-reps)), mô tả một đối tượng 3D (Dimension _chiều) như là tập hợp của các bề mặt tách đối tượng từ
môi trường
Một bề mặt đa giác (polygon surface hoặc polygon mesh) là tập hợp
các cạnh, đỉnh và sự kết nối các đa giác sao cho mỗi cạnh là cạnh chung của nhiều nhất hai đa giác Một cạnh nối hai đỉnh, một đa giác được tạo bởi một chuỗi khép kín của các cạnh Một cạnh có thể là cạnh chung của hai đa giác, một đỉnh là đỉnh chung của ít nhất hai cạnh, tất cả các cạnh đều là một phần của một vài đa giác Một lưới đa giác có thể được biểu diễn theo một vài cách khác nhau, mỗi cách đều có ưu và nhược điểm riêng Nhiệm vụ của người lập trình là chọn ra cách biểu diễn tốt nhất trong trường hợp cụ thể Một vài cách biểu diễn có thể được sử dụng trong một chương trình ứng dụng: Một cách cho lưu trữ ngoài, một cách cho việc sử dụng bên trong và một cách khác cho người sử dụng tương tác tạo ra lưới
Hai tiêu thức cơ bản: Không gian và thời gian, được sử dụng để đánh giá các cách biểu diễn khác nhau Các thao tác đặc trưng trên một lưới đa giác là tìm ra tất cả các cạnh chung gắn với một đỉnh, xác định các đa giác
có chung cạnh hoặc chung đỉnh, xác định các đỉnh nối cho một cạnh, xác định các cạnh của một đa giác, biểu diễn lưới, nhận dạng các lỗi khi biểu
diễn (chẳng hạn thiếu một cạnh, đỉnh, hoặc đa giác) Nói chung mối quan
hệ giữa các đa giác, đỉnh, và các cạnh càng được biểu diễn rõ ràng thì các thao tác sẽ được thực hiện nhanh hơn nhưng lại đòi hỏi nhiều không gian hơn
Trang 17a) Biểu diễn lưới đa giác
Ba cách biểu diễn lưới đa giác được xét ở đây là: Biểu diễn theo hàm
hiện, con trỏ tới danh sách các đỉnh và con trỏ tới danh sách các cạnh
(Foley et al 1994)
Trong cách biểu diễn theo hàm hiện (explicit representation), mỗi một
đa giác được biểu diễn bởi danh sách tọa độ của các đỉnh:
P = ((x1, y1, z1),(x2, y2, z2), , (xn, yn ,zn))
Các đỉnh được lưu theo thứ tự mà ta sẽ gặp chúng khi đi một vòng
quanh đa giác Có các cạnh giữa các đỉnh trong danh sách và giữa đỉnh đầu
và cuối Với một đa giác đơn, cách biểu diễn này hiệu quả về không gian; với một lưới đa giác sẽ tốn nhiều không gian hơn vì toạ độ của các đỉnh chung được liệt kê hai lần
Vấn đề là không có cách biểu diễn theo hàm hiện cho các cạnh chung
và các đỉnh chung Chẳng hạn, để di chuyển một đỉnh mà tất cả các cạnh nối với đỉnh đó đều phải biến đổi theo, ta phải xác định tất cả các đa giác
có chung đỉnh đó Việc tìm kiếm này đòi hỏi phải so sánh ba tọa độ của một đỉnh một đa giác với các đa giác khác Cách làm hiệu quả nhất là sắp
xếp N cặp toạ độ, nhưng quá trình này tốn Nlog2N, và có thể nguy hiểm vì một đỉnh có thể sẽ có toạ độ khác đi do quá trình làm tròn Đo đó sẽ không thể thực hiện chính xác được
Trong phương pháp này, lưới đa giác được biểu diễn dưới dạng tô màu đa giác hoặc vẽ đường nét bên ngoài cần phải được chuyển đổi các đỉnh và cắt các cạnh của mỗi đa giác Mỗi cạnh chung sẽ được vẽ hai lần
Đó chính là nguyên nhân vẽ lại trong bút vẽ, thiết bị ghi phim, và các hệ
hiển thị vector và raster
Trang 18Đa giác được xác định theo con trỏ tới danh sách các đỉnh (pointers to
a vertex list), mỗi đỉnh của lưới đa giác được lưu chỉ một lần trong danh
sách các đỉnh V = ((x1, y1 z1),(x2, y2 z2), , (xn, yn zn))
Hình 1.7: Lưới đa giác xác định bằng các chỉ số trong danh sách các đỉnh
Một đa giác được xác định bởi danh sách các chỉ số (hoặc các con trỏ)
tới danh sách các đỉnh Chẳng hạn, một đa giác có các đỉnh là 3, 5, 7 và 10 thì danh sách các đỉnh được biểu diễn là P = (3, 5, 7, 10)
Một ví dụ của cách biểu diễn này được chỉ ra trong hình 1.7 có một vài ưu điểm hơn so với cách biểu diễn đa giác theo hàm hiện Mỗi một đỉnh chỉ được lưu một lần, như vậy tiết kiệm được không gian Hơn nữa, tọa độ của các đỉnh có thể được thay đổi một cách dễ dàng Tuy nhiên, vẫn khó khăn để xác định các đa giác có chung cạnh; các đa giác có chung cạnh vẫn được vẽ hai lần cho cạnh chung đó Ta có thể giải quyết các vấn đề này bằng cách biểu diễn các cạnh theo hàm hiện, như trong phương pháp sau : Khi một đa giác được xác định bởi con trỏ tới danh sách các cạnh
(pointers to all edge list), ta có danh sách các cạnh V Trong phương pháp
này, biểu diễn đa giác theo danh sách các con trỏ nhưng không phải trỏ tới danh sách các đỉnh mà là trỏ tới danh sách các cạnh, mỗi cạnh đúng một lần Mỗi một cạnh trong danh sách các cạnh trỏ tới hai đỉnh trong danh sách các đỉnh để xác định một cạnh, và một hoặc hai đa giác mà cạnh đó thuộc về
Trang 19Như vậy, mô tả đa giác dưới dạng P = (El , , En) và một cạnh được
mô tả: E = (V l ,V 2 ,P 1 ,P 2) Khi một cạnh chỉ thuộc vào một đa giác, P1 hoặc
P2 sẽ là rỗng Hình 1.8 cho ta ví dụ về cách biểu diễn này
Hình 1.8: Lưới đa giác xác định bởi danh sách các cạnh cho mỗi đa giác
(λ biểu diễn giá trị rỗng)
Khi biểu diễn đa giác bởi các cạnh Thay bằng cách biểu diễn tất cả các đa giác thì tránh được các phép cắt, chuyển đổi và chuyển đổi phân hình Việc tô màu đa giác cũng được thực hiện dễ dàng Trong một vài trường hợp Khi mô tả cấu trúc của một đối tượng dạng tổ ong 3D, một số cạnh sẽ là cạnh chung của hai đa giác Trong trường hợp này, khi mô tả
một cạnh có thể mở rộng ra bao gồm một số đa giác: E = (Vl , V2 ,P1 ,P2 ,
Trang 20Khi biểu diễn dữ liệu cho bề mặt lưới đa giác hoặc cho một vật thể ba
chiều nói chung trong máy tính, nên nhập dữ liệu thành một file riêng Điều
này rất tiện lợi khi ta muốn thay đổi vật thể thì chỉ cần thay đổi dữ liệu ở
file riêng này Ngoài ra, cách tổ chức dữ liệu thành file riêng này còn giảm
được bộ nhớ cho chương trình và thực hiện rất tốt với cả vật thể phức tạp
Trong CAD, các fìle này đã có định dạng sẵn
b) Phương trình mặt phẳng
Khi làm việc với nhiều đa giác hoặc lưới đa giác, ta thường cần phải biết tới phương trình của mặt phẳng chứa đa giác đó Trong một vài trường hợp, các phương trình này được biết theo hàm ẩn qua phương pháp xác định đa giác Nếu không biết được phương trình, ta có thể sử dụng toạ độ của ba đỉnh để xác định mặt phẳng
*) Phương trình hàm ẩn
Phương trình mặt phẳng có thể được biểu diễn theo dạng sau :
Trong đó (x,y,z) xác định một điểm tuỳ ý trong mặt phẳng, các hệ số
A, B, C và D là các hằng số mô tả đặc điểm không gian của mặt phẳng
Cho ba điểm không thẳng hàng Pl , P2 , P3 , trong mặt phẳng ta có thể xác định các giá trị A, B, C và D bằng cách giải hệ phương trình tuyến tính sau:
A i
Trang 21Để xác định dấu của một phần mặt phẳng, người ta thường chọn các
điểm đặc biệt (thường là gốc = (0,0,0) nếu nó không nằm trong mặt phẳng)
và thay thế toạ độ vào F(x,y,z) Chẳng hạn, mặt phẳng 2x-3y+5z+7 = 0 chia không gian 3D thành hai phần Phần mặt phẳng chứa điểm gốc tọa độ
O(0,0,0) sẽ chứa tất cả các điểm (x,y,z) có F(x,y,z) > 0
Hướng của mặt phẳng có thể được mô tả bởi pháp tuyến của nó Ta tính được bằng tích có hướng của các cặp vector P1P2 và PlP3 (hoặc P 2 P 3 và
P 2 P 1 , v.v )
Vector pháp tuyến này có ba thành phần A, B, C xác định bởi phương
trình (1.3), nếu tích vector này là 0, ba điểm này thẳng hàng và không xác
định được mặt phẳng Nếu có thể được, ta dùng đỉnh khác để thay thế
Cho một tích các vector khác 0, ta có thể xác định D bằng cách thay
thế pháp tuyến [A, B, C] và một trong ba điểm vào phương trình (1.l)
Khi đã xác định được phương trình của mặt phẳng bằng cách sử dụng toạ độ của tất cả các đỉnh, ta có thể đánh giá sự không đồng phẳng của đa
(1.3)
Trang 22giác bằng cách tính các khoảng cách từ mặt phẳng tới mỗi đỉnh Khoảng
cách d tới đỉnh có toạ độ (x,y,z) là :
Khoảng cách này có thể dương hoặc âm, tuỳ thuộc vào vị trí của điểm
đó đối vị trí mặt phẳng Nếu đỉnh ở trên mặt phẳng thì d = 0 Tất nhiên, nếu
chỉ để xác định xem điểm đó nằm ở phía bên nào đối với mặt phẳng, ta chỉ
cần xét dấu của d Ta thấy, mẫu số trong (1.4) là không có ý nghĩa về dấu
của nó Như vậy, chúng ta chỉ phải quan tâm đến biểu thức tử số trong phương trình (1.4)
Ta cũng thấy rằng, phương trình của mặt phẳng là không duy nhất; khi
nhân thêm với hằng số k ≠ 0 sẽ làm thay đổi phương trình, nhưng không làm
thay đổi mặt phẳng Tốt nhất là nên lưu trữ các hệ số của mặt phẳng với pháp tuyến của nó; chẳng hạn có thể lưu nghịch đảo của độ dài của vector pháp tuyến
Khi đó, khoảng cách được tính dễ dàng từ phương trình (1.4)
*) Xác định điểm trên mặt phẳng
Giả thiết rằng mặt phẳng được xác định bởi ba điểm không thẳng hàng
Pl, P2 , và P3 Một điểm P(x,y,z) nằm trên mặt phẳng, khi đó bộ ba vector
P1 P, vector P1P2 và vector P1P3 phải là phụ thuộc tuyến tính Nói một cách
khác, tồn tại hai số thực u và v sao cho:
Trang 23Như vậy :
trong đó u và v là hai số thực
1.3 Rút gọn bề mặt trong biểu diễn bề mặt vật thể ba chiều
Mục tiêu của thực tại ảo là làm thế nào có thể biểu diễn được các đối tượng vật thể trong không gian ba chiều qua mô hình biểu diễn Ở trường hợp không thể mô tả đối tượng bằng toán học, người ta sử dụng phương pháp mô hình liệt kê các tọa độ của tất cả các điểm thuộc vật thể Muốn thực hiện được điều này, máy tính cần phải có khả năng xử lý và lưu trữ dữ liệu thật tốt, điều này làm giá thành máy tính trở nên đắt tiền, và như vậy cũng dẫn đến việc khó phổ cập các ứng dụng đồ họa hơn
Trong trường hợp có thể biểu diễn các vật thể trong không gian ba chiều bằng các mô hình toán học, người ta cũng tìm cách làm sao cho việc
mô tả mô hình càng đơn giản càng tốt ở mức thị giác của con người chấp nhận được và như vậy, việc lưu trữ, xử lý một mô hình đối tượng vật thể trong thực tại ảo sẽ không có nhu cầu cao lắm về tốc độ của bộ vi xử lý và
bộ nhớ RAM; Điều này cũng có nghĩa là giá thành máy tính sẽ rẻ hơn, và như vậy cũng sẽ dẫn đến dễ dàng hơn trong việc phổ cập các ứng dụng thực tại ảo
(1.7)
(1.8)
Trang 24Người ta thường biểu diễn các vật thể một cách gần đúng bằng các đa diện, đây là một phương pháp rất phổ biến trong đồ hoạ máy tính Với cách biểu diễn này, chúng ta có thể lưu trữ một cách thuận tiện và kết xuất
nhanh chóng các hình ảnh mô phỏng vật thể theo yêu cầu
Trong thực tế, phương pháp này đã được đưa vào hầu hết các phần
mềm thiết kế đồ hoạ ba chiều, các thư viện lập trình và là tác nhân phát
triển cho các trò chơi ba chiều (3D game engine) Ngoài ra, hầu hết những
bộ tăng tốc đồ hoạ (graphics accelerator) hiện nay đã hỗ trợ phương pháp
này ngay ở mức phần cứng
Vấn đề ở đây là, để thể hiện được một vật thể bất kỳ trong không gian
ba chiều với một chất lượng như thật thì mô hình biểu diễn thường đòi hỏi
số lượng mặt rất lớn, đơn giản như thể hiện một mặt cầu với độ mịn cao
phải cần tới hàng ngàn mặt Theo một khảo sát cho thấy, một máy vi tính
trung bình hiện nay có thể tính toán và thể hiện khoảng 15 triệu mặt trong một giây; ở tốc độ video hiện tại là 30 hình/s (NTSC) chúng ta sẽ bị giới
hạn khoảng 500.000 mặt cho mọi khuôn hình Với tốc độ xử lý của máy vi
tính cá nhân (PC) như vậy, chúng ta thấy rằng, còn rất nhiều hạn chế đối với việc phổ cập các ứng dụng thực tại ảo trong không gian ba chiều hiện nay
a) - Quan sát vật thể ở gần- mô hình biểu diễn ~ 6000 mặt
b) - Quan sát vật thể ở xa
- mô hình biểu diễn ~ 100 mặt
Trang 25Các thuật toán "giảm thiểu đa diện" biểu diễn một vật thể trong không
gian ba chiều hiện nay là không nhiều đối với đa số các ứng dụng thực tại
ảo Trong thực tế, không phải lúc nào chúng ta cũng cần biểu diễn một vật thể trong không gian ba chiều với chất lượng như thật Hơn nữa, mức độ chất lượng hình ảnh của cùng một vật thể khi hiển thị cũng có thể thay đổi
theo cách nhìn (view) Ví dụ, khi quan sát cận cảnh một vật thể, chúng ta cần số lượng mặt nhiều hơn (khoảng 10.000 mặt) để việc mô hình hoá có
thể đạt đến một chất lượng như thật, tuy nhiên, khi khoảng cách tăng lên, vật thể càng nhỏ đi đối với mắt người quan sát thì số lượng mặt biểu diễn
có thể giảm đi mà vẫn đảm bảo cho người quan sát vẫn có thể hình dung ra được vật thể
Khi khoảng cách quan sát rất xa, vật thể thực chất chỉ được biểu diễn bởi một vài điểm ảnh trong khung hình, khi đó thậm chí chỉ cần rất ít mặt
(khoảng 100 mặt) chúng ta cũng đủ để biểu diễn vật thể đó trong không
gian ba chiều Hình 1.10 ở trên minh họa cho điều này
Như vậy trong các ứng dụng đồ hoạ ba chiều nảy sinh một vấn đề là nghiên cứu một lớp các thuật toán nhằm giảm bớt số mặt của một đa diện biểu diễn vật thể sao cho vẫn giữ lại được một cách tương đối hình dạng ban đầu của vật thể đó Tùy theo cách phân loại, các tiêu chí phân loại có thể kể tới là:
- Dựa trên ứng dụng: Một số thuật toán giới hạn các đối tượng vật
thể của mình, ở một số dạng nhất định tuỳ theo ứng dụng của nó Ví dụ có một loạt thuật toán chỉ nhằm giảm thiểu mặt của địa hình được dùng trong
các ứng dụng GIS hay các bài toán mô phỏng địa hình Một số khác được
dành cho các ứng dụng tổng quát nên các ràng buộc vào dữ liệu đầu vào
ít hơn
Trang 26- Dựa trên các ràng buộc ban đầu: Có những thuật toán chú trọng
tới việc giữ lại hình dạng vật thể (topology preserving algorithms) Tuy
nhiên, cũng có những thuật toán chấp nhận mất mát bớt đi một phần thông tin để có thể đạt được tốc độ xử lý cao
- Dựa trên phương pháp đánh giá sai số: Một trong những điều
quan trọng nhất của các thuật toán “giảm thiểu đa diện” là cách thức đánh
giá sai số của vật thể mới tạo ra so với vật thể ban đầu, qua đó xác định phương án giảm thiểu nào là tốt, phương án nào là kém Sai số này trong các phần dưới đây chúng ta có thể gọi bằng nhiều cách cho phù hợp với ngữ cảnh từng thuật toán, ví dụ như độ lệch, khoảng cách, độ xấp xỉ, hàm
giá v.v Tuy nhiên, tất cả đều phải có chung một cơ sở Các phương pháp
đánh giá sai số có thể dựa trên các độ đo bậc hai, phương pháp bình
phương tối thiểu, khoảng cách Ơclit (Euclide) trong không gian ba chiều
v.v
Trang 27Chương 2:
RÚT GỌN BIỂU DIỄN BỀ MẶT
2.1 Rút gọn số lượng điểm biểu diễn
Trong thực tế các đường cong số hoá thu được sau các quá trình véctơ hoá hay số hoá bằng bàn số hoá chứa rất nhiều điểm Vấn đề đặt ra là làm thế nào có thể giảm bớt số lượng điểm mà đường cong mới nhận được vẫn gần giống với đường cong ban đầu
Bài toán: Cho đường cong trong không gian hai chiều được biểu diễn bởi dãy các toạ độ (x 1 ,y 1 ), (x 2 ,y 2 ), , (x n ,y n ) Cần bỏ bớt đi một số điểm sao cho đường cong mới nhận được (x i1 ,y i1 ), (x i2 ,y i2 ), , (x im ,y im ) gần giống đường cong ban đầu, nhưng vẫn thoả mãn các đặc trưng của đường cong
Dưới đây là bài toán thể hiện dưới dạng ngôn ngữ đặc tả RAISE [4] Điểm gồm cặp số thực và hàm d(p,q) được dùng để chỉ khoảng cách Euclid giữa hai điểm p và q
Trang 28scheme POLYLINE= extend POINT with
class type Polyline={|pl:Point-list:-len pl>=2|} end
Có thể đặc tả hàm đơn giản hoá đường cong để được đường cong có
số điểm nhỏ hơn đường cong ban đầu, tức là đỉnh của đường cong mới nằm trên đường cong cũ
Đơn giản hoá đường cong
smpl:Polyline->Polyline
smpl(pl) as pl' post len pl' <=len pl /\ elems pl' <<= elems pl
2.1.1 Thuật toán đơn giản hóa Douglas-Peucker
Ý tưởng cơ bản của thuật toán Douglas-Peucker [2,5,6] là xét xem khoảng cách lớn nhất từ đường cong tới đoạn thẳng nối hai đầu mút đường cong (Hình 2.1) có lớn hơn ngưỡng không Nếu điều này đúng thì điểm xa nhất được giữ lại làm điểm chia đường cong và thuật toán được thực hiện tương tự với hai đường cong vừa tìm được Trong trường hợp ngược lại, kết quả của thuật toán đơn giản hoá là hai điểm đầu mút của đường cong
Hình 2.1: Đơn giản hóa đường cong theo thuật toán Douglas-Peucker
Thuật toán Douglas-Peucker:
Bước 1: Chọn ngưỡng
Bước 2: Tìm khoảng cách lớn nhất từ đường cong tới đoạn thẳng nối
hai đầu đoạn đường cong h
Bước 3: Nếu h thì dừng
Trang 29Bước 4: Nếu h > thì giữ lại điểm đạt cực đại này và quay trở lại
bước 1
*) Nhận xét: Thuật toán này tỏ ra thuận lợi đối với các đường cong thu
nhận được mà gốc là các đoạn thẳng, phù hợp với việc đơn giản hoá trong quá trình véctơ các bản vẽ kỹ thuật, sơ đồ thiết kế mạch in v.v
2.1.2 Thuật toán Band Width
Trong thuật toán Band Width [2,5,6], ta hình dung có một dải băng di chuyển từ đầu mút đường cong dọc theo đường cong sao cho đường cong nằm trong di băng đó cho đến khi có điểm thuộc đường cong chạm vào biên của dải băng, điểm này sẽ được giữ lại Quá trình này được thực hiện với phần còn lại của đường cong bắt đầu từ điểm vừa tìm được cho đến khi hết đường cong Cụ thể như sau:
Hình 2.2: Đơn giản hóa đường cong theo thuật toán BandWidth
Bắt đầu bằng việc xác định điểm đầu tiên trên đường cong và coi đó như là một điểm chốt (P1) Điểm thứ ba (P3) được coi là điểm động Điểm giữa điểm chốt và điểm động (P2) là điểm trung gian Ban đầu khoảng cách
từ điểm trung gian đến đoạn thẳng nối điểm chốt và điểm động được tính toán và kiếm tra Nếu khoảng cách tính được này nhỏ hơn một ngưỡng
cho trước thì điểm trung gian có thể bỏ đi, tiến trình tiếp tục với điểm chốt
là điểm chốt cũ, điểm trung gian là điểm động cũ và điểm động là điểm kế tiếp sau điểm động cũ Trong trường hợp ngược lại, khoảng cách tính được lớn hơn ngưỡng cho trước thì điểm trung gian sẽ được giữ lại, tiến trình
Trang 30tiếp tục với điểm chốt là điển trung gian, điểm trung gian là điểm động cũ
và điểm động là điểm kế tiếp sau điểm động cũ Tiến trình được lặp cho đến hết đường cong (Hình 2.2 minh họa thuật toán Band-Width)
Thuật toán Band-Width:
Bước 1: Xác định điểm đầu tiên trên đường cong và coi đó như là
một điểm chốt (P1) Điểm thứ ba (P3) được coi là điểm động Điểm giữa điểm chốt và điểm động (P2) là điểm trung gian
Bước 2: Tính khoảng cách từ điểm trung gian đến đoạn thẳng nối hai
điểm chốt và điểm động
Bước 3: Kiểm tra khoảng cách tìm được nếu nhỏ hơn một ngưỡng
cho trước thì điểm trung gian có thể bỏ đi Trong trường hợp ngược lại điểm chốt chuyển đến điểm trung gian
Bước 4: Chu trình được lặp lại thì điểm trung gian được chuyển đến
điểm động và điểm kế tiếp sau điểm động được chỉ định làm điểm động mới
*) Nhận xét: Thuật toán này tăng tốc độ trong trường hợp đường ống chứa
nhiều điểm, điều đó có nghĩa là độ lệch giữa các điểm trong đường thẳng là nhỏ, hay độ dày nét của đường được véctơ hoá là mảnh
2.1.3 Thuật toán Angles
Thuật toán Angles [2,5,6] tựa như thuật toán Band Width nhưng thay
vì tính khoảng cách thì ta tính các góc Nếu góc tại đỉnh được tạo bởi hai cạnh mà lớn hơn ngưỡng cho trước thì đỉnh đó bị loại bỏ
Trang 31Để mô tả sơ đồ ANG_SIMP cần các hàm sau: Vị từ is_ANG_sim(pl,)
được dùng để kiểm tra xem dãy điểm pl đã được đơn giản hoá với ngưỡng
chưa, hàm angle(A, B, C) là số đo của góc A ˆ của tam giác ABC
Hàm ANGLE_al(pl,) được dùng để đơn giản hoá đường cong pl theo thuật toán Angularity với ngưỡng cho trước
Trang 32end /*end for*/
end /*end while*/
in pl'
end
Hình 2.3: Đơn giản hóa đường cong theo thuật toán Angles
*) Nhận xét: Do trong quá trình đơn giản hoá thuật toán sử dụng các bước
tính góc nên thuận lợi đối với các đường cong thu nhận được mà gốc là các đường uốn, phù hợp với việc đơn giản hoá trong quá trình véctơ các bản đồ địa hình, thuỷ văn, đường giao thông v.v
2.2 Thuật toán “độ đo sai số bậc hai QEM” (Quadric Error
Metric)
Một giả thiết chung mà các thuật toán thường tuân theo trong việc mô hình hóa biểu diễn bề mặt là: Coi dữ liệu đầu vào là các đa diện mà các mặt của nó là các tam giác chứ không phải là một đa giác bất kỳ (vì một đa giác bất kỳ bao giờ cũng là tập của nhiều tam giác)
Bài toán “giảm thíểu đa diện” trong không gian ba chiều cũng như các
bài toán tối ưu khác, thông thường, khó có thể tìm được lời giải tốt nhất
trong thời gian tính toán chấp nhận được Ở phần trước chúng ta đã xem
xét một số các hướng tiếp cận vấn đề này cùng các thuật toán đại diện cho
các hướng đó Một số các thuật toán cho được kết quả khá tốt thì lại mất nhiều thời gian cho các phép biến đổi, một số khác tính toán rất nhanh nhưng kết quả lại không tốt lắm
Trang 33Tiếp theo, chúng ta sẽ đi sâu vào nghiên cứu một thuật toán được gọi
là thuật toán đơn giản biểu diễn bề mặt đa diện sử dụng độ đo sai số bậc hai
(Quardric Error Metric_ Từ đây, được gọi tắt là thuật toán QEM) của hai
tác giả Micheal Garland và Paul Heckbert thuộc trường Đại học Carnegie
Mellon (Pittsburgh, PA) đề xuất ra đầu tiên vào năm 1997 Các hướng
nghiên cứu nhằm hoàn thiện nó được tiếp tục cho đến năm 1999 Các điểm
ưu việt của thuật toán này là ở chỗ không ràng buộc nhiều vào dữ liệu đầu
vào (các loại mặt xử lý rất đa dạng), tốc độ cao, chất lượng đầu ra tốt và
đặc biệt có thể cài đặt thêm nhiều điều kiện ràng buộc khác ngoài các thuộc tính hình học mà vẫn giữ được mô hình toán học của thuật toán đề ra từ ban đầu
Thuật toán QEM sử dụng phương pháp loại bỏ hình học Có hai vấn
đề mấu chốt của thuật toán này mà chúng ta cần quan tâm:
- Đối tượng được xét duyệt và loại bỏ của nó là một cặp đỉnh, cặp đỉnh này có thể là một cạnh của đa diện biểu diễn vật thể hoặc cũng có thể không Thay vào cặp đỉnh bị loại bỏ là một đỉnh mới, các yếu tố liên quan tới cặp đỉnh như cạnh, mặt sẽ được cập nhật tương ứng
- Thuật toán QEM đề ra một đại lượng gọi là hàm giá, dựa trên đại
lượng này, thuật toán sẽ có được cách chọn cặp đỉnh nào cần loại bỏ và chọn vị trí của đỉnh mới để sao cho sai số so với mô hình ban đầu là nhỏ nhất
2.2.1 Một số khái niệm và giả thiết ban đầu của thuật toán
a) Qui ước về cách biểu diễn vật thể
Một vật thể được mô hình hóa trong không gian ba chiều thông thường được biểu diễn bởi các bề mặt đa giác là tam giác, điều này không làm giảm tính tổng quát bởi vì, một đa giác bất kỳ đều có thể chia được thành các tam giác nhỏ hơn, nói cách khác, một đa giác luôn là 1 tập của
Trang 34nhiều tam giác Với qui ước này, từ đây, khi chúng ta đề cập đến một mặt
đa giác đơn lẻ nào đó trong mô hình biểu diễn thì hiểu rằng đó là mặt tam giác
Khái niệm vật thể trong không gian ba chiều ở đây do yếu tố cần phải thể hiện được lên màn hình thực tại ảo nên mục tiêu biểu diễn vật thể chính
là việc biểu diễn các bề mặt của vật thể này Như vậy, chúng ta cùng qui ước rằng khi nói đến một vật thể cũng đồng nghĩa là nói đến một mặt của
đa diện biểu diễn chúng
Trong một số trường hợp đặc biệt, trong mô hình biểu diễn có thể có các đỉnh hoặc cạnh không thuộc một tam giác nào cả, có một số thuật giải
đã được phát triển để xử lý và loại bỏ những yếu tố như vậy, thuật toán mà
ta sẽ trình bày sau đây coi như vật thể đầu vào chỉ gồm những tam giác
Với các giả thiết nêu trên, trong thuật toán QEM chúng ta định nghĩa:
một đa diện trong không gian ba chiều bao gồm các mặt tam giác còn được biểu thị bằng một cặp danh sách M = (V,F) trong đó:
V = (vl,v2,v3, ,vr): là danh sách gồm một dãy thứ tự các đỉnh, mỗi một đỉnh là một vectơ cột vi = [xi, yi, zi]T; (i=1,2,3) trong không gian R3
F = (f 1 , f 2 , f 3 , , f n) : là danh sách dãy có thứ tự các mặt tam giác, mỗi
một tam giác f i = (i,k,l) là một bộ ba đỉnh có thứ tự (vi,vk ,vl)
b) Các yêu cầu về giữ nguyên hình dạng hình học của vật thể (topology preservation)
Xét về mặt hình dạng hình học, có hai quan niệm trong việc thiết kế
các thuật toán giảm thiểu đa diện Quan niệm thứ nhất chú trọng tới việc
giữ nguyên hình dạng hình học của vật thể (topology preservation), hai
phần rời nhau của vật thể sẽ không được chập làm một trong quá trình biến
đổi cho dù mức độ giảm thíểu rất nhiều Quan niệm thứ hai, cho phép có