Xây dựng game engine đa nền tảng quản lý tài nguyên và chuyển động của các đối tượng - Pdf 10

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Hoàng Tuấn Hưng
XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG
QUẢN LÝ TÀI NGUYÊN VÀ CHUYỂN ĐỘNG CỦA
CÁC ĐỐI TƯỢNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI - 2009
2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Hoàng Tuấn Hưng
XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG
QUẢN LÝ TÀI NGUYÊN VÀ CHUYỂN ĐỘNG CỦA
CÁC ĐỐI TƯỢNG
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: TS. Nguyễn Việt Hà
Cán bộ đồng hướng dẫn: ThS. Vũ Quang Dũng
HÀ NỘI - 2009
Lời cảm ơn
Tôi xin gửi lời cảm ơn tới các thầy cô trong khoa Công nghệ Thông tin trường Đại
học Công Nghệ, Đại học Quốc Gia Hà Nội, đặc biệt là các thầy cô ở Bộ môn Công nghệ
Phần mềm đã giúp đỡ tôi trưởng thành trong những năm học tập và rèn luyện ở môi
trường đại học.
Xin chân thành cảm ơn thầy Nguyễn Việt Hà, thầy Vũ Quang Dũng và phòng thí
nghiệm TOSHIBA-COLTECH đã tạo điều kiện cho tôi tìm hiểu, nghiên cứu và học hỏi
những kinh nghiệm trong quá trình nghiên cứu và làm khoá luận.
Tôi xin gửi lời cảm ơn tới các bạn trong lớp K50CD, K50CNPM đã ủng hộ,

MỞ ĐẦU........................................................................................................................1
Chương 1.ĐẶT VẤN ĐỀ............................................................................................3
1.1.Bối cảnh nghiên cứu.................................................................................................................3
1.2.Mục tiêu.....................................................................................................................................3
1.3.Giới thiệu chung ......................................................................................................................4
Chương 2.KIẾN TRÚC TỔNG THỂ........................................................................6
2.1.Các dữ liệu cơ bản.....................................................................................................................7
2.2.Giao tiếp với hệ điều hành .....................................................................................................8
2.3.Render Engine...........................................................................................................................9
2.3.1.Khái quát về Render Engine...................................................................................................9
2.3.2.Kiến trúc của Render Engine................................................................................................10
2.4. Các thành phần còn lại..........................................................................................................11
Chương 3.QUẢN LÝ TÀI NGUYÊN......................................................................12
3.1.Giới thiệu.................................................................................................................................12
3.2. Quản lý tài nguyên trong GEM...........................................................................................12
3.3. Liên kết giữa các thành phần...............................................................................................14
3.4. Các thành phần trong Resource Manager..........................................................................15
3.5. Biểu đồ lớp..............................................................................................................................16
3.5.1.Quản lý Mesh.........................................................................................................................16
3.5.2.Quản lý Texture.....................................................................................................................17
3.5.3.Quản lý Effect.........................................................................................................................19
3.5.4.Quản lý AnimatedMesh........................................................................................................20
3.5.5.Quản lý Material....................................................................................................................21
Chương 4.CHUYỂN ĐỘNG CỦA CÁC ĐỐI TƯỢNG.....................................23
4.1.Giới thiệu.................................................................................................................................23
4.2.Khái quát về animation..........................................................................................................23
4.3.Kỹ thuật tạo chuyển động nhân vật.....................................................................................24
4.3.1.Kỹ thuật nội suy Key-Frame................................................................................................24
4.3.1.1. Giới thiệu.....................................................................................................................24
4.3.1.2. Nội suy bậc 1...............................................................................................................25

Hình 4. Quá trình điều phối event............................................................................9
Hình 5. Kiến trúc phân tầng của Render Engine..................................................10
Hình 6. Biểu đồ gói của Render Engine.................................................................10
Hình 7. Mô hình quan hệ với các thành phần khác............................................12
Hình 8.Ví dụ Mesh Bank...........................................................................................13
Hình 9. Mô hình liên kết với các thành phần khác.............................................14
Hình 10. Các thành phần trong Resource manager.............................................15
Hình 11. Biểu đồ lớp Mesh và MeshBank.............................................................16
Hình 12. Biểu đồ lớp Texture và TextureBank.....................................................17
Hình 13. Biểu đồ lớp Effect và EffectBank............................................................19
Hình 14. Biểu đồ lớp AnimatedMesh và AnimatedMeshBank........................20
Hình 15. Biểu đồ lớp Material..................................................................................21
Hình 16. Ví dụ key-frame..........................................................................................24
Hình 17. Nội suy bậc 1 và bậc 2................................................................................25
Hình 18. Mô hình tổ chức các loại animation.......................................................26
Hình 19. Biểu đồ lớp KeyFrame...............................................................................27
Hình 20.Ví dụ Skinning............................................................................................28
Hình 21. Thành phần trong một nhân vật.............................................................29
Hình 22. Hạn chế kỹ thuật SSD...............................................................................30
Hình 23. Sử dụng kỹ thuật SSD...............................................................................31
Hình 24. Sử dụng kỹ thuật SBS...............................................................................31
Hình 25. Sơ đồ chuyển trục tọa độ...........................................................................32
vi
Hình 26. Mô hình tổ chức khung xương................................................................34
Hình 27. Demo key-frame.........................................................................................37
Hình 28. Demo Skinning...........................................................................................38
vii

