Siêu thị PDFTải ngay đi em, trời tối mất

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
PREMIUM
Số trang
76
Kích thước
2.2 MB
Định dạng
PDF
Lượt xem
1856

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

Tải ngay đi em, còn do dự, trời tối mất!