Đề tài Nghiên cứu các kỹ thuật hiển thị mô hình địa hình ba chiều

Hiện nay, công nghệthông tin đã xâm nhập vào mọi lĩnh vực của đời sống xã hội. Tin học đã hỗtrợcho con người rất nhiều. Có thểnói Tin học đã góp phần làm cho cuộc sống ngày càng tươi đẹp và có ý nghĩa hơn. Giờ đây, khi Tin học đã và đang tiến bộtừng ngày làm cho mọi thứtrởnên hiện đại hơn và dễsửdụng hơn. Cùng với đà phát triển đó, chúng ta cũng phải kể đến sự phát triển của công nghệba chiều. Trên thếgiới, các hãng sản xuất phần cứng đồhọa hàng loạt tung ra những sản phẩm có tính năng mạnh mẽvà tốc độxửlý vô cùng nhanh chóng. Bên cạnh đó, công nghệba chiều đã ngày càng được ứng dụng rộng rãi từlĩnh vục thương mại, công nghiệp, giải trí, … đến cảquân sự, không gian, … Do nhu cầu con người ngày càng tăng, việc mô phỏng thếgiới thực là điều phải được thực hiện. Từnhững ứng dụng thiết kếba chiều phục vụcho việc chếtạo máy móc thiết bị, xây dựng nhà ởcông trình kiến trúc, đến các ứng dụng mô phỏng thử nghiệm tính năng trong công nghiệp chếtạo xe hơi, máy bay, … Điều này cho thấy công nghệba chiều không thểthiếu được đối với cuộc sống.

