Tải bản đầy đủ (.docx) (38 trang)

BÁO CÁO MÔN HỌC ĐỒ HỌA MÁY TÍNH ĐỀ TÀI VIẾT CHƯƠNG TRÌNH CÀI ĐẶT THUẬT TOÁN KHỬ ĐƯỜNG, MẶT KHUẤT SAU

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (278.59 KB, 38 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>ĐẠI HỌC ĐÀ NẴNG</b>

<b>TRƯỜNG ĐẠI HỌC BÁCH KHOA</b>

<b>KHOA CÔNG NGHỆ THÔNG TIN</b>

Tel. (+84.0236) 3736949, Fax. (84-511) 3842771Website: E-mail:

<b>BÁO CÁO MÔN HỌC</b>

<b>CBHD: Nguyễn Tấn Khơi</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG...6</b>

2.1. PHÁT BIỂU BÀI TOÁN...6

<b>CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ...10</b>

3.1. MƠ HÌNH TRIỂN KHAI...10

3.1.1. Mơ hình triển khai...10

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>DANH SÁCH HÌNH ẢNH</b>

Hình 1...11Hình 2...12Hình 3...13

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>DANH SÁCH TỪ VIẾT TẮT</b>

<b>Từ viết tắtDiễn giải</b>

IP Internet Protocol

MD5 Message-Degist Algorithm 5SHA Secure Hash Algorithm

API Application Programming Interface URL Uniform Resource Locator

<i>iii</i>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>MỞ ĐẦU</b>

<b>1. Tổng quan về đề tài </b>

<b>a) Khái niệm về khử đường và khử mặt khuất:</b>

- Khử đường (Hidden Line Removal) là quá trình xác định và ẩn đi cáccạnh đường nằm ở phía sau các đối tượng khác, khơng thể nhìn thấy đượctừ góc nhìn của người dùng.

- Khử mặt khuất (Hidden Surface Removal) là quá trình xác định và ẩn đicác bề mặt nằm ở phía sau các bề mặt khác, khơng thể nhìn thấy được từgóc nhìn của người dùng.

<b>b) Tầm quan trọng của khử đường và khử mặt khuất:</b>

- Cải thiện chất lượng và hiệu quả của việc hiển thị các mơ hình 3D.- Tối ưu hóa việc sử dụng tài nguyên (bộ nhớ, tốc độ xử lý) của hệ thống.- Là một trong những kỹ thuật cơ bản trong xử lý đồ họa 3D.

<b>c) Các thuật tốn chính:</b>

- Thuật tốn back-face culling.- Thuật tốn deep-buffer.- Thuật tốn deep sorting.

<b>d) Tính cấp thiết của đề tài:</b>

- Khử đường và khử mặt khuất là hai vấn đề quan trọng trong xử lý đồ họa3D, ảnh hưởng trực tiếp đến chất lượng và hiệu quả của việc hiển thị cácmơ hình 3D.

- Các ứng dụng đồ họa 3D ngày càng phổ biến và phức tạp, do đó việc lựachọn và áp dụng các thuật tốn khử đường, mặt khuất hiệu quả trở nên cấpthiết.

- Hiện nay vẫn chưa có một cơng cụ tích hợp và so sánh kỹ lưỡng về hiệuquả của các thuật toán này, do đó việc xây dựng một phần mềm như vậy

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

- Nghiên cứu và hiểu rõ các thuật toán khử đường, mặt khuất như face, deep-buffer, deep sorting.

back-- Cài đặt các thuật toán này một cách hiệu quả và tích hợp trong một phầnmềm thống nhất.

- Thiết kế phần mềm với giao diện người dùng trực quan, dễ sử dụng.- Xây dựng các kịch bản thực nghiệm để đánh giá và so sánh hiệu quả của

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

 Giúp nâng cao kỹ năng lập trình, thiết kế và triển khai các hệ thống phầnmềm.

 Rèn luyện khả năng phân tích, đánh giá và so sánh hiệu quả của các thuậttoán.

<b>3. Bố cục của đồ án</b>

Đồ án bao gồm các nội dung sau: Mở đầu

 Chương 1: Cơ sở lý thuyết

 Chương 2: Phân tích thiết kế hệ thống Chương 3: Triển khai và đánh giá kết quả Kết luận và hướng phát triển.

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>CHƯƠNG 1: CƠ SỞ LÝ THUYẾT</b>

<b>1.1. CƠ SỞ LÝ THUYẾT</b>

