Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 51 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
51
Dung lượng
0,95 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Hoàng Khánh XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG HIỆU ỨNG ÁNH SÁNG VÀ VẬT LIỆU 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 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CƠNG NGHỆ Bùi Hồng Khánh XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG HIỆU ỨNG ÁNH SÁNG VÀ VẬT LIỆU 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: ThS Vũ Quang Dũng HÀ NỘI – 2009 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Lời tơi xin bày tỏ lịng biết ơn chân thành tới thầy cô giáo Trường Đại học Công Nghệ, Đại học Quốc Gia nói chung thầy mơn cơng nghệ Phần mềm nói riêng Trong suốt thời gian học trường, thầy cô ln tận tình dạy dỗ, bảo để tơi có kết ngày hơm Đặc biệt, xin chân thành cảm ơn giảng viên, thạc sĩ Vũ Quang Dũng Cảm ơn thầy định hướng, nhận xét quý báu động viên kịp thời thầy giúp tơi hồn thành khóa luận Tơi xin cảm ơn phịng thí nghiệm Toshiba – Coltech tạo điều kiện cho tơi có mơi trường làm việc q trình thực khóa luận Cuối tơi xin bày tỏ lịng biết ơn sâu sắc tới gia đình bạn bè, người ln động viên, giúp đỡ vật chất lẫn tinh thần suốt năm tháng qua Hà Nội, ngày 19 tháng 05 năm 2009 Sinh viên Bùi Hoàng Khánh i LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TĨM TẮT Sự phát triển cơng nghệ mơ giải trí, ngày có nhiều ứng dụng đồ họa trò chơi 3D xây dựng nhằm phục vụ mục đích nghiên cứu, mơ giải trí… Cùng với đó, cơng nghệ phần cứng phát triển nhanh, đặc biệt phần cứng xử lý đồ họa lập trình ngơn ngữ lập trình phần cứng Tuy nhiên, để xây dựng ứng dụng đồ họa trò chơi 3D đảm bảo yêu cầu: hỗ trợ dải phần cứng phần mềm (cụ thể hệ điều hành) lớn, có khả lựa chọn API đồ họa mức thấp (OpenGL, OpenGL ES hay DirectX), dễ d àng quản lý phát triển tài nguyên; ứng dụng xây dựng từ game engine, không phát triển từ nguyên thủy Xuất phát từ thực tế đó, khóa luận tập trung nghiên cứu xây dựng hệ thống Game Engine hỗ trợ xây dựng ứng dụng đồ họa trò chơi 3D nhiều tảng khác Hệ thống Game Engine xây dựng cung cấp giao diện lập trình mức cao Khi phát triển ứng dụng đồ họa 3D, người lập trình khơng cần phải quan tâm đến q trình quản lý tài nguyên, xử lý đồ họa mức thấp bên Thay vào đó, họ cần tập trung vào quản lý mức lơgíc thành phần ứng dụng, thêm thành phần dựa thành phần sở hệ thống cung cấp Nội dung khóa luận tập trung nghiên cứu vấn đề sau: - Môi trường phát triển hệ thống Game Engine ứng dụng đồ họa trò chơi 3D, gồm tảng phần cứng, phần mềm, công nghệ đồ họa mức thấp (như OpenGL, OpenGL ES, DirectX) - Thiết kế xây dựng hệ thống đồ họa có cấu trúc tương tác với người dùng - Nghiên cứu triển khai kỹ thuật tạo hiệu ứng ánh sáng khung cảnh 3D ii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI CẢM ƠN i TÓM TẮT ii MỤC LỤC iii BẢNG CÁC TỪ VIẾT TẮT v DANH MỤC HÌNH VẼ vi DANH MỤC BẢNG BIỂU viii MỞ ĐẦU Chương 1: TỔNG QUAN VỀ GEM 1.1 Khái niệm Game Engine 1.2 Mơ hình GEM .3 1.2.1 Các đặc điểm GEM 1.2.2 Kiến trúc tổng thể 1.2.2.1 Thành phần Cấu trúc liệu 1.2.2.2 Thành phần Giao tiếp với Hệ điều hành 1.2.2.3 Thành phần Render Engine 1.2.2.4 Các thành phần lại Chương 2: CƠ SỞ LÝ THUYẾT 2.1 Ánh sáng đồ họa máy tính 2.1.1 Các thành phần ánh sáng 2.1.2 Các mơ hình tạo bóng 11 2.2 Đổ bóng .12 2.2.1 Bóng đối tượng khung cảnh 12 2.2.2 Phương pháp đổ bóng 12 2.3 Đối tượng có bề mặt phức tạp 13 2.3.1 Đối tượng với mạng lưới nhiều đa giác 13 2.3.2 Kỹ thuật sử dụng đồ vector pháp tuyến .13 2.3.3 Không gian Texture 14 iii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương 3: MƠ HÌNH ĐỀ XUẤT 16 3.1 Các yêu cầu chung mô đun 16 3.2 Các thành phần mô đun 17 Chương 4: THIẾT KẾ CHI TIẾT 19 4.1 Chiếu sáng 19 4.1.1 Vật liệu 19 4.1.2 Chiếu sáng mơ hình OpenGL cung cấp .20 4.1.3 Chiếu sáng mơ hình tự định nghĩa .22 4.1.3.1 Lớp DLightSceneNode 22 4.1.3.2 Sử dụng DLightSceneNode 25 4.2 Hiệu ứng đổ bóng .27 4.3 Hiệu ứng Bump 30 Chương 5: THỰC NGHIỆM 34 5.1 Thực nghiệm chương trình .34 5.1.1 Phương pháp đánh giá 34 5.1.2 Kết đánh giá 34 5.2 Demo chương trình 35 KẾT LUẬN 37 Kết luận 37 Hướng phát triển 37 PHỤ LỤC 38 TÀI LIỆU THAM KHẢO a iv LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com BẢNG CÁC TỪ VIẾT TẮT Ký hiệu Từ tiếng Anh Giải thích CPU Central processing unit Đơn vị xử lý trung tâm GPU Graphics processing unit Đơn vị xử lý đồ họa MMORPG Massively multiplayer online role-playing game Trò chơi nhập vai trực tuyến nhiều người chơi SL Shading language Ngơn ngữ tạo bóng SV Shadow volume Vùng giới hạn bóng v LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC HÌNH VẼ Hình 1: Kiến trúc phân tầng GEM Hình 2: Kiến trúc tổng thể GEM Hình 3: Biểu đồ lớp thành phần Các kiểu liệu Hình 4: Quá trình điều phối kiện .6 Hình 5: Kiến trúc phân tầng Render Engine Hình 6: Tác động Ánh sáng đồ họa 3D Hình 7: Vẽ vật thể với sáng Ambient 10 Hình 8: Vẽ vật thể với thành phần Diffuse 10 Hình 9: Vẽ vật thể với thành phần Specular 11 Hình 10: Kết số mơ hình tạo bóng 11 Hình 11: Kết mơ hình ánh sáng Vertex Pixel 12 Hình 12: Mơ hình SV .13 Hình 13: So sánh sử dụng đồ pháp tuyến thiết kế mơ hình 14 Hình 14: Mơ hình liên kết với thành phần khác bên ngồi 16 Hình 15: Các thành phần mô đun Hiệu ứng ánh sáng vật liệu 17 Hình 16: Quá trình Chiếu sáng .19 Hình 17: Lớp Material 20 Hình 18: Lớp LightSceneNode .20 Hình 19: Sơ đồ “bật” nguồn sáng 21 Hình 20: Lớp DLightSceneNode 22 Hình 21: Sơ trạng thái “bật” nguồn sáng động 23 Hình 22: Lớp DLightEffect 24 Hình 23: Ví dụ lớp sử dụng DLightSceneNode .25 Hình 24: Quá trình chiếu sáng hệ thống ánh sáng động 26 vi LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 25: Lớp Shadow 27 Hình 26: Sơ đồ trạng thái vẽ bóng 27 Hình 27: Lớp ShadowEffect 28 Hình 28: Cấu trúc liệu tính tốn Vùng đổ bóng 29 Hình 29: Sơ đồ hoạt động renderShadow() 30 Hình 30: Lớp BumpSceneNode 30 Hình 31: Tính ma trận chuyển từ khơng gian World sang khơng gian Texture 31 Hình 32: Sơ đồ lớp BumpEffect 32 Hình 33: Sơ đồ hoạt động phương thức render() BumpSceneNode .33 Hình 34: Hình hộp sử dụng hiệu ứng bump 36 Hình 35: Trị chơi cờ vua 36 Hình 36: Khung cảnh bên nhà .36 vii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH MỤC BẢNG BIỂU Bảng 1: Dòng card đồ họa GEM hỗ trợ Bảng 2: Bảng đánh giá Thực nghiệm 34 Bảng 3: Bảng đánh giá Thực nghiệm 35 Bảng 4: Bảng đánh giá Thực nghiệm 35 viii LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.2 Hiệu ứng đổ bóng Hình 25: Lớp Shadow Lớp Shadow đặc tả cho bóng đối tượng khung cảnh 3D Thành phần cấu tạo nên lớp Shadow gồm shadowVolume shadowColor Thành phần shadowVolume lưu mạng lưới đa giác vùng giới hạn đổ bóng (SV) Thành phần shadowColor định nghĩa màu bóng Lớp Shadow cung cấp phương thức render() để vẽ bóng Q trình Vẽ bóng thực vẽ SV hai lần vào Stencil Buffer (SB): Hình 26: Sơ đồ trạng thái vẽ bóng 27 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Lần đầu tăng giá trị SB điểm nằm sau mặt trước SV glCullFace(GL_FRONT); glStencilFunc(GL_ALWAYS, 0x0, 0xff); glStencilOp(GL_KEEP, GL_INCR, GL_KEEP); - Lần thứ hai giảm giá trị SB điểm nằm sau mặt sau SV glCullFace(GL_BACK); glStencilFunc(GL_ALWAYS, 0x0, 0xff); glStencilOp(GL_KEEP, GL_DECR, GL_KEEP); Kết điểm nằm vùng đổ bóng có giá trị SB khác Mỗi nút SolidMeshSceneNode đăng ký vẽ bóng gắn với đối tượng Shadow xếp vào ngữ cảnh vẽ ERL_SHADOW_VOLUME thông qua phương thức bindToRenderList() SV tính tốn lại có thay đổi vị trí nút SolidSceneNode gắn với thay đổi nguồn sáng cách gọi phương thức updateShadowVolume() lớp Shadow Như vậy, tốc độ vẽ giảm đáng kể có thay đổi Để khắc phục tình trạng này, thực số cải tiến sau: - - Mỗi nút SolidSceneNode không lưu SV nữa, mà lưu nhiều SV hơn, cụ thể SV tương ứng với nguồn sáng Như vậy, tính lại SV nguồn sáng thay đổi vị trí Chuyển phần tính tốn SV lên cho phần cứng đồ họa (GPU) Shadow gắn ShadowEffect tham chiếu định danh shadow_effectID ShadowParameter parameter Mỗi ShadowEffect đảm nhiệm việc kiểm tra chuyển điểm vơ cực – triển khai file GEMShadow.cgfx, cịn việc xác định mặt nhận sáng hay không thực CPU Hình 27: Lớp ShadowEffect 28 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Với thiết kế ban đầu, mạng lưới (đối tượng thuộc lớp Mesh) lưu thông tin đỉnh (Xem chi tiết tổ chức lưu trữ mô đun Quản lý tài nguyên) Do đó, việc xác định mặt kề tính tốn SV nhiều thời gian Mỗi đối tượng Mesh lưu thêm thông tin mặt Face (lưu đỉnh tạo nên mặt đó) cạnh Egde (lưu hai mặt kề hai đỉnh tạo nên cạnh) [2][6]; thông tin khởi tạo phương thức lớp Mesh tương ứng calculateFaces() calculateEdges() Hình 28: Cấu trúc liệu tính tốn Vùng đổ bóng File GEMShadow.cgfx triển khai chương trình vertex shader thực việc chuyển đỉnh vIn(x, y, z, w) đến vô cực theo hướng từ ánh sáng đến đỉnh thành phần w vIn Chương trình vertex shader triển khai GEMShadow.cgfx float4 shadowVP(float4 vIn) : POSITON { float4 vOut; if(vIn.w ==0) /*chuyển vô cực theo hướng ánh sáng*/ vOut = mul(gModelViewProjMatrix, vIn.xyz * gLightPos.w - gLightPos.xyz); else vOut = vIn; return vOut; } Lớp SolidMeshSceneNode cần cung cấp phương thức vẽ bóng renderShadow() Phương thức hoạt động sau (Hình 29): 29 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Kiểm tra xem đối tượng có vẽ bóng khơng? Kiểm tra đối tượng có nằm vùng chiếu sáng nguồn sáng - Kiểm tra xem có cần tính lại SV hay khơng? Dựa vào cờ trạng thái làm thay đổi ma trận model nguồn sáng đối tượng - Cập nhật tham số cho parameter Cập nhật tham số cho shadow_effect_id Vẽ bóng: vẽ vùng đổ bóng vào SB Hình 29: Sơ đồ hoạt động renderShadow() 4.3 Hiệu ứng Bump Hình 30: Lớp BumpSceneNode 30 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lớp BumpSceneNode thừa kế từ lớp sở SolidSceneNode Lớp BumpSceneNode có thêm thành phần normalSampler Texture lưu đồ pháp tuyến, bump_effectID tham chiếu định danh đến đối tượng BumpEffect, parameter đối tượng BumpParameter chứa tham số cập nhật cho BumpEffect (bản đồ pháp tuyến normalSampler, texture bề mặt textureSampler) Do đồ pháp tuyến lưu khơng gian texture, vậy, cần phải tính ma trận TBN chuyển từ khơng gian World sang khơng gian Texture (Hình 31) Ma trận TBN tính cho mặt vật thể dựa vào thông tin tọa độ texture (texcoordinate) tọa độ đỉnh mặt (vertex) [9] Hình 31: Tính ma trận chuyển từ không gian World sang không gian Texture Để tăng tốc độ vẽ, thực biện pháp sau: - - Chỉ tính thành phần pháp tuyến normal phương thức calculateNormal(), tiếp tuyến tangent phương thức calculateTangent() CPU Cịn thành phần phó pháp tuyến binormal tính GPU, theo cơng thức binormal = crossProduct(normal, tangent) (tích có hướng hai vector) Giảm số lượng lời gọi hàm vẽ hệ thống cách vẽ toàn vật thể lời gọi thay vẽ mặt vật thể 31 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lớp BumpEffect dẫn xuất từ lớp DLightEffect, triển khai tính tốn hiệu ứng bump file GEMBump.cgfx Quá trình khởi tạo đối tượng thuộc lớp kèm thêm trình cập nhật động danh sách using_IDs lớp DLightSceneNode Như vậy, thông số nguồn sáng đối tượng cập nhật trình “bật” nguồn sáng lời gọi phương thức updateLightParameter() Phương thức updateEffectParameter() thực cập nhật đồ pháp tuyến texture bề mặt Hình 32: Sơ đồ lớp BumpEffect Trên GPU, triển khai tính toán để tọa hiệu ứng bump từ tham số truyền vào: hướng ánh sáng lightVec, hướng nhìn viewVec, tọa độ texture texCoord, thành phần pháp tuyến N tiếp tuyến T ma trận TBN, đồ pháp tuyến gNormalSampler Trước hết tính thành phần phó pháp tuyến B; sau đó, chuyển lightVec viewVec từ không gian World sang không gian Texture; cuối cùng, thực tính tốn màu sắc điểm vIn mơ hình ánh sáng Chương trình fragment shader triển khai GEMBump.cgfx float4 bump_PS(float4 vIn) : COLOR { //Lấy thông pháp tuyến vIn từ đồ pháp tuyến float3 normalTex = tex2D(gNormalSampler, texCoord).xyz; normalTex = expand(normalTex); //Tính phó pháp tuyến ma trận TBN float3 B = T.w * cross(N, T.xyz); float3x3 TBN = float3x3(T.xyz, B, N); //Chuyển từ không gian Word sang không gian Texture lightVec = mul(TBN, lightVec); viewVec = mul(TBN, viewVec); return lighting(lightVec, normalTex, viewVec); } 32 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lớp BumpSceneNode cung cấp phương thức vẽ đối tượng sử dụng hiệu ứng bump khung cảnh 3D; phương thức hoạt động sau: - Cập nhật ma trận Model: tính lại ma trận model đối tượng có thay đổi vị trí, kích thước - Tính thành phần pháp tuyến ma trận TBN Tính thành phần tiếp tuyến ma trận TBN Cập nhật tham số cho parameter Cập nhật tham số cho bump_effectID: cập nhật tham số chương trình shader Vẽ đối tượng: trình truyền liệu mạng lưới vào cho chương trình shader - Hình 33: Sơ đồ hoạt động phương thức render() BumpSceneNode 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương 5: THỰC NGHIỆM 5.1 Thực nghiệm chương trình 5.1.1 Phương pháp đánh giá Đây hệ thống xử lý đồ họa nên đánh giá theo tiêu chí: Tốc độ khung hình, chất lượng hình ảnh khối lượng nhớ Trong tốc độ khung hình yếu tố then chốt, định đến tính chân thực hình ảnh tương tác Các thực nghiệm xây dựng khung cảnh 3D từ GEM đánh giá với thay đổi ánh sáng: - Thực nghiệm 1: Đánh giá tốc độ khung hình cho Ứng dụng trị chơi cờ vua 3D (Hình 35) với hai hệ thống ánh sáng xây dựng Thực nghiệm 2: Đánh giá tốc độ khung hình cho tính đổ bóng cho quân cờ Ứng dụng thực nghiệm Thực nghiệm 3: Đánh đánh giá chất lượng hình ảnh tốc độ khung hình với hình lập phương sử dụng hiệu ứng bump (Hình 34) 5.1.2 Kết đánh giá Với thực nghiệm nêu trên, ta có bảng đánh giá sau: Thực nghiệm 1: Do OpenGL triển khai chiếu sáng vertex shader nên tốc độ khung hình cao hơn, chất lượng hình ảnh không mịn triển khai fragment shader (Bảng 2) Đặc biệt, với nguồn sáng spotlight hướng vào trung tâm bàn cờ, bốn đỉnh bốn góc bàn cờ nằm ngồi vùng chiếu sáng – vùng nhỏ kích thước bàn cờ, khung cảnh không chiếu sáng với triển khai OpenGL; vậy, kết hình ảnh bị sai Bảng 2: Bảng đánh giá Thực nghiệm Số nguồn sáng Hệ thống Ánh sáng dùng OpenGL 224 217 209 192 184 Hệ thống ánh sáng tự định nghĩa 204 179 169 153 138 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Thực nghiệm 2: Thực nghiệm đánh giá khung cảnh gồm bàn cờ có 32 quân, nguồn sáng triển khai theo fragment shader Với nguồn sáng thay đổi vị trí, vùng đổ bóng SV tính lại cho tồn bàn cờ, nên tốc độ khung hình giảm đáng kể Bảng 3: Bảng đánh giá Thực nghiệm Nguồn sáng cố định Nguồn sáng thay đổi 129 95 Tốc độ khung hình/giây Thực nghiêm 3: Do khơng thiết kế mơ hình chi tiết tương ứng, nên thực nghiệm so sánh kết mơ hình lập phương trơn có dán texture với mơ hình lập phương sử dụng hiệu ứng bump Bảng 4: Bảng đánh giá Thực nghiệm Số khung hình/giây Khơng sử dụng bump 198 Sử dụng bump 167 Chất lượng hình ảnh 5.2 Demo chương trình Dưới số hình ảnh minh họa số khung cảnh 3D xây dựng từ GEM 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 34: Hình hộp sử dụng hiệu ứng bump Hình 35: Trị chơi cờ vua Hình 36: Khung cảnh bên nhà 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com KẾT LUẬN Kết luận Hệ thống Game Engine cung cấp giao diện để xây dựng khung cảnh 3D bao gồm đối tượng, hình ảnh nguồn sáng cách tự động với tính mơ hình hóa đối tượng, hiệu ứng tự nhiên nhân vật, nước, lửa, khói, ánh sáng, địa hình Người dùng dễ dàng dựng nên khung cảnh 3D quan tâm đến trình quản lý tài nguyên, trình xử lý đồ họa mức thấp Thay vào người dùng thiết kế sẵn mơ hình đối tượng bố trí đối tượng khung cảnh theo ý muốn Mô đun xử lý hiệu ứng ánh sáng vật liệu cung cấp: - - Các mơ hình tạo bóng khác mà thay đổi nhiều mã nguồn chương trình Người dùng cần định nghĩa lại chương trình shader viết ngơn ngữ Cg Tạo bóng cho đối tượng khung cảnh 3D Hỗ trợ việc thiết kế đối tượng có bề mặt phức tạp, giảm khơng gian nhớ lưu trữ đối tượng Ngồi ra, với thiết kế theo hướng hướng đối tượng có tính mở, người dùng dễ dàng định nghĩa lớp để biểu diễn kiểu đối tượng cách kế thừa từ lớp có sẵn hệ thống Bên cạnh kết đạt hệ thống tồn số hạn chế Tốc độ xử lý đồ họa tính tốn bóng cịn thấp với khung cảnh có nhiều chuyển động Chưa triển khai đầy đủ mơ hình tạo bóng có – triển khai mơ hình Phong Lambert Hướng phát triển Trong thời gian tới chúng tơi tiếp tục hồn thiện hệ thống GEM theo hướng xây dựng thành phần thiếu: âm thanh, vật lý kiểm tra va chạm, trí tuệ nhân tạo Với mơ đun hiệu ứng ánh sáng vật liệu này, triển khai thêm nhiều mơ hình tạo bóng (như Blinn, Fresnel), hiệu ứng ánh sáng khác sương, phản xạ Bên cạnh đó, cần phải tăng tốc độ xử lý tính tốn bóng vật thể với việc kết hợp phương pháp tính đổ bóng khác 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC A Bảng thuật ngữ Thuật ngữ Ý nghĩa Ambient Thành phần phản xạ ánh sáng ánh sáng đến từ hướng Bump Hiệu ứng sử dụng đồ pháp tuyến để tạo nên bề mặt lồi lõm vật thể Diffuse Thành phần phản xạ khuếch tán Height map Ảnh bitmap lưu thông tin độ cao pixel Dùng để tính vector pháp tuyến cho pixel dựa vào độ cao pixel xung quanh Lighting Q trình chiếu sáng Normal Vectơ vng góc với tiết diện mặt bề mặt điểm P, dùng để tính tốn yếu tố phản xạ ánh sáng bề mặt Normal map Ảnh bitmap lưu thông tin vector pháp tuyến pixel Material Định nghĩa nguyên liệu làm nên đối tượng, quy định tính chất phản xạ ánh sáng bề mặt đối tượng Nguyên liệu gồm thành phần màu ambient, diffuse, specular, độ bóng màu nguyên thủy Mesh Mạng lưới đa giác biểu diễn mơ hình vật thể Model Các mơ hình đối tượng dựng nên từ mạng lưới đa giác Shader Tính tốn màu sắc bề mặt đối tượng hay cịn gọi tạo bóng Specular Thành phần phản xạ gương Texture Ảnh bitmap sử dụng để đắp lên bề mặt đối tượng Vertex Điểm không gian chiều 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com B Bảng biểu tượng Biểu tượng Tên Ý nghĩa Action Đặc tả hành động Aggregation Đặc tả quan hệ kết tập Call message Đặc tả lời gọi, phương thức Choice Đăc tả lựa chọn theo điều kiện Class Đặc tả lớp Composition Đặc tả quan hệ hợp thành Final state Đặc tả trạng thái kết thúc Fork Đặc tả giả trạng thái chia trạng thái thành nhiểu trạng thái Dependency Đặc tả quan hệ phụ thuộc Genaralization Đặc tả quan hệ tổng quán hóa Initial state Đặc tả trạng thái bắt đầu Import Đặc tả quan hệ sử dụng Join Đặc tả giả trạng thái kết hợp nhiều trạng thái 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Lifetime Đặc tả vòng đời đối tượng Note Đặc tả ghi Merge Đặc tả quan hệ trộn Package Đặc tả gói State Đặc tả trạng thái Submachine State Đặc tả trạng thái tham chiếu đến nhiều trạng thái khác 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU THAM KHẢO [1] Ulf Assarsson, Tomas Akenine-Möller A Geometry-based Soft Shadow Volume Algorithm using Graphics Hardware [2] Ulf Assarsson, Michael Dougherty, Michael Mounier, Tomas Akenine-Möller An Optimized Soft Shadow Volume Algorithm with Real-Time Performance [3] Hervé Brönnimann Designing and implementing a general purpose halfedge data structure [4] Karel Driesen, Urs Hölzle The Direct Cost of Virtual Function Calls in C++ ACM 1995 [5] Steven Goodwin Cross-Platform Game Programming Charles River 2005 [6] NVIDIA Group GPU Gems 1, 2, [7] NVIDIA Group Cg tutorial [8] Khronos Group OpenGL Specifcation Version 2.0 [9] Jérôme JOUVIE Lesson 8: Tangent Space [10] Jonathan Kreuzer Object Space Normal Mapping with Skeletal Animation Tutorial [11] Dan Pilone, Neil Pitman UML 2.0 in a Nutshell O'Reilly 2005 [12] Richard S Wright, Michael Sweet OpenGL Super Bible a LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... khóa luận ? ?Xây dựng Game Engine đa tảng – Quản lý khung cảnh” - Trương Đức Phương - Hiệu ứng ánh sáng vật liệu mô đun mở rộng thành phần Quản lý khung cảnh để tạo hiệu ứng ánh sáng, vật liệu Mô...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Bùi Hoàng Khánh XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG HIỆU ỨNG ÁNH SÁNG VÀ VẬT LIỆU KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thông... tài nguyên; ứng dụng xây dựng từ game engine, không phát triển từ nguyên thủy Xuất phát từ thực tế đó, khóa luận tập trung nghiên cứu xây dựng hệ thống Game Engine hỗ trợ xây dựng ứng dụng đồ