Có nhiều kỹ thuật giảm thiều không gian lưu trữ bằng cách sử dụng các kỹ thuật nén ảnh, nhưng các kỹ thuật phổ biến hiện nay người ta thường dùng để giảm thiểu không gian lưu trữ là loại
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS TS ĐỖ NĂNG TOÀN
THÁI NGUYÊN - 2015
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn là công trình nghiên cứu của riêng cá nhân tôi, kết quả của luận văn hoàn toàn là kết quả của tự bản thân tôi tìm
Trang 4LỜI CẢM ƠN
Lời đầu tiên, em xin gửi lời biết ơn sâu sắc đến PGS TS.Đỗ Năng
Toàn người đã tận tình hướng dẫn, chỉ bảo, giúp đỡ em trong suốt quá
trình làm luận văn
Em cũng xin gửi lời cảm ơn đến các thầy cô giáo trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên, các thầy cô Viện Công nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ em trong suốt quá trình học của mình
ửi lời cảm ơn tới Ban giám hiệu trường THPT Nguyễn Đức Cảnh - Hải Phòng đã tạo điều kiện thuận lợ
tham gia khóa học và quá trình hoàn thành luận văn
ửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè những người đã ủng hộ, động viên tạo mọi điều kiện giúp đỡ để viên có được kết quả như ngày hôm nay
Phạm Minh Khôi
Trang 5MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1 KHÁI QUÁT VỀ ĐỒ HỌA 3D VÀ BÀI TOÁN RÚT GỌN 3
1.1 Khái quát về đồ họa 3D 3
1.1.1 Đồ họa 3D là gì? 3
1.1.2 Các thành phần cơ bản của đồ họa 3D 4
1.1.3 Card màn hình 8
1.1.4 Các ứng dụng cơ bản của đồ họa 3D 9
1.2 BÀI TOÁN RÚT GỌN ĐỐI TƯỢNG 3D 10
1.2.1 Khái niệm lưới (Mesh): 10
1.2.2 Giới thiệu bài toán rút gọn 11
1.2.3 Một số cách tiếp cận trong rút gọn lưới 3D: 13
CHƯƠNG 2 MỘT SỐ KỸ THUẬT RÚT GỌN BỀ MẶT MÔ HÌNH 3D 15
2.1 Rút gọn lưới bằng kỹ thuật PM (Progressive Meshes) 15
2.1.1 Ý tưởng 15
2.1.2 Thuật toán PM (Progressive Meshes) 17
2.1.3 Diện mạo của lưới: 18
2.1.4 Truyền tải lũy tiến 20
2.1.5 Nén lưới 20
2.1.6 Làm mịn có chọn lọc 23
2.1.7 Xây dựng lưới 24
2.1.8 Tóm lược: Tối ưu hóa lưới 25
2.1.9 Tổng quan về các thuật toán đơn giản hóa lưới 27
2.1.10 Bảo quản hình dạng bề mặt E dist E spring 29
2.1.11 Bảo tồn các thuộc tính vô hướngE scalar (M) 30
2.1.12 Duy trì các đường cong gián đoạn (E disc) 32
2.1.13 Cho phép thay đổi cấu trúc liên kết của các đường cong gián đoạn 34
2.2 Đơn giản hóa lưới bằng kỹ thuật Quadric Error Metrics (QEM) 34
2.2.1 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) 35 2.2.2 Phương pháp đánh giá độ xấp xỉ 36
2.2.3 Ý tưởng và các bước của thuật toán 40
2.2.3.1 Ý tưởng 40
2.2.3.2 Các bước cơ bản của thuật toán 40
2.2.4 Tập các cặp đỉnh sẽ được xem xét loại bỏ 42
Trang 62.2.4.1 Tập các cặp đỉnh 42
2.2.4.2 Phép loại bỏ cặp đỉnh 43
2.2.5 Hàm xác định giá 43
2.2.5.1 Đại lượng sai số bậc hai (QEM) 45
2.2.5.2 Xác dịnh trọng số của các mặt 47
2.2.5.3 Xác định vị trí đỉnh mới 49
2.2.6 Kiểm tra tính toàn vẹn 49
CHƯƠNG 3 CHƯƠNG TRÌNH THỬ NGHIỆM 52
3.1 Yêu cầu bài toán 52
3.2 Mô tả dữ liệu thử nghiệm 52
3.3 Phân tích thiết kế và chương trình thử nghiệm 54
3.3.1 Phân tích thiết kế 54
3.3.2 Chương trình thử nghiệm 55
3.3.3 Đánh giá kết quả đạt được 58
PHẦN KẾT LUẬN 64
TÀI LIỆU THAM KHẢO 65
Trang 7DANH MỤC HÌNH
Hình 1.1 Đối tượng 3D 4
Hình 1.2 Cấu trúc mô hình 3D 5
Hình 1.3 Các đối tượng nguyên thuỷ của đa giác 7
Hình 1.4 Mô hình liên tục 7
Hình 1.5 Card đồ họa hỗ trợ 3D 9
Hình 1.6 Mô hình lưới tam giác 10
Hình 1.7 Minh họa về việc giảm thiểu bề mặt 2D 12
Hình 1.8 Minh họa về việc giảm thiểu bề mặt 3D theo các mức khác nhau 12
Hình 2.1 Minh họa việc chuyển bó cạnh (ecol: hợp; vsplit: tách) 15
Hình 2.2 (a) Trình tự bó cạnh; (b) Kết quả đỉnh tương ứng 15
Hình 2.3 Minh hoạ của các đường dẫn được thực hiện bởi tối ưu hóa bằng cách sử dụng lưới ba thiết lập khác nhau của Crep 26
Hình 2.4 Minh hoạ PM đường dẫn thực hiện thủ tục đơn giản hóa lưới trong một đồ thị vẽ chính xác so với kích thước mắt lưới 28
Hình 2.5 Đơn giản hóa không sử dụng Edisc 34
Hình 2.6 Một vật thể gồm nhiều khối hộp được giảm thiểu theo 2 cách 36
Hình 2.7 Mô phỏng tình huống trong không gian hai chiều 45
Hình 2.8 Mặt vuông được “lát” bằng các hình tam giác khác nhau 48
Hình 2.9 Sau khi loại bỏ một cặp thì xuất hiện 1 mặt bị ngược 50
Hình 2.10 Giải pháp của QEM 50
Hình 3.1 Ví dụ về yêu cầu rút gọn mô hình 3D 52
Hình 3.2 Minh họa cấu trúc tệp OBJ 53
Hình 3.3 Thử nghiệm mô hình Bunny 57
Hình 3.4 Thử nghiệm mô hình Dragon 58
Hình 3.5 Thử nghiệm mô hình Horse 58
Hình 3.6 Bunny 69665 mặt - 34835 đỉnh 59
Hình 3.7 Bunny 500 mặt 252 đỉnh 59
Hình 3.8 Bunny 100 mặt 52 đỉnh 59
Hình 3.9 Dragon 209227 mặt 104855 đỉnh 59
Hình 3.10 Dragon 500 mặt 250 đỉnh 60
Hình 3.11 Dragon 100 mặt 51 đỉnh 60
Hình 3.12 Horse 96966 mặt 48485 đỉnh 60
Trang 8Hình 3.13 Horse 500 mặt 252 đỉnh 60
Hình 3.14 Horse 100 mặt 52 đỉnh 61
Hình 3.15 Car 8160 mặt - 425931 đỉnh 61
Hình 3.16 Car 1686 mặt 425931 đỉnh 62
Trang 9DANH MỤC TỪ VIẾT TẮT
Thuật toán đơn giản lưới biểu diễn bề mặt đa diện sử dụng
độ đo sai số bậc hai
Language
Ngôn ngữ mô hình hóa thực tại ảo
Trang 10Trong lĩnh vực biểu diễn, hiển thị hình ảnh 3D có hai phần chính là tạo
mô hình bề mặt (Modeling) và tạo sự chuyển động cho mô hình (Animation) Việc tạo mô hình 3D thường thực hiện thông qua sử dụng máy quét 3D hoặc các phần mềm chuyên dụng phổ biến hiện nay là Maya, 3DS Max…, mỗi phần mềm có ưu việt riêng của mình, song ở Việt Nam 3DS Max được biết đến nhiều qua việc ứng dụng trong các lĩnh vực thiết kế, kiến trúc, xây dựng Nhưng có một đặc tính chung là các phần mềm chỉ chú trọng việc đưa
ra kết quả dưới dạng 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 sau đó trong môi trường đồ họa 3D thường là rất nặng, tốn kém nhiều tài nguyên của máy tính
Hiện nay công nghệ phần cứng phát triển mạnh có hỗ trợ cho việc hiển thị hình ảnh 3D, nhưng vẫn chưa đáp ứng được đầy đủ “không gian” cho việc
xử lý hình ảnh, tốc độ cao bộ xử lý tuy nhanh song với một mô hình lớn nó cũng trở lên chậm chạp Vậy vấn đề đặt ra là việc giám thiểu không gian lưu trữ của mô hình, có thể tích hợp nhiều mô hình với nhau để tạo ra mô hình lớn
mà vẫn đáp ứng được các yêu cầu điều khiển sau đó [1]
Có nhiều kỹ thuật giảm thiều không gian lưu trữ bằng cách sử dụng các
kỹ thuật nén ảnh, nhưng các kỹ thuật phổ biến hiện nay người ta thường dùng
để giảm thiểu không gian lưu trữ là loại bỏ bớt số mặt phẳng đa giác biểu diễn của vật thể ban đầu để thu được mô hình có ít mặt đa giác hơn mà vẫn đảm
Trang 11bảo về mặt hình dạng của mô hình đó
Hiện nay ở nước ta việc ứng dụng công nghệ cao trong các ngành, các lĩnh vực là rất phổ biến trong đó có lĩnh vực đồ họa 3D, song các nghiên cứu
về nó còn chưa nhiều Từ những lý do kể trên cùng với gợi ý của thầy hướng dẫn học viên đã lựa chọn đề tài “Nghiên cứu một số kỹ thuật rút gọn bề mặt
mô hình 3D”
Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu: Mô hình 3D đối tượng
- Phạm vinghiên cứu: Đối tượng riêng lẻ và được biểu diễn bởi bề mặt lưới đa giác, quan tâm đến chất liệu che phủ bề mặt
Phương pháp nghiên cứu
- Phương pháp nghiên cứu lý thuyết: Tìm hiểu, tổng hợp tài liệu, phân tích, đánh giá các phương pháp
- Phương pháp trao đổi khoa học, lấy ý kiến chuyên gia
- Phương pháp thực nghiệm: xây dựng chương trình cụ thể để thử nghiệm, phân tích, đánh giá kết quả đạt được
Luận văn gồm ba phần chính:
Chương 1 Khái quát về đồ họa 3D và bài toán rút gọn
Chương 2 Một số kỹ thuật rút gọn bề mặt mô hình 3D
Chương 3.Chương trình thừ nghiệm
Trang 12CHƯƠNG 1.KHÁI QUÁT VỀ ĐỒ HỌA 3D VÀ BÀI TOÁN RÚT GỌN
Nội dung chính của chương sẽ trình bày những khái niệm cơ bản về đồ họa ba chiều theo định hướng của đề tài và sơ lược bài toán rút gọn bề mặt mô hình 3D
1.1 Khái quát về đồ họa 3D
1.1.1 Đồ họa 3D là gì?
Các lĩnh vực đồ họa máy tính liên quan đến việc tạo ra và hiển thị các đối tượng ba chiều trong một không gian hai chiều (ví dụ, màn hình hiển thị) là đồ
họa 3D Trong đó, điểm ảnh trong một hình ảnh 2 chiều có các thuộc tính của
vị trí, màu sắc, và độ sáng, một điểm ảnh 3D cho biết thêm một thuộc tính chiều sâu cho biết điểm nằm trên một trục Z tưởng tượng Khi được kết hợp nhiều điểm ảnh 3D, với mỗi giá trị chiều sâu riêng của mình, kết quả là ta có một bề mặt ba chiều Ngoài ra, đồ họa 3D cũng hỗ trợ nhiều đối tượng tương
tác với nhau Ví dụ, một vật rắn, một phần có thể ẩn đằng sau nó Cuối cùng,
máy tính xử lý với các kỹ thuật sử dụng trong không gian 3D để hiển thị vật
thể thực tế với chiều sâu của nó
Mục đích chính của đồ họa 3D là tạo ra và mô tả các đối tượng, các mô
hình trong thế giới thật bằng máy tính sao cho càng giống với thật càng tốt
Việc nghiên cứu các phương pháp các kỹ thuật khác nhau của đồ họa 3D cũng
chỉ hướng đến một mục tiêu duy nhất đó là làm sao cho các nhân vật, các đối tượng, các mô hình được tạo ra trong máy tính giống như thật, có dung lượng
lưu trữ và xỉ lý tối ưu nhất Và một trong các phương pháp đó là rút gọn mô hình 3D
Có rất nhiều khái niệm khác nhau về đối tượng 3D, song một cách chung nhất chúng ta có thể hiểu như sau: Một đối tượng 3D chính là đại diện trừu
tượng của một đối tượng trong thế giới thực hoặc một đối tượng do chúng ta tưởng tượng ra được xây dựng và biểu diễn trong môi trường máy tính Trong
Trang 13đó, nó bao gồm hai thành phần chính: thứ nhất là một mô hình 3D biểu diễn hình học và màu sắc của đối tượng, thứ hai là các thuộc tính, sự ràng buộc và
các mối quan hệ giữa các thành phần của đối tượng đó
Chúng ta có thể lấy một ví dụ nhỏ về đối tượng 3D là một nhân vật được
mô hình hóa và biểu diễn trên máy tính Nhân vật 3D này sẽ bao gồm: thứ nhất là một mô hình 3D chính là phần hình học và màu sắc để biểu diễn các
đường nét, hình dáng của nhân vật (phần tĩnh), thứ hai là các thuộc tính ràng buộc về các cơ quan, bộ phận của nhân vật (phần động), điều này rất quan trọng khi chúng ta thực hiện các thao tác biến đổi lên mô hình để tạo ra sự di chuyển hay thực hiện các hành động của nhân vật Chúng ta có thể hình dung
cụ thể hơn qua Hình 1.1
Hình 1.1 Đối tượng 3D
Mô hình 3D của nhân vật hay phần hình học (đường màu xanh thẫm) tạo
nên hình dáng của đối tượng, sự ràng buộc về cấu trúc (các khung hình xanh lá cây) và các ràng buộc cử chỉ (màu vàng) Tất cả các yếu tố đó tạo nên đối
tượng nhân vật hoạt hình 3D
1.1.2 Các thành phần cơ bản của đồ họa 3D
Sence: Là thành phần chứa tất cả các đối tượng của không gian 3D, các
đối tượng này được lưu trữ trong cấu trúc dữ liệu dạng cây
Trang 14Camera: Xác định điểm nhìn mà chúng ta đang xem Sence, được dùng để thay đổi góc nhìn, hướng nhìn, trọng tâm điểm nhìn
Viewport: Là vùng chứa những đối tượng mà Camera có thể nhìn thấy,
thể hiện một phần trong Sence 3D
Tùy trong từng viewport đối tượng có những biến đổi khác nhau, ví dụ như khi ta nhìn ngôi nhà ở vị trí gần thì các chi tiết, thuộc tính về ngôi nhà đó càng nhiều; ở một góc nhìn khác rất xa thì ta chỉ còn lại hình thù của căn nhà
đó (là khối hình hộp) các thông thuộc tính của nó ít đi, thậm chí ta không còn
nhìn thấy các ô cửa của nó… Vậy để mô hình đối tượng 3D giống như thế giới thực ta có rất nhiều kỹ thuật phải nghiên cứu, trong đó có rút gọn bề mặt mô hình 3D
Trong khuôn khổ và phạm vi nghiên cứu của luận văn này, mục này chủ yếu trình bày về phần hình học lưới bao phủ bề mặt của đối tượng hay mô
hình 3D của đối tượng và cụ thể là lưới tam giác (Phần 1.2.1) Như đã đề cập, một mô hình 3D bao gồm hai thành phần chính: thứ nhất là cấu trúc hình học
tạo nên hình dáng của đối tượng (Geometry), thứ hai là chất liệu tạo nên đối tượng (Material) Chúng ta có thể hình dung rõ hơn trong Hình 1.2
Ví dụ về cấu trúc của mô hình 3D:
Hình 1.2 Cấu trúc mô hình 3D
Trang 15Vertexts: Tập các tọa độ điểm, nó bao gồm 3 giá trị X,Y,Z mô tả về vị trí trong không gian và nó là thành phần nhỏ nhất của một mô hình 3 chiều Indexs: Tập này sẽ mô tả việc các điểm sẽ kết nối với nhau như thế nào
để tạo nên các đa giác
Geometrys: Là tập các đa giác (tam giác hay tứ giác) tạo nên bề mặt hình học của đối tượng Tập này được tạo nên từ hai tập trước đó là vertexts và indexs
Textcoords: Tập này sẽ mô tả việc ánh xạ màu sắc lên bề mặt của đối tượng Texture: Là tập màu sắc dùng để ánh xạ lên bề mặt đối tượng 3 chiều
Tập này thường là tập các ảnh 2D
Material: Là tập các thuộc tính mô tả tính chất bề mặt của đối tượng, nó bao gồm các thông tin mô tả về tính chất của bề mặt như: độ nhạy sáng, màu sắc, trong suốt hay không trong suốt … Có thể hiểu đây chính là các thông tin
mô tả về chất liệu của đối tượng
Mỗi một cấu trúc đồ họa thì các thành phần này lại được tổ chức sắp xếp
và lưu trữ khác nhau, như trong VRML thì các thành phần này được tổ chức
theo dạng phân cấp hình cây
Các dạng mô hình 3D: Ở đây luận văn chỉ đề cập đến hai dạng mô hình 3D chính là mô hình đa giác (Polygon) rời rạc và mô hình liên tục
Mô hình đa giác (Polygon)
Mô hình đa giác là các dạng mô hình mà ở đó bề mặt của đối tượng bao gồm nhiều bề mặt đa giác phẳng, có thể tạo ra đối tượng từ một bề mặt đa giác hoặc một mạng các bề mặt đa giác Ta có thể sử dụng bề mặt đa giác để mô hình bất kỳ hình dáng bề mặt nào và đặc biệt hữu ích đối với những dạng đơn giản, với đối tượng thuộc lớp động vật, người, đối tượng đòi hỏi một cái nhìn tổng quan với độ trơn cao
Các đối tượng nguyên thuỷ của polygon bao gồm (Hình 1.3):
Trang 16Hình 1.3 Các đối tượng nguyên thuỷ của đa giác
Mô hình liên tục là các dạng mô hình mà ở đó đối tượng ba chiều được tạo nên bằng cách áp dụng các phương trình toán học như: B-Spline, NURBS, RBF, PDE… cho việc mô hình hóa (Hình 1.4 là một ví dụ về sử dụng hàm PDE cho mô hình hóa)
Hình 1.4 Mô hình liên tục
Mỗi một dạng mô hình 3D lại có ưu nhược điểm rất khác nhau, và tùy
vào ứng dụng mà chúng ta lựa chọn biểu diễn đối tượng theo dạng nào Nếu biểu diễn đối tượng bằng cách sử dụng các mô hình đa giác rời rạc thì có ưu điểm là dễ thiết kế, đơn giản, nhưng nhược điểm là tính toán chậm, khả năng kết nối giữa các mô hình khác nhau một cách tự động là khó khăn Mô hình liên tục, vì sử dụng các phương trình toán học để biểu diễn nên nó có tính toàn
Trang 17cục cao, khả năng kết nối tốt, nhưng nhược điểm là phức tạp
1.1.3 Card màn hình
Ngay từ những ngày đầu tiên của máy vi tính, hầu hết Card màn hình làm nhiệm vụ là bộ chuyển đổi, những hình ảnh được tạo bởi bộ vi xử lí CPU thực hiện và chuyển đổi thành những tín hiệu điện để hiển thị trên màn hình Để làm được việc này hầu hết những hình ảnh được CPU xử lí cùng với những hiệu ứng âm thanh, tín hiệu đầu vào (đối với Game) và những ngắt hệ thống
Bộ vi xử lí của máy tính phải thực hiện mọi công việc để tạo nên những hình
ảnh 3D, âm thanh nổi điều này sẽ trở nên quá tải đối với những hệ thống
thậm chí có bộ vi xử lí tốc độ nhanh nhất và nó không thể phục vụ những yêu cầu như vậy trong thời gian thực Để giải quyết được điều này bộ vi xử lí đồ hoạ, GPU, sẽ tham gia vào công việc tạo nên những hình ảnh và những hiệu
ứng 3D GPU chia sẻ nhiệm vụ với CPU để tạo ra những hình ảnh động với
những tốc độ chấp nhận được
Như chúng ta đã xem, bước đầu tiên để tạo hình ảnh số 3D là tạo ra hình
ảnh với cấu trúc dây (Wireframe) từ những hình tam giác và đa giác.Với những Wireframe được chuyển từ những thuật toán 3 chiều thành những mẫu
mà hiển thị trên màn hình 2D Hình ảnh biến đổi được phủ lên bề mặt hoặc
được diễn tả, ánh sáng từ những nguồn sáng khác nhau và cuối cùng thành những mẫu mà hiển thị trên màn hình Hiện nay hầu hết các Card màn hình đều dùng GPU và nhiệm vụ của nó là diễn tả hình ảnh từ dạng Wireframe do
CPU tạo ra và chuyển chúng thành những hình đa giác kiểu 2D
Trang 18Hình 1.5 Card đồ họa hỗ trợ 3D
1.1.4 Các ứng dụng cơ bản của đồ họa 3D
Ðồ họa máy tính là một trong những linh vực lý thú nhất và phát triển nhanh nhất của tin học Ngay từ khi xuất hiện nó đã có sức lôi cuốn mãnh liệt, cuốn hút rất nhiều người ở nhiều lĩnh vực khác nhau như khoa học nghệ thuật, kinh doanh, quản lý Tính hấp dẫn của nó có thể được minh họa rất trực quan thông qua các ứng dụng của nó
Xây dựng giao diện người dùng (User Interface): Giao diện đồ hoạ thực sự
là cuộc cách mạng mang lại sự thuận tiện và thoải mái cho người dùng ứng dụng Tạo các biểu đồ trong thương mại, khoa học, kỹ thuật.Các ứng dụng này thường được dùng để tóm lược các dữ liệu về tài chính, thống kê, khoa học, toán học… giúp cho nghiên cứu, quản lý… một cách có hiệu quả
Thiết kế với sự trợ giúp của máy tính: Trong các lĩnh vực cơ khí, chế tạo như: chế tạo ô tô, máy bay để nhằm giảm thiểu chi phí vẫn có chất lượng tốt nhất Lĩnh vực giải trí, y tế,nghệ thuật: Các game chiến thuật, địa hình, mô phỏng các vụ án, các vụ phóng tên lửa đạn đạo, mô phỏng các bộ phận cơ thể con người trong y tế…
Lĩnh vực bản đồ (Cartography): Các bản đồ về địa hình, du lịch, giao
thông ngày nay ứng dụng rất tốt công nghệ 3D như: Google Map; Google
Trang 19Earth; Chỉ dẫn giao thông Sygic với mức tương tác rất cao, cho phép người dùng bổ sung các địa điểm trên bản đồ, các trạm xăng trên các chặng đường
và tình hình ùn tắc giao thông về hệ thống…
Giáo dục và đào tạo: Giáo dục đào tạo đã và đang tăng cường ứng dụng công nghệ thông tin trong quản lý giáo dục và giảng dạy, các thầy cô giáo dần làm quen với giáo án điện tử, E_learning, lớp học ảo…; học sinh được học bài giảng trực tuyến, đào tạo từ xa…; trong các tiết học thực hành với chi phí về
đồ dùng thí nghiệm đắt đỏ thì việc ứng dụng các phần mềm thí nghiệm ảo để
mô phỏng các thí nghiệm vật lí, hóa học và các chi tiết máy trong môn Công nghệ là vô cùng hiệu quả, học sinh có thể thay đổi các tham số của chương trình để có các ca thí nghiệm khác nhau Như vậy tiết kiệm được chi phí, vẫn đảm bảo tốt mục tiêu giáo dục
Trong lĩnh vực quốc phòng an ninh: Mô phỏng các vụ nổ, tập lái ô ô, máy bay, mô phỏng chiến trường và các tình huống giả định trong chiến đấu
Và nhiều ứng dụng khác
1.2 BÀI TOÁN RÚT GỌN ĐỐI TƯỢNG 3D
1.2.1 Khái niệm lưới (Mesh):
Định nghĩa 1: Lưới tam giác (Triangle mesh) là một loại của đa giác
lưới trong đồ họa máy tính Nó bao gồm một tập hợp các hình tam giác được kết nối bởi các cạnh hoặc góc chung của nó
Hình 1.6 Mô hình lưới tam giác
Định nghĩa 2: Khối đa giác (Polygon mesh) là một tập các đỉnh, cạnh
và mặt để xác định hình dạng của mô hình đối tượng 3D đồ họa máy
Trang 20tính và mô hình vật rắn Các mặt của khối thường bao gồm các hình tam giác, tứ giác, hoặc đa giác lồi, điều này giúp đơn giản hoáviệc dựng hìnhđối tượng (có thể bao gồm các đa giác lõm hoặc đa giác có lỗ)
Trong luận văn này tập trung vào giải quyết các mô hình dạng lưới tam giác, lưới tam giác M ( , F)V là một cặp, trong đó có chứa một danh sách các đỉnh V và một danh sách các mặt hình tam giác F Cả danh sách đỉnh
1 2
( , , , m)
các chỉ số của nó Mỗi chỉ số của danh sách có thể truy cập với một số nguyên
Để mô tả một lưới tam giác, hai loại thông tin cần có:
- Thông tin hình học: Thông tin không gian của tất cả các tọa độ đỉnh
- Thông tin liên kết: Kết nối các đỉnh để tạo thành các cạnh và mặt
1.2.2 Giới thiệu bài toán rút gọn
Khái niệm rút gọn lưới:Rút gọn mô hình 3D là[3] nghiên cứu một lớp các
thuật toán nhằm giảm thiểu số mặt của một lưới bề mặt 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ể đó (Hình 1.8) Cụ thể là: Thu được lưới mới có ít mặt, cạnh, và đỉnh nhưng vẫn giữ được hình dạng của lưới ban đầu càng nhiều càng tốt; làm giảm sự phức tạp của một lưới đã cho
Để giảm thiểu không gian bộ nhớ của mô hình, một trong những cách
tiếp cận là giảm thiểu số bề mặt biểu diễn mô hình.Các thuật toán "giảm thiểu
Trang 21bề mặt" 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[1].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 (viewport) Ví dụ, khi quan sát một vật thể chẳng hạn như bản đồ vệ tinh, tại vị trí ta đang sống Google Maps vẫn cho chúng ta hình dung được dãy nhà, khu phố ta đang sống một cách chấp nhận được, hoặc trong giao thông dối tượng chính của chúng ta
là đường đi, các dịch vụ phục vụ cho giao thông như cầu cống, trạm thu phí, cây xăng được coi trọng hơn các vật thể bên đường Hai hình dưới đây là một minh họa cho điều này
Hình 1.7 Minh họa về việc giảm thiểu bề mặt 2D
Hình 1.8 Minh họa về việc giảm thiểu bề mặt 3Dtheo các mức khác nhau
Như vậy [1], 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: Các ứng dụng GIS hay các bài toán mô phỏng địa
Trang 22hì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 Ngược lại với các mô hình khoa học, y học, chế tạo máy thì việc giảm thiểu bề mặt ít được áp dụng vì nó đòi hỏi độ chính xác rất cao
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ể 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 rút gọn bề mặt 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 đó đánh giá và so sánh được kỹ thuật nào là tốt hơn để lựa chọn
1.2.3 Một số cách tiếp cận trong rút gọn lưới3D:
Các thuật toán thường gặp liên quan để giảm sự phức tạp của các mắt lưới có thể được tạm chia thành năm lớp sau đây:
1) Phân cụm đỉnh (Vertex Clustering): Các thuật toán phân cụm đỉnh[4]thực hiện chia toàn bộ lưới thành một lưới với các ô kích cỡ đều Tất
cả các đỉnh chia sẻ cùng một ô được sáp nhập lại với nhau thành một đỉnh duy nhất.Để đạt được mô hình thô, kích thước của các cụm phải được tăng lên lặp
đi lặp lại Ưu điểm của kỹ thuật này là việc thực hiện nhanh chóng và đơn giản Chất lượng đầu ra thường là rất xấu
2) Đỉnh phần mười (Vertex Decimation): Kỹ thuật đỉnh phần mười được [5] phát triển rất sớm để lấy lưới một phần mười Các thuật toán lặp đi lặp lại việc chọn một đỉnh từ lưới, loại bỏ tất cảmặt kề nhau và lấp các lỗ bằng cách tái thiết tam giác.Ưu điểm: thuật toán đơn giản, nhanh;Nhược điểm: tốn
bộ nhớ
3) Lặp đi lặp lại việc bó cạnh (Iterative Edge Contraction): Đây có thể được coi là một phương pháp lai giữa hai thuật toán trên Do đó, thuật toán
Trang 23đơn giản hóa bề mặt bằng cách sử dụng số liệu lỗi bậc hai là có chất lượng tốt[6] Nó là một kỹ thuật của các thuật toán bócạnh lặp đi lặp lại
4) Tái thiết mắt lưới (Re-Tiling): Tái thiết bề mặt, lần đầu tiên được giới thiệu bởi Turk [7], mô tả phương pháp tự động sản sinh ra mô hình với nhiều cấp độ chi tiết từ một mô hình đa giác ban đầu Với việc tái thiết đó, một tập mới của đỉnh được phân bố lại trên bề mặt của mô hình Nó rất thích hợp cho các bề mặt cong nhưng nó không hoạt động tốt cho các góc nhọn và cạnh.Ưu điểm: Bảo tồn cấu trúc liên kết; Nhược điểm: Thuật toán phức tạp, bảo toàn hình dạng không tốt
5) Mặt sóng (Wavelets): Sử dụng Wavelets trong giảm thiểu bề mặt
lưới đã được giới thiệu bởi Gross[8] Sự mở rộng của wavelets từ hình ảnh 2D thông thường để mắt lưới 3D bất thường gồm các kỹ thuật dựng lại lưới
Trang 24CHƯƠNG 2
MỘT SỐ KỸ THUẬT RÚT GỌN BỀ MẶT MÔ HÌNH 3D
Nội dung chính của chương này trình bày chi tiết về hai kỹ thuật được sử dụng phổ biến trong các ứng dụng rút gọn bề mặt mô hình 3D dạng lưới tam giác (Triangle Mesh) Mỗi kỹ thuật dưới đây sẽ đại diện cho một cách tiếp cận của bài toán
2.1 Rút gọn lưới bằng kỹ thuật PM (ProgressiveMeshes)
2.1.1 Ý tưởng
Hoppe[9] mô tả một phương pháp tối ưu hóa lưới, có thể được sử dụng
để đưa lướiM ban đầu thành một lưới đơn giản hơn Thuật toán tối ưu hóa của
ông (xem trong phần:Tóm lược: Tối ưu hóa lưới) đi qua không gian của các mắt lưới có thể bằng cách liên tục áp dụng một tập hợp của ba sự chuyển đổi lưới: Bó cạnh, tách cạnh, và hoán đổi cạnh Trong thực tế, một đại diện của những biến đổi chính làbó cạnh, nó là một kỹ thuật đầy đủ đểđơn giản hóa mắt lưới một cách hiệu quả Như thể hiện trong (Hình 2.1), bó cạnh ecol( v v s, t
Hình 2.1 Minh họa việc chuyển bó cạnh (ecol: hợp; vsplit: tách)
Hình 2.2(a) Trình tự bó cạnh; (b) Kết quả đỉnh tương ứng
Trang 25Hợp nhất 2 đỉnh kề v s và v t vào một đỉnh duy nhất v s , đỉnh v t và hai mặt kề nhau v v v và s, ,t l v v v biến mất trong quá trình này, đỉnh v t, ,s r s là đỉnh mới
có thể đơn giản hóa thành một lưới
thô M 0 bằng cách áp dụng một chuỗi các biến đổi bó n cạnh liên tiếp:
Các trình tự cụ thể của biến đổi bó cạnh phải được chọn lựa kỹ càng, vì
nó quyết định chất lượng của các mắt lưới xấp xỉ M i , i<n Một kỹ thuật cho
việc lựa chọn những bó cạnh được trình bày trong phần2.1.7
Cho m 0 là tổng số cạnh trong lưới M 0, ta hãy đánh nhãn cho các đỉnh trên
Vấn đề chủ chốt chính là một sự chuyển đổi bó cạnh là khả nghịch.Hãy
gọi đó là biến đổi nghịch đảo của phân tách đỉnh, hiển thị như vsplit trong
(Hình 2.1).Một đỉnh tách chuyển đổi vsplit s l r t A thêm vào gần đỉnh v, , , , s
một đỉnh v t mới và hai mặt mới v v v và s, ,t l v v v (Nếu cạnh t, ,s r v v là s, t
chuyển đổi cũng cập nhật các thuộc tính của lưới trong khu vực lưới chuyển
đổi Thông tin thuộc tính này, biểu diễn bằng A, bao gồm các vị trí v s và v t của hai đỉnh bị ảnh hưởng, các thuộc tính rời rạc d v v v và s, ,t l d v v v của hai t, ,s rmặt mới, và các thuộc tính vô hướng của các góc bị ảnh hưởng
( ( ), ( ), (s v s s v t s v v v v s, ,t l ) & (s v r v v v t, ,s r ))
Bởi vì biến đổi sụp đổ cạnh là khả nghịch, do đó có thể đại diện cho một
cùng với một chuỗi tuần tự các bản ghi của n sự phân tách:
Trang 262.1.2 Thuật toán PM (ProgressiveMeshes)
Input: Lưới gốc M n , Số Phần trăm rút gọn
Output: Lưới mục tiêu M với số mặt lưới ít hơn
Bước 1 Sắp xếp các cạnh theo thứ tự tăng dần, sử dụng hàm giá nhỏ nhất (least cost function) Giá của một cạnh có thể đánh giá theo nhiều tiêu chí khác nhau như: độ dài cạnh, độ cong của các mặt, texture… Từ đó xác định được cạnh có giá nhỏ nhất
Bước 2.Chọn vị trí cho đỉnh mới.Vị trí này có thể nằm trên cạnh nối giữa hai đỉnh cũ hoặc không Vị trí này phải được xác định sao cho mẫu tạo được sau khi thu gọn cạnh và thay thế hai đỉnh cũ bằng một đỉnh mới phải giống điểm ban đầu nhất
Bước 3 Áp dụng toán tử bó cạnh (edge collapse operation) đối với cạnh
có giá trị nhỏ nhất và ghi nhận sự thay đổi tương ứng do phép bó cạnh gây ra Bước 4 Tính lại giá của các cạnh thu được sau khi thực hiện các bước trên và cập nhật lại danh sách các cạnh cá giá tăng dần
Bước 5 Nếu các cạnh trong danh sách đã được lấy hết ra để xử lý hoặc cạnh có giá nhỏ nhất tiếp theo được lấy ra xử lý đã đạt được một ngưỡng nào
đó thì giải thuật kết thúc, không thì quay lại Bước 2
Trang 27Tối ưu hóa vị trí v new để tạo đỉnh mới V '
2.1.3 Diện mạo của lưới:
Kế thừa ưu việt của việc chuyển đổi bó cạnh (và tính khả đảo của nó) là một quá trình chuyển đổi hình ảnh mịn (một diện mạo) có thể được tạo ra giữa
&
rằng các lưới chỉ chứa các thuộc tính là vị trí đỉnh Với giả định này bản ghi
0
1 1
Sử dụng các diện mạo như vậy, một ứng dụng có thể thông suốt quá trình
để có lướiM i + 1 hoặc M i-1 mà không có bất kỳ "bất thường" của các mắt lưới được nhìn thấy
Hơn nữa, từ việc chuyển đổi ecol riêng lẻ có thể được chuyển đổi thuận
Trang 28lợi Diện mạo do đó có thể được xây dựng giữa hai lưới bằng kỹ thuật PM Do
vậy, cho một lưới M f
tốt hơn và một lưới thô M c,0 c n tồn tại một sự
có liên quan đến
bởi một bản đồ toàn ánhA c thu được bằng
cách sắpxếp một chuỗi các biến đổi ecol (Hình 2.2) Chính xác hơn, mỗi v j
(Trong thực tế, thông tin tổ tiên này A c
được tập hợp trong một trang phía trước như lưới là tái tinh chế).Điều này cho phép chúng ta xác định một diện
và M G (1) tương đương với M f
Thuộc tính rời rạc do bản chất của chúng không có thể nội suy được thuận lợi Nhưng đáp lại, những thuộc tính rời rạc được kết hợp với mặt của lưới, và các diện mạo "hình học" được mô tả ở trên là mặt trơn tru Đặc biệt,
quan sát thấy mặt của M c
là một tập hợp con phù hợp trong những mặt của
M f và những mặt của M f bị mất trongM c
là vô hình trong M G (0) bởi vì chúng đã
bị bó cứng (khu vực trống) hình tam giác Đề ándiện mạo khác [[10][11][7]]xác địnhtốt tham số nghịch giữa các mắt lưới ở các cấp độ chi tiết khác nhau, nhưng chúng không cho phép triển khai diện mạo giữa các mắt lưới với các thuộc tính rời rạc khác nhau
Trang 29Những thuộc tính vô hướng trên các góc có thể được nội suy dễ dàng
giống như các vị trí đỉnh Có một cản trở nhỏ ở góc (v,f) trong một lưới M không được kết hợp tự nhiên vớibất kỳ "góc gốc" trong một lưới thô M c
nếu f
giá trị thuộc tính (v,f) có trong M c
như sau Chúng ta kiểm tra lưới M i + 1, trong
đó f là mặt đầu tiên được xét, xác định vị trí một góc láng giềng (v,f’) trong M i + 1
mà thuộc tính giá trị là như nhau và đệ qui quay lui từ nó vào một góc trong
với một giá trị thuộc tính giống
và do đó chúng ta giữ giá trị thuộc tính của nó liên tục thông qua diện mạo
2.1.4 Truyền tải lũy tiến
Mắt lưới lũy tiến là một đại diện cho truyền tải lũy tiến tự nhiên Các lưới
được truyền đầu tiên f i (sử dụng định dạng độ phân giải uni thông
thường), tiếp theo là luồng ghi vsplit i Quá trình tiếp nhận, từng bước xây
dựng lại M như các bản ghi đến, làm các lưới thay đổisống động Những thay
đổi của lưới có thể thuđược diện mạo để tránh gián đoạn thị giác Các lưới ban
đầu Mthu hồi chính xác sau khinhận được tất cả bản ghin, vì PM là một kỹ
thuậtkhông làm mất diện mạo ban đầu Các tính toán của quá trình tiếp nhận
được cân bằng giữa việc tái và hiển thị M khi tương tác Với một sự truyền tải
chậm, một kỹ thuật đơn giản là để hiển thị các lưới hiện bất cứ khi nào khi bộ đệm đầu vào được tìm thấy là rỗng Với một đường truyền thông nhanh chóng, chúng tathấy rằng một chiến lược tốt là để hiển thị các mắt lưới có độ phức tạp tăng theo cấp số nhân
2.1.5 Nén lưới
Mặc dù kỹ thuật PM trình bày mã hóa cả lướiM và một hệ thống liên tục
gần đúng, hiệu quả không gian nó thu được là đáng chú ý vì hai lý do Thứ nhất, các vị trí của các đỉnh tách, biến đổi có thể được mã hóa chính xác Thay
Trang 30vì lưu trữ cả ba chỉ số đỉnh (s i ,l i ,r i ) của vsplit i , ta chỉ cần lưu trữ s i và khoảng
hai, do tách đỉnh có tác dụng tại chỗ, người ta có thể mong đợi đáng kể sự gắn kết trong thuộc tính lưới qua từng biến đổi Ví dụ, khi đỉnh
i
i s
v và
0
1 1
v , và sử dụng mã hóa delta để giảm dung lượng lưu trữ Thuộc tính vô hướng của các góc trong M i 1 tương tự có thể được dự đoán từ những gì trong M i Cuối cùng, nhận biết cần thiết , ,
M chỉ sử dụng một
vài bit điều khiển
Kết quả là, kích thước của kỹ thuật PM được thiết kế cẩn thận nên có ưu thế hơn so với các phương pháp nén lưới độ phân giải unithu được Tuy nhiên,
chúng ta phân tích nén của các kết nối K, và báo cáo kết quả nén của diện
= 0 vì
thườngm0 n
Một diện mạo chung cho các kết nối lưới K là liệt kê ba chỉ số đỉnh cho từng mặt Khi số đỉnh là n và số lượng mặt khoảng 2n, một danh sách như
vậy đòi hỏi 6 log ( )2 n n bit lưu trữ Sử dụng một bộ đệm của 2 đỉnh, đại diện
dải tam giác tổng quát giảm con số này xuống còn khoảng ( log ( )2 n n 2 )k n
bắt các mã thay thế đỉnh [12] Bằng cách tăng kích thước bộ đệm đỉnh đến 16, lưới tam giác tổng quát[12]đã làm giảm hơn nữa để dung lượng lưu trữ về
Trang 31Taubin và Rossignac [13]cho kết quả lưới tổng quát hơn Với kỹ thuật PM,
mỗi vsplit i đòi hỏi sự minh bạch của s i và hai láng giềng, với tổng dung lượng khoảng( log ( )2 n 5)n bit Mặc dù không phải là ngắn gọn như [[12][13]],
nhưng đây là so sánh với dải tam giác tổng quát
Một biểu diễn truyền thống của hình học lưới V yêu cầu lưu trữ của tọa
độ 3n, hoặc 96n bit với IEEE chính xác đơn điểm f ltự do Giống như Deering[12], chúng ta giả định rằng các tọa độ có thể được lượng tử hóa 16bit
cổ định giá trị chính xác mà không trọng yếu f i mất chất lượng hình ảnh, do đó làm giảm lưu trữ để 48n bit Deering nén thêm dung lượng này bằng mã hóa delta các tọa độ lượng tử hóa và nén Huffman các vùng phẳng chiều dài thay đổi Đối với 16bit lượng tử, ông đã báo cáo lưu trữ 35.8N bit, trong đó bao gồm cả các vùng bằng và các mã Huffman Sử dụng một cách tiếp cận tương
tự với kỹ thuật PM, mã tưởng tượng V trong 31n đến 50n bit Để có được
những kết quả này, sử dụng một tính chất của thuật toán tối ưu hóa (Phần: Bảo quản hình dạng lưới): khi xem xét sự bó của một cạnh v v , nó xét ba điểm s, t
2
và sử dụng các bảng Huffman riêng biệt cho tất cả cácdấu hiệu
Để nâng cao hơn nữa hiệu quả nén, chúng ta có thể thay đổi các thuật
2
độ chính xác của mắt lưới, nhưng cho phép mã hóa của V trong30n đến37nbit
trong ví dụ của chúng ta Mã hóa Arithmetic [15]có độ dài phẳng không cải
thiện đáng kể kết quả trong f i, tái phản chiếu, thực tế là các cây Huffman cũng
Trang 32được cân bằng.Cải tiến nén hơn nữa có thể đạt được bằng cách thích ứng cả hai cấp độ lượng tử và các mô hình chiều dài phẳngchức năng của các chỉ số
kỷ lục vsplit i, vì cường độ thay đổi liên tục có xu hướng giảm
2.1.6 Làm mịn có chọn lọc
PM cũng hỗ trợ chọn lọc tinh xảo, theo đó chi tiết được thêm vào mô hình duy nhất trong khu vực mong muốn Ứng dụng cung cấp một chức năng
tinh chỉnh REFINE(v) trả về một giá trị Boolean cho biết mỗi khu vực của
đang đượctinh chỉnhbằng cách duyệt qua danh sách vsplit c, ,vsplit n 1 như trước, nhưng chỉ thực hiện vsplit s l r A i( , , ,i i i i) nếu:
(Đỉnh v vắng mặt trong lưới nếu việc tách đỉnh trước đã đưa nó vào, vì j
thế
0
- -1
j m
vsplit đã không được thực hiện do các điều kiện trên)
Như một ví dụ, để có được chọn lọc lại phục vụ cho tinh chỉnh mô hình
i s REFINE v là TRUE nếu một trong hai v hoặc
bất kỳ láng giềng của nó nằm trong các hình cụt.Rắc rối là một đỉnh
i s
hình cụt có thể không được phân chia bởi vì láng giềng
i l
v dự kiến của nó
nằm ngay bên ngoài các hình cụt và không được tạo ra trước đó.Vấn đề được khắc phục bằng cách sử dụng nới lỏng điều kiện (1).Chúng tađịnh nghĩa tổ tiên gần nhất của một v đỉnh là đỉnh với chỉ số: j
0
- -1
, '( )
Trang 33đều tiếp giáp với
i s
v Như khi xây dựng các diện mạo, thông tin tổ tiên A’ được thực có hiệu quả như các bản ghivsplit được phân tích.Nếu điều kiện (1)
và (2) được đáp ứng thì vsplit s A l i, ' i , 'A r i A được áp dụng cho lưới i
và đo đó thu được lưới làm mịn Một ứng dụng thú vị của làm mịn là việc truyền tải của các mô hình điểm phụ thuộc trên các đường truyền băng thông thấp Khi xem những thay
đổi nhận đượctheo thời gian, quá trình gửi chỉ cần truyền các bản ghivsplitvới
REFINE là TRUE, và của những cái màchưa được truyền trước đó
ví dụ như "khoảng cách đến mặt phẳng" Schroeder[5].Ở một góc độ khác, người ta có thể cố gắng để tìm kiếm xấp xỉ lưới đó là tối ưu đối với sự bảo tồn
vẻ ngoài của mô hình, ví dụ các số liệu hình học E dist của Hoppe [9]
Từ khi xây dựng PM, một xử lý trước đó có thể được thực hiện trực tuyến, nó có một qui trình đơn giản hóa mô hình tiết kiệm thời gian trong việc lựa chọn bó cạnh Thủ tục của đó cũng tương tự như các phương pháp tối ưu lưới giới thiệu bởi Hoppe[9], được tóm tắt tại mục 2.1.8.và2.1.9 trình bày một
Trang 34cái nhìn tổng quan về thủ tục này, và từ mục 2.1.10 đến 2.1.13 trình bày các chi tiết của chương trình tối ưu hóa của chúng tôi để bảo quản cả hình dạng của lưới và các thuộc tính rời rạc, vô hướng mà khi tạo ra nó xuất hiện
2.1.8 Tóm lược: Tối ưu hóa lưới
Mục tiêu của tối ưu hóa lưới [9] là tìm một lưới M = (KV) mà cả hai phù
i
Vấn đề này được đề cập để giảm thiểu giá trị của một hàm năng lượng
( ) dist( ) rep( ) spring(M)
Các biện pháp tổng bình phương của khoảng cách từ điểm lưới và các
đề tối ưu hóa Nó tương ứng với cách đặt trên mỗi cạnh của lưới có chiều dài
Trang 35Hình 2.3 Minh hoạ của các đường dẫn được thực hiện bởi tối ưu hóa bằng cách sử dụng
lưới ba thiết lập khác nhau của C rep
Các chức năng năng lượng E(M) được giảm thiểu bằng cách sử dụng một
phương pháp tối ưu hóa lồng nhau:
Vòng ngoài: Các thuật toán tối ưu hóa hơn K, các kết nối của lưới, bằng
cách cố ngẫu nhiên một bộ ba biến đổi lưới có thể có: bó cạnh, tách cạnh, và
co cạnh Nghĩa là bất kỳ sự phức tạp nào của K như loại tôpô đều có thể đạt
điều đó thông qua một chuỗi các phép biến đổi trên Đối với mỗi chuyển đổi lưới đề xuất, K K', tối ưu hóa liên tục được mô tả dưới đây tính E K!, tối
việc chuyển đổi lưới được áp dụng
Vòng trong: Đối với mỗi đề xuất lưới chuyển đổi, các thuật toán tính
E E V E V bằng cách tối ưu hơn các vị trí đỉnh V Vì
mục đích hiệu quả, các thuật toán trong thực tế tối ưu hóa chỉ có một vị trí
đỉnh v s , và chỉ xem xét các tập hợp con của các điểm X vào các khu lưới bị ảnh
cạnh nếu góc nhị diện tối đa của các cạnh trong khu lưới thu được vượt quá một ngưỡng nào đó
Hoppe [9] tìm ra thuật ngữ E springlàrất quan trọng trong giai đoạn đầu của việc tối ưu hóa, và đạt được kết quả tốt nhất bằng cách liên tục gọi phương
Trang 36thức tối ưu hóa lồng nhau được mô tả ở trên với một lịch trình giảm hằng số
K
Tối ưu hóa lưới được chứng minh là một công cụ hiệu quả nhằm đơn
giản hóa mô hình lưới Cho một lưới M ban đầu, một tập dày đặc của các điểm
X được lấy mẫu ở cả các đỉnh của M và ngẫu nhiên trên bề mặt của lưới Các thuật toán tối ưu gọi M là lưới đầu vào Thay đổi các thiết lập của các đại diện
kích thước Các đường dẫn được thực hiện bởi những tối ưu hóa được thể hiện trong (Hình 2.3.)
2.1.9 Tổng quan về các thuật toán đơn giản hóa lưới
Như trong tối ưu hóalưới [9], chúng ta đã xác địnhđại lượngnăng lượng
E(M) để đo độ chính xác của lưới đã đơn giản hóa M K V D S so với , , ,
bản gốc M, sửa đổi lưới M bắt đầu từ M trong khi giảm thiểu E(M)
Đại lượngnăng lượng có công thức sau:
( ) dist( ) spring( ) scalar( ) disc( )
Hai thuật ngữ đầu tiên, E dist(M) và E spring(M là giống với[9] Hai thuật )
ngữ tiếp theo của E(M) được thêm vào để bảo tồn các thuộc tính liên quan đến
2.1.10), và E disc(M) đo độ chính xác hình học của đường cong đứt đoạn của
nó (Mục 2.1.12) Để đạt được qui mô bất biến của các thuật ngữ, các lưới
được mở rộng để thống nhất phù hợp trong một đơn vị khối lập phương
Trang 37Hình 2.4 Minh hoạ PM đường dẫn thực hiện thủ tục đơn giản hóa lưới trong một đồ thị vẽ
chính xác so với kích thước mắt lưới
Chương trình ối ưu hóa kết nối qua các K của lưới là khá khác
nhau[9].Một lưới có thể được tối ưu hiệu quả sử dụng biến đổi bó cạnh Các trao đổi cạnh và tách hợp hữu ích trong bối cảnh tái thiết các mắt lưới, không cần thiết cho đơn giản hóa Mặc dù về nguyên tắc thuật toán đơn giản lưới không có thể đi qua toàn bộ không gian của mắt lưới đã được coi là tối ưu hóa, mắt lưới được tạo ra bởi thuật toán là tốt Trong thực tế, bởi vì các phương pháp tiếp cận hàng đợi ưu tiên được mô tả dưới đây, mắt lưới bằng kỹ thuật
PM thường là tốt hơn.Hơn nữa, xem xét chỉ thực hiện đơn giản hóa bằng cách điều khiển sự bó cạnh, cải thiện hiệu suất, và quan trọng nhất, làm tăng tính phổ dụng của PM (Mục 2.1.3)
Để thay đổi sự ngẫu nhiên trong biến đổi lưới[9], bó cạnh đề xuất vào
của nó) Trong mỗi lần lặp thực hiện việc chuyển đổi ở phía trước của hàng
lưới ảnh hưởng bởi sự biến đổi này Như một hệ quả, ta loại bỏ sự cần thiết
cho các tham số C repkhó xử lý cũng như các giới hạn năng lượng E rep(M) Thay vào đó, chúng ta có thể xác định một cách rõ ràng số lượng mặt mong