Trong xử lý đồ họa ba chiều, khử đường và khử mặt khuất là hai vấn đề quantrọng. Các thuật toán khử đường giúp xác định các cạnh đường nên được vẽ, trongkhi các thuật toán khử mặt khuất xác định các mặt nên được hiển thị.

Các phương pháp chính bao gồm:

- Thuật tốn back-face: Xác định các mặt của vật thể khơng thể nhìn thấyđược do nằm ở phía sau các mặt khác. Nguyên tắc là chỉ vẽ các mặt cópháp vector hướng về phía người quan sát.

- Thuật toán deep-buffer: Sử dụng một buffer để lưu trữ khoảng cách từcamera đến các mặt, từ đó xác định các mặt nên được hiển thị. Các mặtgần camera hơn sẽ được vẽ.

- Thuật toán deep sorting: Sắp xếp các mặt theo chiều sâu để vẽ từ xa đếngần, tránh được các mặt khuất.

Phân tích ưu nhược điểm của các phương pháp- Thuật toán back-face:

o Ưu điểm: Đơn giản, tốc độ nhanh.

o Nhược điểm: Chỉ phù hợp với các vật thể lồi, không thể xử lý các vậtthể lõm.

- Thuật tốn deep-buffer:

o Ưu điểm: Độ chính xác cao, phù hợp với các vật thể phức tạp.o Nhược điểm: Tốn bộ nhớ để lưu trữ buffer.

- Thuật toán deep sorting:

o Ưu điểm: Đơn giản, không tốn bộ nhớ.

o Nhược điểm: Tốc độ chậm hơn do phải sắp xếp các mặt.

<b>1.2. PHÁT BIỂU BÀI TOÁN</b>

Xây dựng một phần mềm khả năng cài đặt và so sánh hiệu quả của các thuậttoán khử đường và mặt khuất như back-face, deep-buffer, deep sorting. Cụ thể:

- Đầu vào: Mơ hình 3D gồm các đối tượng, mặt.

- Đầu ra: Hiển thị mơ hình 3D với các mặt được khử đường, mặt khuấthiệu quả.

Cho phép người dùng lựa chọn và áp dụng các thuật toán khác nhau.

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Đánh giá hiệu năng, độ chính xác của các thuật tốn.

<i>Đồng thời, chúng ta cũng đã phát biểu rõ bài toán cần giải quyết:</i>

<i>Xây dựng phần mềm cho phép cài đặt và so sánh hiệu quả của các thuật tốntrên.</i>

<i>Đánh giá hiệu năng, độ chính xác của các phương pháp.</i>

<i>Cho phép người dùng lựa chọn và áp dụng các thuật toán khác nhau.</i>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG</b>

<b>2.1. PHÁT BIỂU BÀI TOÁN</b>

Xây dựng phần mềm khả năng cài đặt và so sánh hiệu quả của các thuật toánkhử đường, mặt khuất như back-face, deep-buffer, deep sorting trên các mơ hình3D.

Chun gia xử lý đồ họa 3D, sinh viên, giáo viên….

<b>2.3.2. Chức năng 1</b>

- Người dùng có thể lựa chọn áp dụng thuật toán back-face để khử đường.- Phần mềm sẽ tính tốn pháp vector của các mặt, sau đó ẩn các mặt có

pháp vector hướng về phía sau.

- Kết quả: Mơ hình 3D với các đường bị khử.

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

- Phần mềm sẽ sắp xếp các mặt theo thứ tự chiều sâu (distance từ camera).- Các mặt xa hơn sẽ được vẽ trước, tránh bị mặt gần che khuất.

- Kết quả: Mơ hình 3D với các mặt khuất bị khử.

- Giao diện người dùng: Qt Framework

<b>2.4. THIẾT KẾ CƠ SỞ DỮ LIỆU</b>

- Mơ hình hoạt động:

o Người dùng tải mơ hình 3D vào phần mềm.

o Người dùng lựa chọn thuật toán khử đường/mặt khuất muốn áp dụng(back-face, deep-buffer, deep sorting).

o Phần mềm sẽ áp dụng thuật toán đã chọn và hiển thị kết quả.o Người dùng có thể so sánh kết quả giữa các thuật toán.- Thiết kế biểu đồ:

o Biểu đồ Use Case: Mơ tả các chức năng chính của phần mềm và cáctác nhân tương tác.

o Biểu đồ Lớp: Thiết kế các lớp đối tượng, mối quan hệ giữa chúng.o Biểu đồ Hoạt động: Mơ tả các luồng hoạt động chính trong phần

- Thiết kế cơ sở dữ liệu:

o Xác định cấu trúc dữ liệu phù hợp để lưu trữ và xử lý mơ hình 3D.o Có thể sử dụng các cấu trúc dữ liệu như danh sách các mặt (faces),

