Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Nghiên cứu và xây dựng game 3d trên nền đồ họa open gl
Nội dung xem thử
Mô tả chi tiết
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN
----------
PHAN NGỌC AN
NGHIÊN CỨU XÂY DỰNG GAME 3D
TRÊN NỀN ĐỒ HỌA OPENGL
KHÓA LUẬN TỐT NGHIỆP
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn các thầy cô trong khoa Tin học cũng như các thầy
cô giảng dạy trong trường Đại học Sư Phạm, Đại học Đà Nẵng đã truyền đạt cho
tôi những kiến thức quý báu trong suốt những năm học vừa qua.
Đặc biệt tôi xin chân thành cảm ơn thầy giáo Nguyễn Thanh Tuấn, khoa Tin
học, trường Đại học Sư phạm đã tận tình hướng dẫn, động viên và giúp tôi trong
suốt thời gian thực hiện đề tài.
Để có được kết quả như ngày hôm nay, tôi rất biết ơn gia đình đã động viên,
khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũng như quá
trình thực hiên đề tài tốt nghiệp này.
Xin chân thành cảm ơn giám đốc Ngô Chí Trung, các anh Phạm Thanh Trung,
Phan Ngọc Tú, Nguyễn Minh Giám là nhân viên trong công ty AsNet và các bạn
trong khoa Tin học – khóa 08 đã chân thành giúp đỡ trong những lúc gặp khó khăn,
đặc biệt là các bạn lớp 08CNTT2 đã ủng hộ, giúp đỡ, chia sẽ kiến thức, kinh nghiệm
và tài liệu có được cho tôi trong quá trình nghiên cứu và thực hiện đề tài.
Mặc dù đã rất cố gắng hoàn thành luận văn với tất cả nổ lực của bản thân
nhưng luận văn không tránh khỏi những sai sót và hạn chế, kính mong sự thông cảm
và đóng góp ý kiến của quý Thầy Cô, các anh và các bạn.
Tôi xin chân thành cảm ơn!
Đà Nẵng, Ngày 15 tháng 05 năm 2012
Sinh viên thực hiện
Phan Ngọc An
LỜI CAM ĐOAN
Tôi xin cam đoan:
1) Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn
trực tiếp của thầy ThS. GV. Nguyễn Thanh Tuấn.
2) Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và trung
thực tên tác giả, tên công trình, thời gian, địa điểm công bố.
3) Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin
chịu hoàn toàn trách nhiệm.
Sinh viên: Phan Ngọc An
MỤC LỤC
TỔNG QUAN ĐỀ TÀI ...............................................................................................1
1. Đặt vấn đề .............................................................................................................1
2. Lý do chọn đề tài ..................................................................................................1
3. Mục đích nghiên cứu ............................................................................................2
4. Nội dung khóa luận...............................................................................................2
5. Đối tượng và phạm vi nghiên cứu ........................................................................3
4.1. Đối tượng nghiên cứu.................................................................................3
4.2. Phạm vi nghiên cứu:...................................................................................3
6. Phương pháp nghiên cứu ......................................................................................3
7. Công cụ sử dụng ...................................................................................................3
NỘI DUNG NGHIÊN CỨU VÀ GIẢI PHÁP THỰC HIỆN .....................................4
Chương 1 - GIỚI THIỆU VỀ CÔNG CỤ SỬ DỤNG ................................................4
1.1. Ngôn ngữ lập trình ............................................................................................4
1.2. Visual C++ ........................................................................................................4
1.3. Thư viện đồ họa OpenGL (Open Graphics Library).........................................5
1.4. Ngôn ngữ mô hình hóa thống nhất UML (Unified Modeling Language).........5
1.4.1. Giới thiệu.................................................................................................5
1.4.2. Các bước phân tích và thiết kế hướng đối tượng ....................................7
Chương 2 - CƠ SỞ LÝ THUYẾT.............................................................................10
2.1. Các vấn đề quan trọng trong lập trình 3D .......................................................10
2.1.1. Khái niệm về 3D ...................................................................................10
2.1.2. Các hệ trục tọa độ..................................................................................10
2.1.3. Xác định vị trí một điểm trong hệ tọa độ 3D ........................................12
2.1.4. Các mô hình 3D ....................................................................................13
2.1.5. Các hình dạng 3D..................................................................................14
2.1.6. Quy trình xử lý đồ họa (Graphics Pipeline)..........................................15
2.1.7. Các phép biến đổi (Transformation) .....................................................16
2.1.8. Các phép chiếu trong 3D.......................................................................20
2.1.9. Kỹ thuật gắn kết cấu (texture mapping)................................................22
2.1.10. Loại bỏ mặt sau (backface culling)....................................................24
2.1.11. Hộp biên (Bounding Boxes)..............................................................24
2.2. Thư viện đồ họa OpenGL................................................................................25
2.2.1. Cơ bản về OpenGL ......................................................................................25
2.2.2. Các kỹ thuật cơ bản trong Open GL ............................................................29
2.3. Kiến thức cơ bản về lập trình Game................................................................41
2.3.1. Vòng lặp game (Game Loop)................................................................41
2.3.2. Khung hình (Frame)..............................................................................43
2.3.3. FPS (Frame Per Second).......................................................................43
2.3.4. Bộ nhớ (Memory)..................................................................................44
2.3.5. Game AI (Artifical Intelligent) .............................................................44
2.3.6. Tương tác vật lý (game physics)...........................................................45
2.3.7. Âm thanh (sound)..................................................................................45
2.3.8. Trạng thái game (State).........................................................................46
Chương 3 - PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG ...........................................47
3.1. Xây dựng kịch bản cho game Warship ...........................................................47
3.2. Phân tích hệ thống ...........................................................................................47
3.2.1. Yêu cầu đặt ra đối với chương trình......................................................47
3.2.2. Mô tả chi tiết các chức năng .................................................................49
3.3. Thiết kế hệ thống.............................................................................................57
3.3.1. Xây dựng kết cấu tổng thể của hệ thống ...............................................57
3.3.2. Mô hình hoạt động của chương trình ....................................................60
Chương 4 – CÀI ĐẶT VÀ KẾT QUẢ CHƯƠNG TRÌNH ......................................62
4.1. Cài đặt chương trình........................................................................................62
4.1.1. Load model *.obj ..................................................................................62
4.1.2. Thuật toán đồng bộ hóa frame ..............................................................64
4.1.3. Thuật toán di chuyển ngẫu nhiên cho tàu chiến....................................65
4.2. Kết quả chương trình.......................................................................................66
4.2.1. Màn hình menu chính của game ...........................................................66
4.2.2. Màn hình chính trong game ..................................................................67
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................................68
1. Kết quả đạt được.................................................................................................68
1.1. Về lý thuyết ..............................................................................................68
1.2. Về thực nghiệm ........................................................................................68
2. Hướng phát triển của đề tài.................................................................................68
TÀI LIỆU THAM KHẢO.........................................................................................69
DANH MỤC BẢNG BIỂU
Hình 1. 1 Biểu đồ mô hình cấu trúc.............................................................................6
Hình 1. 2. Biểu đồ mô hình hành vi ............................................................................7
Hình 1. 3. Các bước phát triển hệ thống hướng đối tượng..........................................8
Hình 2. 1. Hệ trục tọa độ XYZ ..................................................................................11
Hình 2. 2. Hệ trục tọa độ bàn tay trái ........................................................................12
Hình 2. 3. Hệ trục tọa độ bàn tay phải.......................................................................12
Hình 2. 4. Một điểm được xác định bởi bộ 3 tọa độ XYZ .......................................13
Hình 2. 5. Hình khối đơn giản được thể hiện trong hệ trục tọa độ XYZ chuẩn........13
Hình 2. 6. Các đa giác được tách rời thành tập hợp các tam giác .............................14
Hình 2. 7. Các thành phần của một hình dạng 3D.....................................................15
Hình 2. 8. Phép thay đổi kích thước với giá trị (1.6, 1.6, 1.6)...................................17
Hình 2. 9. Phép quay (Rotation)................................................................................18
Hình 2. 10. Biểu diễn phép dịch chuyển theo một vector .........................................19
Hình 2. 11. Phép dịch chuyển (Translation)..............................................................20
Hình 2. 12. Kết hợp các phép biến đổi ......................................................................20
Hình 2. 13. Biểu diễn phép chiếu phối cảnh..............................................................21
Hình 2. 14. Biểu diễn phép chiếu trực giao...............................................................22
Hình 2. 15. Mô hình 3D trước và sau khi sử dụng kỹ thuật gắn kết cấu...................23
Hình 2. 16. Một ví dụ của sơ đồ kết cấu (texture map).............................................24
Hình 2. 17. Các đối tượng 3D và AABB của chúng .................................................25
Hình 2. 18. Biểu diễn lệnh trong OpenGL ................................................................27
Hình 2. 19. Các kiểu dữ liệu trong OpenGL .............................................................28
Hình 2. 20. Hình ảnh animation ................................................................................29
Hình 2. 21. Minh họa các tham số bằng hình vẽ .......................................................30
Hình 2. 22. Hình ảnh về shading ...............................................................................36
Hình 2. 23. Biểu diễn hàm gluLookAt()....................................................................37
Hình 2. 24. Biểu diễn phép chiếu trực giao với hàm glOrtho().................................38
Hình 2. 25. Thể hiện phép chiếu phối cảnh với hàm gluPerspective() .....................38
Hình 2. 26. Thể hiện phép chiếu phối cảnh với hàm glFrustum().............................39
Hình 2. 27. Minh họa việc thiết lập viewport............................................................41
Hình 2. 28. Một vòng lặp game đơn giản..................................................................42
Hình 2. 29. Biểu diễn một số tương tác vật lý trong game........................................45
Hình 3. 1. Sơ đồ use case của hệ thống .....................................................................48
Hình 3. 2. Module GameState ...................................................................................57
Hình 3. 3. Module Texture ........................................................................................58
Hình 3. 4. Module Objects3D....................................................................................58
Hình 3. 5. Module Skybox ........................................................................................58
Hình 3. 6. Module Ship .............................................................................................59
Hình 3. 7. Sơ đồ mối quan hệ giữa các lớp ...............................................................60
Hình 3. 8. Mô hình hoạt động của chương trình .......................................................61
Hình 4. 1. Cấu trúc model .obj ..................................................................................63
Hình 4. 2. Sơ đồ thuật toán đồng bộ frame................................................................64
Hình 4. 3. Sơ đồ thuật toán di chuyển tàu ngẫu nhiên...............................................65
Hình 4. 4. Màn hình chính của game.........................................................................66
Hình 4. 5. Màn hình khi đang chơi game ..................................................................67