MỞ ĐẦU
Trong thời đại công nghệ thông tin như hiện nay, sản phẩm công nghệ ngày càng

Ngoài phần mở đầu kết cấu khóa luận bao gồm 6 chương:
• Chương 1, 2: Đặt vấn đề và tổng quan về hệ thống Game engine của cả
nhóm.
• Chương 3: Giới thiệu về quản lí tài nguyên và cách tổ chức tài nguyên trong
hệ thống.
• Chương 4: Giới thiệu về chuyển động cho các đối tượng, đi vào các kỹ thuật
tạo chuyển động.
• Chương 5: Thực nghiệm các kỹ thuật được nêu ở chương 4
• Chương 6: Kết luận, thực hiện đánh giá kết quả đã đạt được, hướng phát
triển sắp tới.
2
Chương 1.ĐẶT VẤN ĐỀ
1.1.Bối cảnh nghiên cứu
Ngành công nghiệp phát triển game trên thế giới đang phát triển như vũ bão. Cách
đây 20 năm, game rất đơn giản và chỉ cần một người hoặc một nhóm nhỏ người phát
triển nhưng ngày nay, các game hiện đại với đồ họa và khả năng tương tác ấn tượng
thường được phát triển bởi một đội ngũ đông đảo người thiết kế game, lập trình viên,
nghệ sĩ… trong thời gian ròng rã từ một đến ba năm. Chính việc game ngày càng trở
nên phức tạp như vậy nên hiện nay, các game thương mại không còn phát triển từ
nguyên thủy nữa mà được phát triển lên từ game engine. Game engine hỗ trợ việc xây
dựng game một cách nhanh chóng, đơn giản hơn đồng thời cung cấp khả năng tái sử
dụng code cao do có thể phát triển nhiều game từ một game engine.
Ở Việt Nam, Game online mới chỉ thực sự thâm nhập vào thị trường cách đây 6
năm nhưng chỉ trong khoảng thời gian ít ỏi đó, chúng ta đã có một số lượng nhà phát
hành game lên tới con số hàng chục, số game được phát hành cũng tương ứng với số
lượng đó. Nhưng theo như chúng tôi được biết, gần như tất cả các game online đang
được phát hành ở Việt Nam là được nhập khẩu từ nước ngoài, chủ yếu là Trung Quốc
và Hàn Quốc ( trừ một số game nhỏ chơi trên web như đánh bài, đánh cờ ..) Một câu hỏi
mà có lẽ tất cả những người chơi game đều trăn trở là “bao giờ mới được chơi game
Việt Nam?”.

4
Bảng cấu hình tối thiểu dự kiến
Hãng sãn xuất Dòng card hỗ trợ
nVidia Từ GeForce4 Ti trở lên
ATI Từ Radeon 9500 trở lên
Intel ( card tích hợp ) Từ Intel® GMA 3100 ( chipset G31,Q33) trở lên
5
Chương 2.KIẾN TRÚC TỔNG THỂ
GEM là được chia thành nhiều thành phần để tiện cho việc phát triển và bảo trì.
Cụ thể GEM gồm các thành phần như sau:
Hình 2. Kiến trúc tổng thể
Ghi chú: Do thời gian làm luận văn có hạn, chúng tôi mới chỉ hoàn thành những
thành phần sau: Giao tiếp với hệ điều hành, Các kiểu dữ liệu cơ bản, Render Engine.
Những thành phần này đủ để hỗ trợ người sử dụng tạo ra các khung cảnh 3D và tương
tác với chúng.
6
2.1.Các dữ liệu cơ bản
Các kiểu dữ liệu cơ bản là thành phần bao gồm các cấu trúc dữ liệu cơ bản như
mảng động, vector, ma trận… các phép toán trên các kiểu dữ liệu đó cung cấp cho thành
phần khác sử dụng.
Hình 3. Biểu đồ lớp của thành phần các kiểu dữ liệu cơ bản
Các kiểu dữ liệu này có thể chia thành 2 nhóm chính:
- Các yếu tố trong không gian 3D:
 Vector2, Vector, Vector4: các loại vector biểu diễn tọa độ 2 chiều, 3 chiều