điểm (vertices), thuộc tính (materials, textures, ...).

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>2.5. TỔ CHỨC CHƯƠNG TRÌNH2.5.1. Tổ chức thư mục </b>

Cấu trúc thư mục chính của phần mềm bao gồm:src/: Chứa các mã nguồn C++ của ứng dụng.

<b>2.5.2. Tập tin 01</b>

- Tên tập tin: DuongThang.cpp

- Mô tả: Tệp DuongThang.cpp là một chương trình C++ sử dụng thư viện OpenGL và GLUT để vẽ đồ họa 3D. Chương trình này hiển thị một điểm và hình ảnh đối xứng của nó qua một đường thẳng trong không gian 3D. Người dùng có thể xoay hình ảnh bằng cách sử dụng các phím mũi tên trên bàn phím.

- Các chức năng chính:o Hiển thị Hình ảnh 3D:o Vẽ Điểm và Đường thẳng:

o Tính tốn Điểm Đối xứng qua Đường thẳngo Xoay Hình ảnh:

o Tính tốn Vector 3D:

<b>2.5.3. Tập tin 02</b>

- Tên tập tin: MatPhang.h

- Mô tả: Tệp mặt phẳng.cpp là một chương trình C++ sử dụng thư việnOpenGL và GLUT để hiển thị một mặt phẳng trong không gian 3D. Mặtphẳng này có thể xoay và quay theo các hướng khác nhau dựa trên cácphím điều khiển được người dùng nhập vào.

- Chức năng chính của chương trình mặt phẳng.cpp là hiển thị và quản lýmột mặt phẳng trong không gian ba chiều sử dụng OpenGL và GLUT.o Khởi tạo dữ liệu mặt phẳng và các điểm trên đó.

o Thiết lập và cập nhật kích thước cửa sổ đồ họa.

o Xử lý sự kiện các phím điều khiển để xoay và quay mặt phẳng trongkhông gian 3D.

o Vẽ mặt phẳng và các điểm trên đó.

<b>2.6. KẾT CHƯƠNG</b>

<i> Trong chương này, chúng ta đã tiến hành phân tích và thiết kế hệ thốngphần mềm để cài đặt và so sánh hiệu quả của các thuật toán đối xứng qua mặtphẳng hoặc đường thẳng trong xử lý đồ họa 3D.</i>

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Phát biểu bài toán: Xây dựng phần mềm cho phép người dùng áp dụng và sosánh các phương pháp đối xứng qua mặt phẳng hoặc đường thẳng trên các mơ hình3D.</i>

<i>Phân tích hiện trạng: Xác định người dùng mục tiêu và các yêu cầu về địnhdạng đầu vào, nền tảng và giao diện đồ họa.</i>

<i>Phân tích chức năng: Thiết kế các tính năng như lựa chọn thuật toán, hiển thịkết quả và so sánh hiệu suất của các phương pháp đối xứng.</i>

<i>Thiết kế cơ sở dữ liệu: Xác định cấu trúc lưu trữ thích hợp cho các mơ hình3D và dữ liệu liên quan đến các thuật tốn đối xứng.</i>

<i>Tổ chức chương trình: Định nghĩa cấu trúc thư mục, các tập tin chính và chứcnăng của chúng để triển khai các phương pháp đối xứng qua mặt phẳng hoặcđường thẳng.</i>

<i>Các nội dung thiết kế này sẽ là cơ sở quan trọng cho việc triển khai và thựchiện so sánh các thuật toán đối xứng trong các phần tiếp theo của dự án.</i>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>CHƯƠNG 3: TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ</b>

<b>3.1. MƠ HÌNH TRIỂN KHAI3.1.1. Mơ hình triển khai</b>

Mơ tả kiến trúc tổng thể của hệ thống, bao gồm các thành phần chính như:- Module đọc và xử lý mơ hình 3D : Thành phần này chịu trách nhiệm đọc

các tệp mơ hình 3D từ định dạng đầu vào và thực hiện xử lý cần thiết đểchuẩn bị dữ liệu cho các thuật toán xử lý.

- Module cài đặt và áp dụng các thuật toán khử đường, mặt khuất : Baogồm các thuật tốn để tính tốn và áp dụng các phép đối xứng trên cácđiểm hoặc mặt của mơ hình 3D theo mặt phẳng hoặc đường thẳng đãchọn.

- Module hiển thị kết quả và so sánh hiệu quả : Thực hiện hiển thị các kếtquả sau khi áp dụng các phép đối xứng và so sánh hiệu quả của chúngthông qua giao diện người dùng.

