LUẬN VĂN: 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 ppt

52 315 0
LUẬN VĂN: 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 ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠ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 TÀI NGUYÊN 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 1 ĐẠ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 TÀI NGUYÊN 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 i 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 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 phòng thí nghiệm TOSHIBA-COLTECH đã tạo điều kiện cho tôi tìm hiểu, nghiên cứu học hỏi những kinh nghiệm trong quá trình nghiên cứu 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ộ, khuyến khích tôi trong suốt quá trình học tập tại trường. lời cuối cùng, tôi xin bày tỏ lòng chân thành biết ơn vô hạn tới cha mẹ, người thân, những người luôn ở bên cạnh tôi những lúc tôi khó khăn nhất, giúp tôi vượt qua khó khăn trong học tập cũng như trong cuộc sống. Hà Nội, ngày 10 tháng 05 năm 2009 Sinh viên Hoàng Tuấn Hưng ii TÓM TẮT Ngày nay, ngành công nghiệp Game đang trên đà phát triển nhanh chóng song song với việc phát triển phần cứng. Game engine sẽ là một công cụ hữu ích cho việc phát triển Game, nếu như các nhà phát triển mỗi khi bắt tay vào làm một Game nào đó từ đầu thì sẽ rất vất vả mất nhiều công sức. Với một Game engine thì công việc đó trở nên đơn giản nhanh hơn nhiều, nó sẽ cung cấp các API cho người phát triển Game có thể sử dụng tạo ra những hiệu ứng một cách nhanh chóng. Khóa luận sẽ trình bày tổng quan kiến trúc về Game engine mà chúng tôi đang xây dựng đi chi tiết vào hai thành phần là quảntài nguyên trong Game các chuyển động của đối tượng. Phần đầu sẽ giới thiệu một cách tổng quan nhất về hệ thống, các thành phần sẽ có trong Game engine, thiết kế cho các thành phần đó. Phần thứ hai khóa luận dành để giới thiệu về các tài nguyên sẽ có trong Game engine, tầm quan trọng của việc quảntài nguyên cho một hệ thống. Đặc biệt khóa luận sẽ trình bày cách tổ chức quảntài nguyên một cách hiệu quả nhất. Phần thứ ba của khóa luận sẽ giới thiệu về các chuyển động của các đối tượng trong Game, các kỹ thuật để có thể tạo ra được các loại chuyển động cho đối tượng cách triển khai các kỹ thuật vào trong Game engine. Phần cuối cùng sẽ là tổng kết những kết quả đã đạt được của khóa luận, những vấn đề còn tồn tại hướng phát triển tiếp theo của đề tài. iii MỤC LỤC 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 3 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 TÀI NGUYÊN 12 3.1.Giới thiệu 12 3.2. Quản tài nguyên trong GEM 12 3.3. Liên kết giữa các thành phần 13 3.4. Các thành phần trong Resource Manager 14 3.5. Biểu đồ lớp 15 3.5.1.Quản Mesh 16 3.5.2.Quản Texture 17 3.5.3.Quản Effect 19 3.5.4.Quản AnimatedMesh 20 3.5.5.Quản 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 23 4.3.1.Kỹ thuật nội suy Key-Frame 23 4.3.1.1. Giới thiệu 24 4.3.1.2. Nội suy bậc 1 24 4.3.1.3. Nội suy bậc 2 25 4.3.1.4.Triển khai kỹ thuật key-frame 25 4.3.2.Kỹ thuật skinning 27 4.3.2.1.Giới thiệu 28 4.3.2.2. Kỹ thuật Skeletal Subspace Deformation 29 4.3.2.3. Kỹ thuật Animation Space 31 iv 4.3.2.4. Kỹ thuật Multi-Weight Enveloping 32 4.3.2.5.Triển khai skinning 33 Chương 5.THỰC NGHIỆM 35 5.1. Demo key-frame 35 5.2. Demo Skinning 37 Chương 6.KẾT LUẬN 39 6.1.Kết quả đạt được 39 6.2.Định hướng tương lai 39 PHỤ LỤC 40 TÀI LIỆU THAM KHẢO 44 v BẢNG CÁC CHỮ VIẾT TẮT API Application Programming Interface CPU Central Processing Unit GPU graphics processing unit LBS Linear Blend Skinning MWE Multi-Weight Enveloping SBS Spherical Blend Skinning SSD Skeletal Subspace Deformation vi DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU Hình 1. Kiến trúc phân tầng của GEM 4 Hình 2. Kiến trúc tổng thể 6 Hình 3. Biểu đồ lớp của thành phần các kiểu dữ liệu cơ bản 7 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 11 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 MeshBank 16 Hình 12. Biểu đồ lớp Texture TextureBank 17 Hình 13. Biểu đồ lớp Effect EffectBank 19 Hình 14. Biểu đồ lớp AnimatedMesh 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 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 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 1 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 chịu sự đánh giá khắt khe hơn từ phía những người dùng, đặc biệt là về sản phẩm Game được nhận rất nhiều sự đánh giá từ phía các game thủ, hay chỉ là những người chơi bình thường. Ngành công nghiệp game hiện nay có thể nói là bùng nổ, với tốc độ phát triển đến chóng mặt, rất nhiều những game hay hấp dẫn đã được ra đời trong thời gian qua. Đằng sau những Game phát triển nổi tiếng như vậy đều có một Game Engine. Game engine là một công cụ hỗ trợ, một middleware giúp người phát triển viết 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 mã nguồn cao do có thể phát triển nhiều game từ một game engine. Tại Việt Nam, ngành công nghiệp Game mới chỉ đang phát triển đa số vẫn là phát hành Game là chủ yếu, còn việc xây dựng một Game Engine vẫn gần như chưa có. Đây là một lĩnh vực tiềm năng, hứa hẹn sẽ phát triển nhanh ở Việt Nam trong thời gian sắp tới. Từ những xu hướng phát triển trên, khóa luận tập trung nghiên cứu xây dựng một Game engine để phát triển tại Việt Nam. Hiện nay những Game engine nổi tiếng cũng khá nhiều, tuy nhiên giá thành một Game engine như vậy không phải là nhỏ, vì vậy nhóm phát triển muốn xây dựng một Game engine phục vụ cho những người đam mê về làm Game nhưng không đủ tài chính để có thể mua được một Game engine thương mại. Khóa luận sẽ tập trung đi sâu vào hai thành phần trong Game engine đó là: quảntài nguyên các chuyển động của đối tượng. Trong các phần mềm, việc quảntài nguyên luôn được xem xét cân nhắc cẩn thận để làm sao có thể quản lí một cách hiệu quả nhất, đặc biệt trong Game thì vấn đề này càng cấp thiết hơn bao giờ hết. Một Game muốn được phát triển sẽ phải quảntài nguyên tốt, hạn chế tới mức tối đa sử dụng tài nguyên của máy tính người chơi cũng để tăng tốc cho chương trình. Cần có cơ chế cấp phát giải phóng bộ nhớ một cách hiệu quả. Trong Game bao giờ cũng phải có các đối tượng chuyển động, vì vậy cần có cách thức phương pháp để quản tạo ra được các nhân vật có chuyển động. Khóa luận sẽ tập trung vào nghiên cứu các kỹ thuật để tạo ra các chuyển động cho nhân vật để cho các chuyển động ngày càng giống với chuyển động của con người, tạo được hiệu ứng tốt cho Game. 2 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 đề tổng quan về hệ thống Game engine của cả nhóm.  Chương 3: Giới thiệu về quảntài nguyên 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. [...]... khóa luận Xây dựng Game Engine đa nền tảngQuản khung cảnh” - Trương Đức Phương - Hiệu ứng ánh sáng vật liệu là module mở rộng các thành phần của Quản khung cảnh để tạo các hiệu ứng về ánh sáng, vật liệu, đổ bóng 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 – Hiệu ứng ánh sáng vật liệu” - Bùi Hoàng Khánh - Mô phỏng tự nhiên là module mở rộng các. .. vật thể), các texture (thường là các hình ảnh 2D), các animated mesh (thông tin 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 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 các tài nguyên sẽ được quản một cách tập trung GEM sẽ có các bank để chứa các mesh,... thành phần của Quản khung cảnh để mô phỏng các yếu tố tự nhiên cần có trong game như nước, địa hình, lửa, khói… 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 –Mô phỏng tự nhiên” - Trần Thái Dương - Chuyển động của đối tượng là module mở rộng các thành phần của Quản khung cảnh, thực hiện quá trình nội suy trong các mô hình chuyển động ( thường là các nhân vật... chính là tài nguyên của game Những người chơi khi quyết định cho mình một game nào đó thì họ sẽ phải xem xét tài nguyên trong máy họ còn bao nhiêu, tài nguyêngame sẽ tiêu tốn bao nhiêu để có thể quản tài nguyên trong máy mình một cách hợp nhất Đó mới chỉ đơn thuần là về phía người chơi, vấn đề quan trọng nặng nhọc nhất lại thuộc về phía những người viết game Game dù có hay hấp dẫn... (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 tài nguyên là module quản 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 khung cảnh là module thực hiện việc tổ chức kiểm soát các đối tượng tồn tại trong một... 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ảntài nguyên ra sao, mà chỉ việc khai báo 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ảntài nguyên 3.4 Các thành phần trong Resource Manager 14 Hình 10 Các thành phần trong Resource manager Trong module quảntài nguyên sẽ có các thành phần: các mesh (thông tin mô... Tf: màu của vật liệu - Ni: hệ số bóng của vật liệu Các phương thức: - loadFromMtl(fileName: String): lấy thông tin về material từ file mtl - Các phương thức khác để set, get các thuộc tính 22 Chương 4.CHUYỂN ĐỘNG CỦA CÁC ĐỐI TƯỢNG 4.1.Giới thiệu Trong lịch sử phát triển game từ trước đến nay thì một phần hết sức quan trọng làm nên thành công của game đó là chuyển động của các nhân vật trong game Từ... của thế kỷ trước game đã bắt đầu phát triển, thời đó game dung lượng rất nhỏ - với chỉ một đĩa mềm dung lượng hơn 1 MegaByte là ta có thể lưu trữ rất nhiều game, các game chạy trên nền MS-DOS Tuy những game nhỏ như vậy nhưng các nhân vật trong game cũng đã bắt đầu có chuyển động Chẳng hạn như game Mario hay Ninja các nhân vật cũng đãcác chuyển động như đi, chạy, đấm, đá, … Tuy những chuyển động. .. chăng nữa nhưng quản tài nguyên không tốt cũng rất khó để thành công, bởi những người chơi game không phải ai cũng sở hữu cho mình những bộ máy tính siêu mạnh, mà mục tiêu nhắm đến ở đây là nhiều người có thể chơi được làm sao tốc độ đạt được cũng là tốt nhất Vì vậy cần phải có một cơ chế quản tài nguyên thật hiệu quả hợp Một game engine thường có các tài nguyên cơ bản: các mesh (thông... giữa các thành phần 13 Hình 9 Mô hình liên kết với các thành phần khác Module quảntà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 đổ bóng, hiệu ứng tự nhiên đều phải sử dụng đến các thành phần trong module quảntà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 . 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:. 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. một cách hiệu quả nhất. Phần thứ ba của khóa luận sẽ giới thiệu về các chuyển động của các đối tượng trong Game, các kỹ thuật để có thể tạo ra được các loại chuyển động cho đối tượng và cách

Ngày đăng: 28/06/2014, 00:20

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan