Đang tải... (xem toàn văn)
Tài liệu tham khảo ngành công nghệ thông tin 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
ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hoàng Tuấn HưngXÂ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ƯỢNGKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUYNgành: Công nghệ thông tinHÀ NỘI - 2009 2ĐẠI HỌC QUỐC GIA HÀ NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆHoàng Tuấn HưngXÂ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ƯỢNGKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUYNgà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ũngHÀ NỘI - 2009 Lời cảm ơnTô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ộ, khuyến khích tôi trong suốt quá trình học tập tại trường.Và lời cuối cùng, tôi xin bày tỏ lòng chân thành và biết ơn vô hạn tới cha mẹ, và 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 2009Sinh viên Hoàng Tuấn Hưngi TÓM TẮTNgà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ả 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 và 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 và 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 và đi chi tiết vào hai thành phần là quản lí tài nguyên trong Game và 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, và 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ản lí tà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 và quản lí tà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 và 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 và hướng phát triển tiếp theo của đề tài.ii MỤC LỤC MỞ ĐẦU 1 Chương 1.ĐẶT VẤN ĐỀ 31.1.Bối cảnh nghiên cứu .31.2.Mục tiêu .31.3.Giới thiệu chung 4 Chương 2.KIẾN TRÚC TỔNG THỂ 62.1.Các dữ liệu cơ bản .72.2.Giao tiếp với hệ điều hành .82.3.Render Engine .92.3.1.Khái quát về Render Engine .92.3.2.Kiến trúc của Render Engine 102.4. Các thành phần còn lại 11 Chương 3.QUẢN LÝ TÀI NGUYÊN 123.1.Giới thiệu .123.2. Quản lý tài nguyên trong GEM .123.3. Liên kết giữa các thành phần .143.4. Các thành phần trong Resource Manager 153.5. Biểu đồ lớp 163.5.1.Quản lý Mesh .163.5.2.Quản lý Texture .173.5.3.Quản lý Effect .193.5.4.Quản lý AnimatedMesh 203.5.5.Quản lý Material 21 Chương 4.CHUYỂN ĐỘNG CỦA CÁC ĐỐI TƯỢNG .234.1.Giới thiệu .234.2.Khái quát về animation 234.3.Kỹ thuật tạo chuyển động nhân vật .244.3.1.Kỹ thuật nội suy Key-Frame 244.3.1.1. Giới thiệu .244.3.1.2. Nội suy bậc 1 .254.3.1.3. Nội suy bậc 2 .254.3.1.4.Triển khai kỹ thuật key-frame .254.3.2.Kỹ thuật skinning 284.3.2.1.Giới thiệu 284.3.2.2. Kỹ thuật Skeletal Subspace Deformation .294.3.2.3. Kỹ thuật Animation Space 31iii 4.3.2.4. Kỹ thuật Multi-Weight Enveloping 324.3.2.5.Triển khai skinning 33 Chương 5.THỰC NGHIỆM .355.1. Demo key-frame .355.2. Demo Skinning 386.1.Kết quả đạt được .396.2.Định hướng tương lai 39 PHỤ LỤC 40 TÀI LIỆU THAM KHẢO 44iv BẢNG CÁC CHỮ VIẾT TẮTAPI Application Programming InterfaceCPU Central Processing UnitGPU graphics processing unitLBS Linear Blend SkinningMWE Multi-Weight EnvelopingSBS Spherical Blend SkinningSSD Skeletal Subspace Deformationv DANH MỤC CÁC HÌNH VẼ BẢNG BIỂUHình 1. Kiến trúc phân tầng của GEM .4Hình 2. Kiến trúc tổng thể .6Hình 3. Biểu đồ lớp của thành phần các kiểu dữ liệu cơ bản 7Hình 4. Quá trình điều phối event 9Hình 5. Kiến trúc phân tầng của Render Engine 10Hình 6. Biểu đồ gói của Render Engine .10Hình 7. Mô hình quan hệ với các thành phần khác 12Hình 8.Ví dụ Mesh Bank .13Hình 9. Mô hình liên kết với các thành phần khác .14Hình 10. Các thành phần trong Resource manager .15Hình 11. Biểu đồ lớp Mesh và MeshBank .16Hình 12. Biểu đồ lớp Texture và TextureBank .17Hình 13. Biểu đồ lớp Effect và EffectBank 19Hình 14. Biểu đồ lớp AnimatedMesh và AnimatedMeshBank 20Hình 15. Biểu đồ lớp Material 21Hình 16. Ví dụ key-frame 24Hình 17. Nội suy bậc 1 và bậc 2 25Hình 18. Mô hình tổ chức các loại animation .26Hình 19. Biểu đồ lớp KeyFrame .27Hình 20.Ví dụ Skinning 28Hình 21. Thành phần trong một nhân vật .29Hình 22. Hạn chế kỹ thuật SSD .30Hình 23. Sử dụng kỹ thuật SSD .31Hình 24. Sử dụng kỹ thuật SBS .31Hình 25. Sơ đồ chuyển trục tọa độ .32vi Hình 26. Mô hình tổ chức khung xương 34Hình 27. Demo key-frame .37Hình 28. Demo Skinning .38vii [...]... engine đó là: quản lí tài nguyên và các chuyển động của đối tượng Trong các phần mềm, việc quản lí tài nguyên luôn được xem xét và 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ản lí tà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 và cũng để... vật thể), 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,... chế cấp phát và 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 lí và 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 1 Ngoài phần... thành phần của Quản lý 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 lý 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... luận Xây dựng Game Engine đa nền tảng – Quản lý khung cảnh” - Trương Đức Phương - Hiệu ứng ánh sáng và vật liệu là module mở rộng các thành phần của Quản lý khung cảnh để tạo các hiệu ứng về ánh sáng, vật liệu, và đổ 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à vật liệu” - Bùi Hoàng Khánh - Mô phỏng tự nhiên là module mở rộng các thành... 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, và tài nguyên mà game sẽ tiêu tốn bao nhiêu để có thể quản lý tài nguyên trong máy mình một cách hợp lý nhất Đó mới chỉ đơn thuần là về phía người chơi, vấn đề quan trọng và nặng nhọc nhất lại thuộc về phía những người viết game Game dù có hay và hấp dẫn... 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á... 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. .. 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 Trong module quản lí tà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, và 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ừ . NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆ Hoàng Tuấn HưngXÂ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ƯỢNGKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ. NỘITRƯỜNG ĐẠI HỌC CÔNG NGHỆHoàng Tuấn HưngXÂ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ƯỢNGKHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