Đang tải... (xem toàn văn)
Tài liệu tham khảo 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Ộ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 KHỐ 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 ĐẠ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 KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: TS Nguyễn Việt Hà Cán đồ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 thầy cô 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 thầy cô Bộ môn Công nghệ Phần mềm giúp đỡ trưởng thành 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 kinh nghiệm trình nghiên cứu làm khố luận Tơi xin gửi lời cảm ơn tới bạn lớp K50CD, K50CNPM ủng hộ, khuyến khích tơi suốt q trình học tập trường Và 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, người bên cạnh lúc tơi khó khăn nhất, giúp tơi vượt qua khó khăn học tập sống Hà Nội, ngày 10 tháng 05 năm 2009 Sinh viên Hoàng Tuấn Hưng i TĨM TẮT Ngày nay, ngành cơng nghiệp Game đà phát triển nhanh chóng song song với việc phát triển phần cứng Game engine cơng cụ hữu ích cho việc phát triển Game, nhà phát triển bắt tay vào làm Game từ đầu vất vả nhiều công sức Với Game engine cơng việc trở nên đơn giản nhanh nhiều, cung cấp API cho người phát triển Game sử dụng tạo hiệu ứng cách nhanh chóng Khóa luận trình bày tổng quan kiến trúc Game engine mà xây dựng chi tiết vào hai thành phần quản lí tài nguyên Game chuyển động đối tượng Phần đầu giới thiệu cách tổng quan hệ thống, thành phần có Game engine, thiết kế cho thành phần Phần thứ hai khóa luận dành để giới thiệu tài nguyên có Game engine, tầm quan trọng việc quản lí tài nguyên cho hệ thống Đặc biệt khóa luận trình bày cách tổ chức quản lí tài nguyên cách hiệu Phần thứ ba khóa luận giới thiệu chuyển động đối tượng Game, kỹ thuật để tạo loại chuyển động cho đối tượng cách triển khai kỹ thuật vào Game engine Phần cuối tổng kết kết đạt khóa luận, vấn đề tồn hướng phát triển đề tài ii MỤC LỤC MỞ ĐẦU Chương 1.ĐẶT VẤN ĐỀ 1.1.Bối cảnh nghiên cứu .3 1.2.Mục tiêu 1.3.Giới thiệu chung .4 Chương 2.KIẾN TRÚC TỔNG THỂ .6 2.1.Các liệu 2.2.Giao tiếp với hệ điều hành 2.3.Render Engine 2.3.1.Khái quát Render Engine 2.3.2.Kiến trúc Render Engine 10 2.4 Các thành phầ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 GEM 12 3.3 Liên kết thành phần .14 3.4 Các thành phần 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 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 .25 4.3.1.3 Nội suy bậc .25 4.3.1.4.Triển khai kỹ thuật key-frame 25 4.3.2.Kỹ thuật skinning 28 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 iii 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 38 Chương 6.KẾT LUẬN 39 6.1.Kết đạt 39 6.2.Định hướng tương lai 39 PHỤ LỤC 40 TÀI LIỆU THAM KHẢO .44 iv 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 v DANH MỤC CÁC HÌNH VẼ BẢNG BIỂU Hình Kiến trúc phân tầng GEM Hình Kiến trúc tổng thể Hình Biểu đồ lớp thành phần kiểu liệu .7 Hình Quá trình điều phối event Hình Kiến trúc phân tầng Render Engine 10 Hình Biểu đồ gói Render Engine .10 Hình Mơ hình quan hệ với thành phần khác 12 Hình 8.Ví dụ Mesh Bank 13 Hình Mơ hình liên kết với thành phần khác .14 Hình 10 Các thành phần 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 bậc 25 Hình 18 Mơ hình tổ chứ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 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 vi vii MỞ ĐẦU Trong thời đại công nghệ thông tin nay, sản phẩm công nghệ ngày chịu đánh giá khắt khe từ phía người dùng, đặc biệt sản phẩm Game nhận nhiều đánh giá từ phía game thủ, người chơi bình thường Ngành cơng nghiệp game nói bùng nổ, với tốc độ phát triển đến chóng mặt, nhiều game hay hấp dẫn đời thời gian qua Đằng sau Game phát triển tiếng có Game Engine Game engine công cụ hỗ trợ, middleware giúp người phát triển viết game cách nhanh chóng, đơn giản đồng thời cung cấp khả tái sử dụng mã nguồn cao phát triển nhiều game từ game engine Tại Việt Nam, ngành công nghiệp Game phát triển đa số phát hành Game chủ yếu, việc xây dựng Game Engine gần chưa có Đây lĩnh vực tiềm năng, hứa hẹn phát triển nhanh Việt Nam thời gian tới Từ xu hướng phát triển trên, khóa luận tập trung nghiên cứu xây dựng Game engine để phát triển Việt Nam Hiện Game engine tiếng nhiều, nhiên giá thành Game engine nhỏ, nhóm phát triển muốn xây dựng Game engine phục vụ cho người đam mê làm Game khơng đủ tài để mua Game engine thương mại Khóa luận tập trung sâu vào hai thành phần Game engine là: quản lí tài ngun chuyển động đối tượng Trong phần mềm, việc quản lí tài ngun ln xem xét cân nhắc cẩn thận để quản lí cách hiệu nhất, đặc biệt Game vấn đề cấp thiết hết Một Game muốn phát triển 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 máy tính người chơi để tăng tốc cho chương trình Cần có chế cấp phát giải phóng nhớ cách hiệu Trong Game phải có đối tượng chuyển động, cần có cách thức phương pháp để quản lí tạo nhân vật có chuyển động Khóa luận tập trung vào nghiên cứu kỹ thuật để tạo chuyển động cho nhân vật chuyển động ngày giống với chuyển động người, tạo hiệu ứng tốt cho Game ... 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 KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công... ? ?Xây dựng Game Engine đa tảng –Mô tự nhiên” - Trần Thái Dương - Chuyển động đối tượng module mở rộng thành phần Quản lý khung cảnh, thực trình nội suy mơ hình chuyển động ( thường nhân vật game. .. nghiên cứu xây dựng Game engine để phát triển Việt Nam Hiện Game engine tiếng nhiều, nhiên giá thành Game engine nhỏ, nhóm phát triển muốn xây dựng Game engine phục vụ cho người đam mê làm Game khơng