- Giao diện người dùng : Giao diện tương tác giữa người dùng và hệ thống,cho phép người dùng chọn mơ hình, thuật toán và thực hiện các thao táckhác trên dữ liệu.

- Sơ đồ triển khai kiến trúc hệ thống : Được sắp xếp một cách logic và cóthể được biểu diễn dưới dạng sơ đồ để minh họa cách các thành phần củahệ thống tương tác với nhau.

- Mô tả cấu hình phần cứng và phần mềm của hệ thống triển khai:

- Phần cứng: CPU đủ mạnh, RAM đủ lớn để xử lý dữ liệu 3D một cáchhiệu quả, GPU hỗ trợ OpenGL để hiển thị đồ họa 3D mượt mà.

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

- Hệ điều hành: Hỗ trợ Windows, Linux hoặc macOS để có thể chạy ứngdụng một cách linh hoạt trên các nền tảng khác nhau.

<b>3.2. KẾT QUẢ THỰC NGHIỆM</b>

<b>3.2.1. Kịch bản 1 – Đối xứng qua mặt phẳng</b>

Trình bày cách thực hiện, hình ảnh, giải thuật hình ảnh....

Kịch bản 1 - Tải mơ hình 3D và khử đường bằng back-face culling- Mô tả kịch bản:

o Người dùng chọn một mơ hình 3D chứa mặt phẳng hoặc đườngthẳng trong phần mềm.

o Áp dụng thuật toán đối xứng qua mặt phẳng hoặc đường thẳng.o Phần mềm xác định và hiển thị các điểm hoặc mặt phẳng đối xứng

qua mặt đã chọn.- Kết quả:

o Thời gian xử lý: 0.7 giây..- Số điểm hoặc mặt được đối xứng: 60%.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

- Giải thuật hình ảnh:

o Đối xứng qua mặt phẳng hoặc đường thẳng là một phương pháp đểtạo ra bản sao hoặc phản ánh của các điểm hoặc mặt qua một mặtphẳng hoặc đường thẳng.

o Kỹ thuật này dựa trên việc tính tốn điểm đối xứng của mỗi điểm banđầu hoặc mặt qua mặt phẳng hoặc đường thẳng.

o Bằng cách này, ta có thể thấy các điểm hoặc mặt được tái tạo và hiểnthị một cách đối xứng qua mặt đã chọn, tạo ra hiệu ứng thị giác đặcbiệt trong mơ hình 3D.

<b>3.2.2. Kịch bản 2 – Đối xứng qua đường thẳng</b>

Kịch bản 2 - Khử mặt khuất bằng deep-buffer- Mô tả kịch bản:

o Người dùng chọn một mơ hình 3D chứa các điểm hoặc mặt trongphần mềm.

o Áp dụng thuật toán đối xứng qua đường thẳng đã chọn.

o Phần mềm tính tốn và hiển thị các điểm hoặc mặt được đối xứngqua đường thẳng.

- Kết quả:

o Thời gian xử lý: 0.7 giây.

o Số điểm hoặc mặt được đối xứng: 60%.

<b>Hình 3-2 Đối xứng điểm qua đường thẳng</b>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

- Giải thuật hình ảnh:

o Đối xứng qua đường thẳng là quá trình tính tốn và hiểnthị các điểm hoặc mặt sao cho chúng được phản ánh quamột đường thẳng đã chọn.

o Đối xứng qua đường thẳng là q trình tính tốn và hiểnthị các điểm hoặc mặt sao cho chúng được phản ánh quamột đường thẳng đã chọn.

o Đối xứng qua đường thẳng là q trình tính tốn và hiểnthị các điểm hoặc mặt sao cho chúng được phản ánh quamột đường thẳng đã chọn.

<b>3.3. NHẬN XÉT ĐÁNH GIÁ KẾT QUẢ</b>

- Đánh giá hiệu năng của các thuật tốn:

o Tính toán đối xứng qua đường thẳng : dùng phương pháp thủ cơng, Thuật tốn có độ phức tạp tuyến tính với số lượng điểm và độ dàicủa đường thẳng. Do đó, thời gian tính tốn tăng tuyến tính khi sốlượng điểm hoặc độ dài của đường thẳng tăng lên. Tuy nhiên, vớicác mơ hình và đường thẳng có kích thước nhỏ đến trung bình,thuật tốn hoạt động hiệu quả và có thời gian tính tốn nhanh.o Tính tốn đối xứng qua mặt phẳng : dùng các phương pháp thủ công

