38
Hình 28. Demo Skinning
Để có thể tạo ra được animation bằng kỹ thuật skinning thì thông tin về model sẽ được quản lí bằng khung xương và mesh phủ bên ngoài. Các nhà thiết kế đã thiết kế sẵn các animation và xuất ra một định dạng nào đó bằng các chương trình như: Maya, 3d Max… animation được tạo ra bằng việc thay đổi khung xương – tức là thay đổi các trọng số kết với với ma trận biến đổi của các bone. Các tham số này sẽ thay đổi theo thời gian, mỗi thời điểm thì trọng số sẽ khác nhau, từ đó dùng các kỹ thuật nhân trọng số với ma trận biến đổi các bone kết hợp với mesh cho model đó tạo ra được các frame khác nhau tạo thành animation.
Kết quả thực nghiệm:
Cấu hình máy chạy demo: như trên Số khung hình /1s đạt được: ~30
39
Chương 6.KẾT LUẬN
6.1.Kết quả đạt được
Khóa luận tốt nghiệp đã nêu được 3 phần rõ ràng:
- Phần đầu: Chương 1, 2, 3 trình bày tổng quan về hệ thống của nhóm, phát triển một cộng cụ giúp phát triển game một cách dễ dàng và nhanh chóng. - Phần thứ 2: Chương 4 khóa luận đã nêu các giải pháp để quản lí các tài
nguyên trong game engine, và các thành phần tài nguyên có trong game engine, cách sử dụng các tài nguyên đó.
- Phần 3: Chương 5 khóa luận đã trình bày các kỹ thuật để tạo chuyển động cho các đối tượng trong game.
Trong quá trình thực hiện khóa luận, chúng tôi thực hiện xây dựng một hệ thống phát triển game đến thời điểm hiện tại đã có thể tạo ra được một khung cảnh 3D, bên trong có các vật thể như: bàn, ghế, tường, nồi, bếp, … và các hiệu ứng như: ánh sáng, đổ bóng, hiệu ứng mặt nước, lửa, chuyển động. Đề tài có tính thực tiễn rất cao đặc biệt tính thương mại. Ở Việt Nam, việc phát triển game engine mới chỉ đang bắt đầu và hứa hẹn một tương lai tươi sáng cho ngành công nghiệp game.
6.2.Định hướng tương lai
Hiện nay thị trường game đang rất phát triển.Tuy nhiên việc tạo ra các game engine ở Việt Nam còn đang bỏ ngỏ, vì vậy nhóm mong muốn phát triển được một game engine tại Việt Nam với giá thành rẻ hơn rất nhiều so với các game engine nước ngoài. Chúng tôi sẽ tiếp tục hoàn thiện và năng cấp tính năng cho hiệu ứng chuyển động cho các nhân vật của mình, để đem lại cho người chơi những trải nghiệm thú vị. Sắp tới nhóm cũng sẽ phát triển theo các tính năng cao cấp khác như: âm thanh, xử lý va chạm vật lí, … và đưa các hiệu ứng chuyển động cho nhân vật vào cho GPU để tính toán, giảm tải cho CPU và GPU cũng chuyên dụng hơn cho việc tính toán đồ họa.
Do điều kiện và thời gian nghiên cứu còn nhiều hạn chế nên khóa luận chắc chắn không tránh khỏi những thiếu sót. Rất mong nhận được sự đóng góp ý kiến của các thầy cô giáo, bạn bè và những người quan tâm.
40
PHỤ LỤC
A. Bảng thuật ngữ
Thuật ngữ Ý nghĩa
Ambient Tính chất phản xạ ánh sáng đối với ánh sáng đến từ mọi hướng.
AnimatedMesh Giống như mesh nhưng thay vì mô tả một đối tượng tĩnh không biến đổi, animated mesh mô tả một đối tượng biến đổi với nhiều hoạt động khác nhau.
animation Các loại chuyển động
bank Là nơi lưu trữ các tài nguyên
bone Là các đoạn xương được liên kết với nhau bằng khớp nối Camera Đối tượng mô phỏng một khung nhìn
Diffuse Tính chất phản xạ khuếch tán.
Game Engine Middleware cung cấp một giao diện đơn giản hơn để phát triển game
Height map Ảnh bitmap lưu thông tin về độ cao của từng pixel. Dùng để tính vector pháp tuyến cho từng pixel dựa vào độ cao của nó và các pixel xung quanh.
Joint Khớp nối các xương trong khung xương Key-frame Khung hình cơ sở để xây dựng animation
Material Định nghĩa nguyên liệu làm nên đối tượng, do đó quy định tính chất phản xạ ánh sáng của bề mặt đối tượng. Material gồm ba thành phần là ambient, diffuse và specular
Mesh Là một mạng lưới các đa giác dùng để mô tả hình dạng của vật thể trong không gian 3 chiều.
41
mipmap Là một tập hợp những bức ảnh được tính toán trước và tối ưu hóa đi cùng một texture chính, làm tăng tốc độ render. Mỗi ảnh bitmap của tập mipmap là một phiên bản của
texture chính vẫn được sử dụng khi khung nhìn đủ để render nó ở trạng thái chi tiết đầy đủ, bộ render sẽ chuyển sang ảnh mipmap thích hợp khi texture được nhìn tứ khoảng cách hoặc với kích thước nhỏ hơn
Model Các mô hình đối tượng được dựng nên từ mạng lưới đa giác model Những dạng hình học của một đối tượng
Normal Vectơ vuông góc với tiết diện của mặt bề mặt tại điểm P, dùng để tính toán yếu tố phản xạ ánh sáng của bề mặt. Normal map Ảnh bitmap lưu thông tin về vector pháp tuyến của từng
pixel
openGL Một chuẩn 3d graphic API
pixel Điểm ảnh
Render Là việc từ các dữ liệu về khung cảnh, đối tượng 3D, ta thực hiện các phép biến đổi, các tính toán để đưa ra hình ảnh 2D thu được tại vị trí nhìn ( giống nhau quá trình mắt người hay các camera thu hình ảnh 2D từ môi trường ).
Scene graph Một cấu trúc dữ liệu phân tầng bao gồm sự miêu tả của một cảnh vật được render
sketelon Khung xương của nhân vật, đối tượng Specular Tính chất phản xạ gương.
Texture Là một hoặc một loạt các bức ảnh dùng để tăng độ chi tiết cho các đối tượng.
42
B. Bảng biểu tượng
Biểu tượng Tên Ý nghĩa
Package Đặc tả một gói Class Đặc tả một lớp Aggregation Composition Genaralization Dependency Import Access Merge Note Active Đặc tả một hành động
43
Initial state Đặc tả trạng thái bắt đầu
Final state Đặc tả trạng thái kết thúc
Choice Đăc tả lựa chọn theo điều
kiện
Fork
44
TÀI LIỆU THAM KHẢO
[1] http://www.unrealtechnology.com/features.php?ref=terms
[2] http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter01.html [3] http://http.developer.nvidia.com/CgTutorial/cg_tutorial_chapter06.html [4] http://tfc.duke.free.fr/coding/md2-specs-en.html
[5] http://en.wikipedia.org
[6] A.Mohr and M. Gleicher. Deformation sensitive deformation. Technical Report 4/7/2003, University of Wisconsin, Madison, 2003.
[7] BLOOMENTHAL, J. 2002. Medial-based vertex deformation.
[8] J. P. Lewis, M. Cordner, and N. Fong. Pose space deformation: a unified approach to shape interpolationand skeleton-driven deformation.
[9]Jonathan Kreuzer. Object Space Normal Mapping with Skeletal Animation Tutorial.
[10] Karel Driesen and Urs Hölzle, The Direct Cost of Virtual Function Calls in C++, 1995 ACM.
[11] KAVAN, L., AND ˇZ ´ARA, J. 2003. Real-time skin deformation with bones blending.
[12] Khronos Group. OpenGL Specifcation Version 2.0.
[13] Merry, P. Marais, and J. Gain. Animation space: A truly linear framework for character animation.
[14] Mohr, L. Tokheim, and M. Gleicher. Direct manipulation of interactive character skins.
[15] NVIDIA. GPU Gems 1, 2, 3.
[16] P. G. Kry, D. L. James, and D. K. Pai. Eigenskin: real time large deformation character skinning in hardware.
[17] P.-P. J. Sloan, C. F. Rose, III, and M. F. Cohen.Shape by example.
[18] Richard S. Wright, Michael Sweet. OpenGL Super Bible.
[19] X. C. Wang and C. Phillips. Multi-weight enveloping: least-squares approximation techniques for skin animation.