pdf58 trang | Chia sẻ: nhungnt | Lượt xem: 2191 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đề tài Nghiên cứu các kỹ thuật hiển thị mô hình địa hình ba chiều, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
KH OA C NT T – Đ H KH TN TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ TRI THỨC DIỆP CHÍ CƯỜNG – 0012523 NGHIÊN CỨU CÁC KỸ THUẬT HIỂN THỊ MÔ HÌNH ĐỊA HÌNH BA CHIỀU LUẬN VĂN CỬ NHÂN TIN HỌC GIÁO VIÊN HƯỚNG DẪN Th.s. ĐINH NGUYỄN ANH DŨNG NIÊN KHÓA 2000 – 2004 KH OA C NT T – Đ H KH TN - 1 - Lời cảm ơn Lời  cảm  ơn  đầu  tiên  em  xin  được  gởi  đến  giáo  viên  hướng  dẫn  thầy  Đinh  Nguyễn Anh Dũng,  là người  đã  tận  tình hướng dẫn và chỉ bảo  em  trong  suốt  thời  gian thực hiện đề tài tốt nghiệp này.  Kế đến em xin chân  thành cảm ơn các  thầy cô  trong Khoa Công Nghệ Thông  Tin, trường Đại học Khoa học Tự nhiên đã tạo điều kiện thuận lợi cho chúng em trong  suốt bốn năm học Đại học, tạo cho chúng em có nền tảng kiến thức vững chắc.  Và cũng không quên gởi lời cảm ơn sâu sắc đến gia đình, các anh chị và bạn bè  đã ủng hộ, giúp đỡ và động viên trong những lúc khó khăn trong suốt thời gian học  tập cũng như nghiên cứu.  Mặc dù  đã cố gắng hết hoàn  thành  luận văn  trong phạm vi và khả năng cho  phép, nhưng chắc chắn sẽ không tránh khỏi những thiếu sót, kính mong sự thông cảm  và tận tình chỉ bảo của quý Thầy Cô và các bạn.  Sinh viên thực hiện Diệp Chí Cường KH OA C NT T – Đ H KH TN - 2 - Bố cục Luận văn gồm 6 chương: • Chương 1: Tổng quan là chương mở đầu, giới thiệu về nhu cầu thực tế và lý do thực hiện đề tài. Chương này cũng nêu ra các hướng giải quyết đã được thực hiện. • Chương 2: Các khái niệm nêu lên một số khái niệm cơ bản liên quan đến vấn đề đã nêu. • Chương 3: Thuật toán của Röttger, Chương 4: Thuật toán ROAM và Chương 5: Thuật toán Diamond mô tả chi tiết một vài thuật toán thông dụng hiện nay. Các chương này sẽ trình bày cấu trúc dữ liệu, hoạt động chi tiết của các thuật toán. Cuối cùng sẽ nêu ra những ưu khuyết điểm của các thuật toán. • Chương 6: Tổng kết là chương cuối cùng của đề tài. Chương này nêu ra kết quả đạt được khi thực hiện cài đặt chương trình. KH OA C NT T – Đ H KH TN - 3 - Mục lục Chương 1 Tổng quan ......................................................................................................6 1.1 Giới thiệu vấn đề ...............................................................................................6 1.2 Các hướng giải quyết vấn đề .............................................................................7 Chương 2 Các khái niệm ..............................................................................................10 2.1 Đường ống đồ họa (graphics pipeline)............................................................10 2.2 Cấu trúc biểu diễn đỉnh ...................................................................................11 2.3 Thu nhỏ khung cảnh (scene reduction) ...........................................................11 2.4 Các mô hình hiển thị đồ họa............................................................................12 Chương 3 Thuật toán của Röttger ................................................................................13 3.1 Cấu trúc dữ liệu ...............................................................................................13 3.2 Hiển thị bản đồ địa hình ..................................................................................15 3.3 Phát sinh lưới tam giác ....................................................................................16 3.4 Geomorphing...................................................................................................22 3.5 Clipping ...........................................................................................................23 3.6 Ưu và khuyết điểm ..........................................................................................23 Chương 4 Thuật toán ROAM .......................................................................................25 4.1 Biểu diễn..........................................................................................................25 4.1.1 Cây nhị phân tam giác..............................................................................25 4.1.2 Lưới tam giác động và liên tục ................................................................26 4.2 Tối ưu với hàng đợi kép ..................................................................................29 4.2.1 Hàng đợi phân chia (split queue) .............................................................29 4.2.2 Hàng đợi kết hợp (merge queue) .............................................................30 4.3 Các khái niệm lỗi (error metrics) ....................................................................32 4.3.1 Các biên xếp chồng trong không gian thế giới ........................................33 4.3.2 Sự méo mó hình học ................................................................................33 4.3.3 Hiệu chỉnh Line-of-site (LOS).................................................................36 4.3.4 Các khái niệm khác..................................................................................36 4.4 Cải tiến quá trình hiển thị ................................................................................37 4.4.1 View-frustum culling ...............................................................................37 4.4.2 T-stripping................................................................................................38 4.4.3 Trì hoãn việc tính toán lại độ ưu tiên.......................................................38 4.4.4 Tối ưu lũy tiến (progressive optimazation)..............................................39 4.5 Ưu điểm và khuyết điểm .................................................................................40 4.5.1 Ưu điểm....................................................................................................40 4.5.2 Khuyết điểm.............................................................................................40 Chương 5 Thuật toán Diamond ....................................................................................42 5.1 Biểu diễn..........................................................................................................42 5.1.1 Cây tứ phân tam giác (triangle quadtree).................................................42 KH OA C NT T – Đ H KH TN - 4 - 5.1.2 Các đặc tính..............................................................................................45 5.1.3 Tính liên tục (continuity) của lưới tam giác ............................................45 5.2 Thuật toán Diamond........................................................................................46 5.2.1 Các hàng đợi tam giác..............................................................................47 5.2.2 Thuật toán ................................................................................................48 5.3 Ưu và khuyết điểm ..........................................................................................51 Chương 6 Tổng kết .......................................................................................................52 KH OA C NT T – Đ H KH TN - 5 - Danh sách hình Hình 3-1: Lưới tam giác của bản đồ địa hình 99× . Các mũi tên thể hiện các mối quan hệ cha – con trong cây tứ phân.......................................................................................14 Hình 3-2: Các quạt tam giác được phát sinh đệ qui cho lưới tam giác trong hình 3.1. Dấu gạch chéo chỉ ra các đỉnh được bỏ qua...................................................................16 Hình 3-3: Tiêu chuẩn độ phân giải toàn cục: khoảng cách với kích thước ô trong cây tứ phân. ...............................................................................................................................17 Hình 3-4: Lưới tam giác của một hình phẳng căn cứ vào tiêu chuẩn độ phân giải toàn cục. Các tâm của quạt tam giác có màu trắng và cạnh màu đen....................................17 Hình 3-5: Tính toán độ gồ ghề bề mặt. ..........................................................................19 Hình 3-6: Hạn chế các giá trị d2 của các khối kề nhau nhằm thỏa mãn điều kiện (4). .20 Hình 3-7: Các giá trị d2 được lan truyền từ dưới lên (theo chiều mũi tên). ..................21 Hình 3-8: Lan truyền các giá trị d2 làm cho lưới tam giác tốt hơn gần các cực trị địa phương trong một bề mặt phẳng. ...................................................................................22 Hình 4-1: Mức 0 → 5 của cây nhị phân tam giác. .........................................................26 Hình 4-2: Phép phân chia và kết hợp trên lưới tam giác của cây nhị phân. Quan hệ láng giềng được thể hiện trong tam giác T ở bên trái. ...........................................................28 Hình 4-3: Phép phân chia ép buộc cho tam giác T.........................................................28 Hình 4-4: Các nêm xếp chồng cho miền 1-D phụ thuộc vào v. .....................................33 Hình 4-5: Biên chênh lệch bởi việc chiếu nêm lên màn hình. .......................................35 Hình 4-6: Bên trái là trước khi hiệu chỉnh LOS, bên phải sau khi thực hiện. ...............36 Hình 5-1: Vài mức ban đầu của cây tứ phân tam giác. ..................................................43 Hình 5-2: Định nghĩa tam giác và các mối quan hệ của nó. ..........................................44 Hình 5-3: Phép phân chia và kết hợp. ............................................................................44 Hình 5-4: Tính không liên tục của lưới tam giác. ..........................................................46 Hình 5-5: Hiệu chỉnh lại tính không liên tục cho lưới tam giác. ...................................46 Hình 6-1: Địa hình được hiển thị bằng thuật toán của Röttger......................................52 Hình 6-2 : Địa hình được hiển thị bằng thuật toán ROAM. ..........................................53 Hình 6-3 : Địa hình được hiển thị bằng thuật toán Diamond.........................................54 Hình 6-4 : Địa hình khi được phủ texture. .....................................................................55 KH OA C NT T – Đ H KH TN - 6 - Chương 1 Tổng quan 1.1 Giới thiệu vấn đề Hiện nay, công nghệ thông tin đã xâm nhập vào mọi lĩnh vực của đời sống xã hội. Tin học đã hỗ trợ cho con người rất nhiều. Có thể nói Tin học đã góp phần làm cho cuộc sống ngày càng tươi đẹp và có ý nghĩa hơn. Giờ đây, khi Tin học đã và đang tiến bộ từng ngày làm cho mọi thứ trở nên hiện đại hơn và dễ sử dụng hơn. Cùng với đà phát triển đó, chúng ta cũng phải kể đến sự phát triển của công nghệ ba chiều. Trên thế giới, các hãng sản xuất phần cứng đồ họa hàng loạt tung ra những sản phẩm có tính năng mạnh mẽ và tốc độ xử lý vô cùng nhanh chóng. Bên cạnh đó, công nghệ ba chiều đã ngày càng được ứng dụng rộng rãi từ lĩnh vục thương mại, công nghiệp, giải trí, … đến cả quân sự, không gian, … Do nhu cầu con người ngày càng tăng, việc mô phỏng thế giới thực là điều phải được thực hiện. Từ những ứng dụng thiết kế ba chiều phục vụ cho việc chế tạo máy móc thiết bị, xây dựng nhà ở công trình kiến trúc, đến các ứng dụng mô phỏng thử nghiệm tính năng trong công nghiệp chế tạo xe hơi, máy bay, … Điều này cho thấy công nghệ ba chiều không thể thiếu được đối với cuộc sống. Trong đó chúng ta không thể nào không kể đến việc mô phỏng dữ liệu địa hình trong thế giới thực vào máy tính. Đây là vấn đề được ứng dụng rất rộng rãi chẳng hạn như trong lĩnh vực không gian, máy tính mô phỏng địa hình bề mặt các hành tinh giúp cho công việc nghiên cứu thử nghiệm; trong lĩnh vực giải trí, các trò chơi máy tính cũng đòi hỏi dữ liệu địa hình giúp trò chơi mang tính hiện thực hơn; trong các hệ thống KH OA C NT T – Đ H KH TN - 7 - thông tin địa lý (Geographic Information System – GIS) thì vấn đề này càng không thể thiếu được; … 1.2 Các hướng giải quyết vấn đề Trên thực tế, dữ liệu địa hình vô cùng phức tạp và to lớn, nhưng có nhiều ứng dụng đòi hỏi sự tương tác động thời gian thực từ phía người sử dụng và do đó đòi hỏi phải xử lý nhanh dữ liệu địa hình để thích nghi với dữ liệu đầu vào từ người dùng. Nhiều hệ thống máy tính xử lý đồ họa hiện đại cho phép hiển thị hàng ngàn đa giác được tô bóng hay phủ hình ảnh (texture) ở một tốc độ tương tác. Tuy nhiên, nhiều ứng dụng chứa đựng các mô hình đồ họa với rất phức tạp về mặt hình học vẫn vượt quá khả năng của phần cứng đồ họa. Vấn đề này khá phổ biến trong các ứng dụng xử lý các mô hình bề mặt đa giác rộng lớn, như các chương trình mô phỏng và mô hình hóa địa hình số. Để phục vụ cho các mô hình bề mặt phức tạp mà vẫn quản lý được tốc độ hiển thị thời gian thực, vấn đề này có hai hướng giải quyết, nhưng cả hai đều hướng đến việc xấp xỉ các bề mặt đa giác hay đơn giản hóa dữ liệu ban đầu. Thứ nhất, các phương pháp này sử dụng mô hình với đa độ phân giải. Mô hình phức tạp ban đầu sẽ được tổ chức trong một cấu trúc dữ liệu đơn giản hơn (các mô hình ở nhiều độ phân giải khác nhau), và sau đó, trong quá trình hiển thị, tùy thuộc vào khoảng cách đến điểm nhìn mà quyết định mô hình sẽ được hiển thị ở độ phân giải nào (thường thì khi ở gần điểm nhìn hiển thị chi tiết hơn, khi ở xa điểm nhìn thì hiển thị ít chi tiết hơn). Hướng thứ hai là cũng sử dụng một cấu trúc dữ liệu để đơn giản hóa địa hình ban đầu nhưng thường là cấu trúc dạng cây và điều khác biệt so với hướng trên là cấu trúc này sẽ được xây dựng không phải ở bước tiền xử lý mà ngay trong lúc hiển thị địa hình. Một vài phương pháp xử lý địa hình hiệu quả đã được đưa ra. Cây tứ phân có lẽ là cấu trúc có ưu thế nhất trong các thuật toán địa hình; các phương pháp sử dụng việc thiết lập tính có thể trông thấy (visibility) hay các mức độ chi tiết dựa trên các khối đã KH OA C NT T – Đ H KH TN - 8 - được đưa ra; và các mạng tam giác bất qui tắc (trianglar irregular networks – TINs) là phổ biến trong các thuật toán có mức độ chi tiết liên tục. Các cây tứ phân thích hợp tốt với việc tổ chức cấu trúc dữ liệu theo bản đồ chiều cao hai chiều và do đó nổi bật trong các thuật toán khảm địa hình (terrain tessellation algorithm). Cấu trúc phân cấp của cây tự cung cấp tốt cho view frustum culling và do đó các cây tứ phân thường được sử dụng ở trước các thuật toán địa hình để phục vụ như là một cơ chế lọc (view culling). A. James Stewart đã mô tả một tập hợp tính nhìn thấy phân cấp (hierarchical visibility) cho địa hình, nó được lưu trữ trong một cây tứ phân hoàn chỉnh và có thể được sử dụng để lọc (cull) các vùng rộng lớn một cách hiệu quả. Phương pháp này hoạt động tốt nếu kết hợp với các thuật toán khác có dựa vào việc tính toán LOD. Willem H. de Boer lại mô tả một thuật toán gần gũi hơn với phần cứng mà sử dụng các tập hợp mức độ chi tiết theo khối (block-based level-of-detail) được gọi là GeoMipMaps. Ông ta đã đề nghị một cải tiến cho thuật toán cơ bản để hạn chế hiện tượng vertex poping (các đỉnh xuất hiện đột ngột) có dạng GeoMipMap tam tuyến (trilinear GeoMipMap), xác định LOD khối này với các khối khác; điều này biến đổi dần dần từ thuật toán mức độ ưu tiên theo khối sang thuật toán mức độ ưu tiên liên tục. Một số phương pháp theo hướng cổ điển, như thuật toán Diamond, đều tận dụng các mạng TINs để thực hiện quá trình hiển thị địa hình. TINs là mạng các tam giác trong đó tất cả các tam giác có hình dạng giống nhau nhưng lại thay đổi về kích thước liên quan đến những tam giác khác. Mạng này đã được Lindstrom, Röttger và Duchaineau tận dụng với các dạng khác nhau. Lindstrom đưa ra một thuật toán để có được mức độ chi tiết liên tục trong một lưới chữ nhật sử dụng cây tứ phân thay đổi động và chiến thuật từ dưới lên (bottom-up). Röttger thực hiện ngược lại với Lindstrom, và đưa ra một thuật toán để có được kết quả tương tự bằng cách sử dụng cây tứ phân hoàn chỉnh và được duyệt theo thứ từ từ trên xuống (top-down). KH OA C NT T – Đ H KH TN - 9 - Duchaineau đưa ra thuật toán ROAM nhằm quản lý việc lập lưới tam giác có mức độ chi tiết liên tục bằng cách sử dụng các phép toán phân chia và kết hợp dựa trên đỉnh. Henri Hakl đưa ra thuật toán Diamond tương tự như thuật toán ROAM nhưng có một số cải tiến nhằm tăng tốc độ hiển thị. KH OA C NT T – Đ H KH TN - 10 - Chương 2 Các khái niệm 2.1 Đường ống đồ họa (graphics pipeline) Việc hiển thị đồ họa có liên quan đến việc đơn giản hóa khung cảnh (scene), một tập hợp dữ liệu không gian 3 chiều thành một tập hợp con nhỏ hơn và nhìn thấy được trên màn hình, rồi sau đó là hiển thị tập hợp này. Để hiển thị một khung cảnh chúng ta chú ý rằng một khung cảnh bao gồm nhiều đa giác mà thường là tập hợp các tam giác với các mục đích hiển thị phần cứng. Quá trình hiển thị đi qua đường ống đồ họa thực hiện các phép biến đổi cho các đỉnh của tam giác tùy theo điểm nhìn (point-of-view) hiện tại và sau đó được chiếu từ không gian thế giới sang không gian màn hình tùy theo viewing frustum. Điểm nhìn sẽ quyết định vị trí và hướng từ đó khung cảnh sẽ được hiển thị, trong khi đó viewing frustum lại quyết định phạm vi của vùng nhìn thấy (field-of-view – FOV). Sau khi thực hiện xong phép biến đổi và phép chiếu, tam giác sẽ được chiếu sáng (nghĩa là tính toán độ sáng trên nó) và được cắt xén (clip – nghĩa là chỉ những phần nào nhìn thấy mới được vẽ) và sau đó cuối cùng là vẽ nó lên bộ đệm đồ họa. Một số phương pháp có thể được chấp nhận trong lúc đang vẽ các tam giác như wire-frame, solid, textured và bump-mapped. Wireframe chỉ hiển thị các đường thẳng nối các đỉnh đa giác, solid chỉ hiển thị thông tin màu sắc, texturing sử dụng hình ảnh hay dữ liệu thủ tục được chiếu lên đa giác, bump-mapping phủ hình ảnh lên bề mặt đa giác và sử dụng một số dạng kỹ thuật tô bóng để tạo ra cảm giác độ sâu cho hình ảnh. KH OA C NT T – Đ H KH TN - 11 - 2.2 Cấu trúc biểu diễn đỉnh Các đỉnh của tam giác được sử dụng trong đường ống đồ họa có thể được biểu diễn theo một số cách, đơn giản nhất là danh sách tam giác (triangle-list). Danh sách tam giác chỉ đơn giản là lưu trữ các đỉnh trong một tập hợp bộ ba tương ứng với ba đỉnh của tam giác. Một danh sách tam giác có thể chứa các thông tin thừa, nếu như hầu hết các tam giác đều có các đỉnh chung. Dãy tam giác (triangle-strip) và quạt tam giác (triangle- fan) đều quan tâm đến điều này và đều đưa ra một cấu trúc biểu diễn đỉnh tiết kiệm dung lượng bộ nhớ và thời gian xử lý. Cấu trúc biểu diễn đỉnh theo chỉ mục cung cấp chi phí lưu trữ và hiển thị tốt nhất bằng cách chỉ lưu các đỉnh duy nhất và sử dụng bộ đệm chỉ mục để kết hợp các đỉnh thành tam giác. Bộ đệm chỉ mục tự nó cung cấp một số các biểu diễn tương ứng với danh sách chỉ mục (index-list), dãy chỉ mục (index-strip) và quạt chỉ mục (index- fan). 2.3 Thu nhỏ khung cảnh (scene reduction) Một khung cảnh thường không được hiển thị toàn bộ mà giảm đi thành một tập hợp con. Việc rút gọn này thường được thực hiện bởi culling các tập hợp tam giác. Culling ngụ ý việc loại bỏ khỏi tập con đã hiển thị và quá trình culling có nhiều dạng; ví dụ như khử mặt khuất (backface culling) sẽ loại bỏ đi tất cả các tam giác quay lưng lại với điểm nhìn (nghĩa là pháp tuyến của tam giác không chỉ về phía điểm nhìn. Các dạng khác của culling thường cố gắng loại bỏ đi các tập tam giác, ví dụ như hộp giới hạn (bounding box) bao quanh một tập hợp các tam giác nếu nằm bên ngoài vùng nhìn thầy (field-of-view) thì không có một tam giác nào trong tập hợp đó được hiển thị cả. Một dạng khác của việc rút gọn tam giác được thực hiện trong mức độ chi tiết (level-of-detail – LOD) và sơ đồ LOD liên tục. Những dạng này giảm bớt các tam giác bằng cách tìm một số lượng tam giác ít hơn
Tài liệu liên quan