Thuật tốn này chủ yếu thực hiện các phép tính tốn đơn giản như tích vơ hướng, tích vector, và tính tốn đối xứng qua một mặt phẳng. Do đó, độ phức tạp thời gian của thuật toán này là tuyến tính và phụ thuộc vào số lượng phép tính thực hiện.

- Đánh giá độ chính xác:

o Đối với đối xứng qua đường thẳng : Thuật tốn tính tốn điểm đối xứng của một điểm qua đường thẳng . Điểm đối xứng được tính tốn một cách chính xác dựa trên các tính chất hình học của đườngthẳng và các phép tốn vector. Do đó, điểm đối xứng có độ chính xác cao.

o Đối với đối xứng qua mặt phẳng : về mặt lý thuyết, thuật toán nàyhoạt động đúng khi tính tốn điểm đối xứng qua mặt phẳng. Tuynhiên, việc tính tốn có thể gặp vấn đề khi mặt phẳng gần songsong với trục z (ví dụ: khi |C| gần bằng 0 trong phương trình củamặt phẳng Ax + By +Cz + D = 0). Trong trường hợp này, tínhtốn của thuật tốn có thể trở nên khơng ổn định và dẫn đến kếtquả khơng chính xác.

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

<b>3.4. KẾT CHƯƠNG</b>

<i>Trong chương này, chúng tôi đã thực hiện triển khai và đánh giá hiệu quả củacác thuật toán đối xứng qua mặt phẳng hoặc đường thẳng trên mơ hình 3D:</i>

<i>Mơ hình triển khai:</i>

<i>Mơ tả kiến trúc hệ thống, bao gồm các module xử lý mơ hình 3D, cài đặt thuậttoán, hiển thị kết quả.</i>

<i>Liệt kê các công cụ như C++, OpenGL, Qt Framework được sử dụng.Cấu hình phần cứng và phần mềm.</i>

<i>Kết quả thực nghiệm:</i>

<i>Trình bày q trình thực hiện và kết quả của thuật tốn đối xứng qua mặtphẳng hoặc đường thẳng.Mơ tả q trình thực hiện, kết quả về thời gian xử lý và sốmặt được khử.</i>

<i>Đánh giá thời gian xử lý và số lượng điểm hoặc mặt được đối xứng.Phân tích giải thuật và giải thích kết quả của từng thuật tốn.Nhận xét và đánh giá:</i>

<i>So sánh hiệu năng và độ chính xác của thuật toán đối xứng qua mặt phẳnghoặc đường thẳng.</i>

<i>Đưa ra nhận xét về ưu điểm và hạn chế của thuật toán trong bối cảnh ứngdụng cụ thể.</i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN</b>

<b>4.1. KẾT QUẢ ĐẠT ĐƯỢC</b>

- Về mặt lý thuyết, đồ án đã đạt được những kết quả sau:

o Đã thành công trong việc phát triển một chương trình đối xứng quađường thẳng/mặt phẳng, thực hiện hiệu quả các phép biến đổi đối xứngtương ứng.

o Xây dựng và triển khai thuật tốn tính tốn vị trí đối xứng của điểm quađường thẳng/mặt phẳng, dựa trên cơ sở tốn học và hình học.

o Thực hiện phân tích và đánh giá hiệu năng, độ chính xác của thuật tốnthơng qua thực nghiệm trên các tình huống khác nhau..

- Về mặt thực tiễn ứng dụng, đồ án đã đạt được những kết quả sau:

o Phát triển một chương trình ứng dụng có khả năng thực hiện cácbiến đổi đối xứng qua đường thẳng/mặt phẳng một cách linh hoạtvà dễ dàng..

o Giao diện người dùng trực quan và thân thiện, cho phép ngườidùng tương tác và thực hiện các thao tác một cách hiệu quả..o Hỗ trợ nhập và xuất dữ liệu 3D, cung cấp tính năng mở rộng để

thích nghi với nhu cầu sử dụng đa dạng của người dùng..- Tuy nhiên, vẫn còn tồn tại các vấn đề như sau:

o Vấn đề 1: Mở rộng tính năng và tối ưu hiệu năng:

 Tiếp tục phát triển và mở rộng tính năng của chương trình,bao gồm việc tích hợp các tính năng mới như đối xứng quamặt phẳng, xoay, di chuyển, và thu nhỏ phối cảnh 3D. Tối ưu hiệu năng của chương trình để đảm bảo rằng nó có

thể xử lý các đối tượng 3D lớn và phức tạp một cách hiệuquả.

 Ảnh hưởng: Người dùng phải chờ đợi lâu khi xử lý mơ hình

</div>

×