và tọa độ đồng nhất.
 Aabb ( Axis aligned bounding box ): hình hộp chữ nhật có các cạnh dọc
theo 3 trục xyz, được mô tả bằng 2 điểm (x
min,
y
min,

Hình 4. Quá trình điều phối event
GEM lấy event từ Message System của hệ điều hành, từ đó lấy các thông tin cần
thiết tạo ra GemEvent - lý do cần tạo ra GemEvent là để tránh bị phụ thuộc vào hệ điều
hành. Sau đó, GemEvent sẽ được gửi lần lượt đến các thành phần có khả năng nhận và
xử lý event.
2.3.Render Engine
2.3.1.Khái quát về Render Engine
Render Engine là thành phần cốt lõi của một Game Engine. Nó hỗ trợ người dùng
các công việc thiết yếu để tạo ra một khung cảnh 3D. Người dùng sẽ không cần biết
nhiều đến những công việc tầng thấp như quá trình đọc file tài nguyên, sử dụng 3D
Graphic API, quá trình tạo các effect… mà chỉ cần dùng giao diện do Render Engine
cung cấp.
Render Engine là thành phần duy nhất trong Game Engine giao tiếp với các thư
viện đồ họa cấp thấp ( cụ thể ở đây là openGL và Cg )
9
Hình 5. Kiến trúc phân tầng của Render Engine
2.3.2.Kiến trúc của Render Engine
Render engine gồm các module sau:
Hình 6. Biểu đồ gói của Render Engine
10
- Graphic Driver là module duy nhất trực tiếp sử dụng 3D Graphic API (openGL),
cung cấp cho các module khác một giao diện đơn giản hơn để tương tác với card đồ
họa.
- Quản lý tài nguyên là module quản lý các tài nguyên cần thiết để xây dựng một
khung cảnh 3D như mesh, animated mesh, texture 2D, cubemap…Module này được
trình bày chi tiết trong chương 3 của khóa luận này.
- Quản lý khung cảnh là module thực hiện việc tổ chức và kiểm soát các đối
tượng tồn tại trong một khung cảnh 3D, từ đó thực hiện quá trình render toàn bộ khung
cảnh đó tạo nên hình ảnh 2D tại vị trí nhìn. Module này được trình bày chi tiết trong
khóa luận “Xây dựng Game Engine đa nền tảng – Quản lý khung cảnh” - Trương Đức

các texture (thường là các hình ảnh 2D), các animated mesh (thông tin và các vật thể có
chuyển động, thường là các nhân vật), các material (vật liệu phủ lên bề mặt các vật thể),
các effect.
3.2. Quản lý tài nguyên trong GEM
Hình 7. Mô hình quan hệ với các thành phần khác
GEM sẽ có một module để quản lý các tài nguyên và sẽ được quản lý một cách tập
trung. GEM sẽ có các bank để chứa các mesh, animated mesh, texture, effect, … đã
12
được nhập vào. Như vậy thì sẽ giảm được tối đa tài nguyên, bởi vì ta chỉ lưu duy nhất
một phiên bản của mỗi đối tượng, còn các đối tượng giống nhau sẽ tham chiếu tới nó.
Với phương pháp quản lý như vậy thì một vấn đề đặt ra là: làm thế nào để xác
định được đối tượng cần (có thể) được giải phóng. Để giải quyết vấn đề này thì với mỗi
một bản dữ liệu (mesh, texture, …) chúng ta sẽ có biến đếm số lần nó được tham chiếu,
khi biến đếm từ 1 trở về 0 tức là nó không còn được tham chiếu nữa, thì dữ liệu đó có
thể được giải phóng.
Ví dụ:
Hình 8.Ví dụ Mesh Bank
13
3.3. Liên kết giữa các thành phần
Hình 9. Mô hình liên kết với các thành phần khác
Module quản lí tài nguyên là một thành phần cốt lõi trong GEM, tất cả các module
khác như: quản lí sceneGraph, ánh sáng và đổ bóng, hiệu ứng tự nhiên đều phải sử dụng
đến các thành phần trong module quản lí tài nguyên. Module này sẽ cung cấp các tài
nguyên như: Mesh, Material, Texture, AnimatedMesh, Effect cho các sceneNode của
những module khác nhau sử dụng chúng. Các module khác sẽ không phải quan tâm đến
việc quản lí tài nguyên ra sao, mà chỉ việc khai báo và sử dụng các tài nguyên đó. Còn
việc quản lí: xóa, cấp phát bộ nhớ, tham chiếu, … là việc của quản lí tài nguyên.
14
3.4. Các thành phần trong Resource Manager
Hình 10. Các thành phần trong Resource manager


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status