1. Trang chủ
  2. » Giáo Dục - Đào Tạo

XÂY DỰNG GAME ENGINE đa nền TẢNG mô PHỎNG tự NHIÊN

55 11 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 55
Dung lượng 1,64 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Trần Thái Dương XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG MƠ PHỎNG TỰ NHIÊN KHĨA 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Ệ Trần Thái Dương XÂY DỰNG GAME ENGINE ĐA NỀN TẢNG MƠ PHỎNG TỰ NHIÊN 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 Trước hết xin gửi lời cảm ơn chân thành tới Thạc sĩ Vũ Quang Dũng người trực tiếp hướng dẫn giúp đỡ suốt q trình hồn thành khóa luận Tơi xin bày tỏ lịng biết ơn sâu sắc đến thầy giảng dạy suốt bốn năm học vừa qua, cung cấp cho kiến thức quý báu phương pháp tư đắn để có tảng vững bước đường Tơi xin gửi lời cảm ơn tới bạn nhóm làm khóa luận giúp đỡ tơi thực khóa luận Tơi xin cảm ơn phịng thí nghiệm Toshiba giúp đỡ vào tạo cho môi trường làm việc học tập q trình thực khóa luận Và lời cuối cùng, tơi xin tỏ lịng biết ơn sâu sắc đến gia đình, bạn bè người thân bên cạnh động viên, ủng hộ tơi lúc 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 22 tháng 05 năm 2009 Sinh viên Trần Thái Dương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÓM TẮT Ngày nay, Game Engine thành phần thiếu quy trình phát triển trị chơi điện tử Sức mạnh trị chơi phụ thuộc vào sức mạnh Game Engine sử dụng để phát triển Trong khóa luận này, tơi giới thiệu sơ lược kiến trúc chung Game Engine phát triển nằm dự án “Xây dựng Game Engine đa tảng” chương chương Chương 3, dành để trình bày phương pháp triển khai kĩ thuật sử dụng để cung cấp khả mô tượng tự nhiên cho Game Engine, dựa mơ hình quản lí khung cảnh 3D trình bày khóa luận bạn Trương Đức Phương mơ hình quản lí tài ngun trình bày khóa luận bạn Hồng Tuấn Hưng Cuối khóa luận đưa số thơng tin chạy thử ứng dụng demo cho kĩ thuật triển khai Qua đánh giá bước đầu hiệu ứng dụng kĩ thuật Cuối đưa định hướng sau hồn thành khóa luận LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC Chương Đặt vấn đề 1.1 Bối cảnh nghiên cứu 1.2 Mục tiêu 1.3 Giới thiệu chung Chương Kiến trúc tổng thể 2.1 Thành phần Các kiểu liệu 2.2 Thành phần Giao tiếp với hệ điều hành 2.3 Thành phần Render Engine 2.3.1 Khái quát Render Engine 2.3.2 Kiến trúc Render Engine 2.4 Các thành phần lại Chương Mô Tự nhiên 10 3.1 Khái Quát 10 3.2 Mô mặt nước 11 3.2.1 Thiết kế 11 3.2.2 Thiết kế chức 14 3.2.3 Triển khai lớp đề xuất: 21 3.3 Hệ thống hạt 24 3.3.1 Thiết kế 25 3.3.2 Thiết kế chức 26 3.3.3 Triển khai lớp đề xuất 28 3.4 Địa hình 31 3.4.1 Thiết kế 33 3.4.2 Thiết kế chức 34 3.4.3 Triển khai lớp đề xuất 38 Chương Kết luận 42 4.1 Kết 42 4.1.1 Mô mặt nước 42 4.1.2 Hệ thống hạt 43 4.1.3 Địa hình 44 4.2 Hướng phát triển 44 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ể Hình 3: Sơ đồ lớp thành phần Các kiểu liệu Hình 4: Quá trình điều phối event Hình 5: Kiến trúc phân tầng Render Engine Hình 6: Biểu đồ gói Render Engine Hình 7: Sơ đồ lớp package Mô Mặt Nước 12 Hình 8: Quá trình hoạt động package Mơ Phỏng Mặt Nước 13 Hình 9: Sơ đồ luồng thực chức Tiền khởi tạo 14 Hình 10: Sơ đồ luồng thực việc khởi tạo đối tượng WaterSceneNode 16 Hình 11: Sơ đồ tạo hiệu ứng tăng giảm cường độ sóng theo thời gian 17 Hình 12: Quá trình render normal map 18 Hình 13: Sơ đồ hoạt động chương trình Render mặt nước 20 Hình 14: Sơ đồ lớp WaterParameters 21 Hình 15: Sơ đồ triển khai lớp WaterEffect 22 Hình 16: Sơ đồ triển khai lớp WaterSceneNode 23 Hình 17: Thiết kế lớp hệ thống hạt 25 Hình 18: Sơ đồ thực chức Khởi tạo đối tượng ParticleSystemSceneNode 26 Hình 19: Sơ đồ cập nhật vị trí hạt 27 Hình 20: Sơ đồ hoạt động chức Render Hệ thống hạt 28 Hình 21: Sơ đồ triển khai Lớp ParticleParameters 28 Hình 22: Sơ đồ triển khai lớp ParticleEffect 29 Hình 23: Sơ đồ quan hệ Lớp mô đun Hệ thống hạt 31 Hình 24: Kiến trúc mơ đun Địa hình 33 Hình 25: Sơ đồ hoạt động mơ đun Địa hình 34 Hình 26: Luồng thực chức khởi tạo 35 Hình 27: Sơ đồ hoạt động chức Cập nhật Clipmap 36 Hình 28: Sơ đồ hoạt động chương trình Render Block 37 Hình 29: Triển khai Lớp TerrainParameters 38 Hình 30: Lớp TerrainEffect 39 Hình 31: Sơ đồ lớp TerrainSceneNode lớp thành phần 40 Hình 32: Hình ảnh demo hệ thống hạt 43 Hình 33: Hình ảnh chương trình demo Mơ mặt nước 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Bảng thuật ngữ kí hiệu viết tắt (nếu có) Thuật ngữ Ý nghĩa Animated Mesh Là mesh dùng để mô tả đối tượng chuyển động Bounding box Hình hộp bé chứa trọn vẹn đối tượng 3D Bounding Sphere Hình cầu bé chứa trọn vẹn đối tượng 3D clip space không gian tọa độ vertex chiếu lên camera clipmap phương pháp lưu trữ tạm thời phận nguồn liệu có kích thước lớn Cube Map Là tập hợp texture 2D xếp liên tục mặt hình hộp Environment Map Là texture lưu trữ thông tin ánh sáng phản xạ từ mơi trường Thường có dạng cubemap event Là đơn vị truyền thơng liên tiến trình gửi đến Hệ điều hành fragment program chương trình shader xử lí biến đổi pixel Graphic Processor Unit Đơn vị xử lí đồ họa, có nhiệm vụ render hình hình ảnh 3D heightfield mảng lưu trữ giá trị độ cao heightmap texture lưu trữ giá trị độ cao bề mặt địa hình local space khơng gian riêng đối tượng 3D Massively Multiplayer Trị chơi nhập vai trực tuyến nhiều người Online Role-Playing Game chơi Mesh Mạng lưới đa giác dùng để mô tả hình dạng vật thể khơng gian chiều Message System Là hệ thống quản lí thơng điệp trao đổi tiến trình Hệ điều hành normal map texture lưu giữ giá trị vector pháp tuyến bề mặt Occlusion culling Thực cắt bỏ đối tượng bị chắn đối tượng khác vùng quan sát Viết tắt GPU MMORPG LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com offscreen render render hình ảnh tạo khơng vẽ lên hình Render Tái tạo hình ảnh phản chiếu 2D đối tượng 3D camera shader Là tập lệnh cho GPU dùng để render hiệu ứng shading language ngôn ngữ dùng để triển khai shader cho GPU Texture Các ảnh dùng để dán lên đối tượng 3D nhằm làm tăng độ chi tiết cho đối tượng Vertex Đỉnh không gian 3D vertex program chương trình shader xử lí biến đổi vertex View Frustum Trường quan sát camera View frustum culling Thực cắt bỏ đối tượng nằm vùng quan sát camera world space không gian giới OpenGL LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Mở đầu Hiện nay, với phát triển ngành công nghiệp phần mềm, quy trình phát triển game thay đổi nhiều Thay phát triển game dựa giao diện lập trình đồ họa 3D cấp thấp, người ta thường phát triển Game Engine hệ thống phần mềm trung gian cho quy trình phát triển game Thực tế, ngành công nghiệp phát triển game không đem lại lợi ích lớn kinh tế cho cơng ty phát hành game mà cịn thúc đẩy phát triển phần mềm phần cứng máy tính Đặc biệt thúc đẩy phát triển kĩ thuật xử lí tái tạo thực ảo trở nên chân thực ứng dụng rộng rãi lĩnh vực khác đời sống xã hội giáo dục, y tế Ở Việt Nam nay, MMORPG bùng nổ mạnh mẽ với số lượng người chơi đông đảo thu hút người chơi nhiều đối tượng, lứa tuổi khác Tuy nhiên, người chơi thường phải chơi game phát hành cơng ty nước ngồi game phát hành công ty nước phát triển cơng ty nước ngồi Vì nhóm chúng tơi bắt đầu thực việc tìm hiểu xây dựng Game Engine dành cho việc phát triển MMORPG với mục tiêu mong muốn dần làm chủ công nghệ xây dựng phát triển game Để mơ khung cảnh ngồi trời game, Game Engine phải cung cấp khả mô lại tượng tự nhiên đáp ứng thời gian thực Vì địi hỏi đó, tơi thực khóa luận với mục đích xây dựng mơ đun Mơ Tự nhiên dự án “Xây dựng Game Engine đa tảng” Tuy nhiên, giới hạn thời gian kiến thức, khóa luận tơi diễn giải phương pháp triển khai kĩ thuật mơ địa hình, mặt nước hệ thống hạt Với chức đó, ta tạo khung cảnh 3D trời đơn giản từ Hai chương đầu khóa luận dành để giới thiệu chung Game Engine kiến trúc tổng thể Nội dung phương pháp triển khai kĩ thuật mô đun Mô Tự nhiên trình bày chi tiết chương khóa luận LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Đặt vấn đề 2.1 Bối cảnh nghiên cứu Ngành công nghiệp phát triển game giới phát triển vũ bão Cách 20 năm, game đơn giản cần người nhóm nhỏ người phát triển ngày nay, game đại với đồ họa khả tương tác ấn tượng thường phát triển đội ngũ đơng đảo người thiết kế game, lập trình viên, nghệ sĩ… thời gian ròng rã từ đến ba năm Chính việc game ngày trở nên phức tạp nên nay, game thương mại khơng cịn phát triển từ ngun thủy mà phát triển lên từ game engine Game engine hỗ trợ việc xây dựng game cách nhanh chóng, đơn giản đồng thời cung cấp khả tái sử dụng code cao phát triển nhiều game từ game engine Ở Việt Nam, Game online thực thâm nhập vào thị trường cách năm khoảng thời gian ỏi đó, có số lượng nhà phát hành game lên tới số hàng chục, số game phát hành tương ứng với số lượng Nhưng theo biết, gần tất game online phát hành Việt Nam nhập từ nước ngoài, chủ yếu Trung Quốc Hàn Quốc ( trừ số game nhỏ chơi web đánh bài, đánh cờ ) Một câu hỏi mà có lẽ tất người chơi game trăn trở “bao chơi game Việt Nam?” Chúng chọn đề tài làm khóa luận tốt nghiệp khơng phải với tham vọng lớn, muốn bước chân chập chững vào giới phát triển game rộng lớn, để thu lượm kiến thức lĩnh vực khó khăn đầy thú vị hi vọng tương lai khơng xa, chúng tơi góp phần sức lực giái đáp trăn trở cộng đồng người chơi game Việt Nam 2.2 Mục tiêu Xây dựng Game Engine đa chạy nhiều hệ điều hành khác nhau, hướng đến phân khúc phát triển game nhập vai trực tuyến (MMORPG) Game Engine đặt tên GEM Đây mục tiêu dài hạn, tại, thời gian làm luận văn khoảng tháng nên nhóm chúng tơi tập trung hoàn thiện thành phần Render Engine Game Engine (Xem chi tiết chương 2) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.4.1 Thiết kế Thiết kế mô đun render Địa hình tương tự thiết kế mô đun Mô mặt nước Do thiết kế chung cho mô đun mở rộng thành phần SceneNode mơ đun Quản lí Khung cảnh có triển khai riêng hiệu ứng đồ họa Hình 24: Kiến trúc mơ đun Địa hình Các thành phần (lớp) bao gồm ( xem Hình 24): ‒ TerrainParameters: mở rộng lớp EffectParameters (mơ đun Quản lí Tài ngun – Hồng Tuấn Hưng) Có nhiệm vụ lưu trữ tham số cho hiệu ứng dùng để render bề mặt địa hình ‒ TerrainEffect: mở rộng lớp Effect Đây lớp giao tiếp với chương trình Cg render bề mặt địa hình ‒ TerrainSceneNode: mở rộng lớp SceneNode (mơ đun Quản lí Khung Cảnh) Đây lớp giao tiếp với người lập trình ứng dụng, có nhiệm vụ quản lí điều khiển q trình render bề mặt địa hình từ heightmap Q trình hoạt động mơ đun thực sau: 33 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ‒ Bước 1: khởi tạo thành thuộc lớp sử dụng chung cho đối tượng TerrainSceneNode ‒ Bước 2: khởi tạo đối tượng TerrainSceneNode ‒ Bước 3: cập nhật clip map theo vị trí camera ‒ Bước 4: render tầng clipmap kích hoạt Sau quay lại bước thực render khung hình 4.4.2 Thiết kế chức Với thiết kế trên, mô đun cần cung cấp chức sau đây: Hì nh 25: Sơ đồ hoạt động mô đun ‒ Tiền khởi tạo: khởi tạo render context cho render list dùng để render TerrainSceneNode TerrainEffect Phương thức thực chức phải gọi trước tạo render đối tượng TerrainSceneNode ‒ Khởi tạo: khởi tạo đối tượng TerrainSceneNode Trong đó, phải khởi tạo đối tượng TerrainParameters với giá trị mặc định sử dụng TerrainEffect Đồng thời truy cập height map khởi tạo giá trị ban đầu cho tầng của clipmap ‒ Cập nhật clipmap theo camera: cập nhật thông tin vị trí, liệu độ cao clipmap ‒ Render tầng kích hoạt: render tầng kích hoạt chương trình Cg với liệu vertex lưu vertex buffer mảng giá trị độ cao vertex Tiền khởi tạo Chức triển khai tương tự chức tiền khởi tạo mô đun Mô mặt nước (xem 3.2.2) 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khởi tạo Hình 26: Luồng thực chức khởi tạo Ngoài bước gán vào node cha, terrain render list, khởi tạo đối tượng TerrainParameters, chức khởi tạo đối tượng TerrainSceneNode cịn phải thực cơng việc sau: ‒ Tạo Vertex Buffer để lưu trữ thông tin tọa độ vertex cho khối clipmap mặt phẳng Các khối sau tạo dùng lại nhiều lần q trình render Nó bị huỷ đối tượng bị huỷ Chi tiết kĩ thuật triển khai vertex buffer ‒ Tạo tầng clipmap với giá trị mặc định Cập nhật Clipmap Đây chức quan trọng, đảm nhận vai trị cập nhật liệu clipmap vị trí camera thay đổi sau khung hình Bước phải tính active region theo vị trí camera Cụ thể là, tạo vùng diện tích hình vng xung quanh vị trí camera tương ứng với tầng clipmap Để đơn giản hóa, tơi áp dụng phương pháp lọc bỏ tầng có phạm vi nhỏ 2,5 lần độ cao camera so với mặt đất (xem chi tiết tài liệu Error! Reference source not found.) 35 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Cập nhật mảng lưu trữ giá trị độ cao vertex clip map (height field) tính normalmap từ heightfield Trước cập nhật heightfield cho tầng clipmap, ta kiểm tra vùng cần update phải update tồn loại bỏ kích hoạt từ tầng trở lên Bước cuối tính normalmap cho tầng clipmap kích hoạt từ heightfield Render Địa hình Để render bề mặt địa hình, ta phải render tồn tầng kích hoạt cịn lại Với tầng ta phải thực bước sau: Hình 27: Sơ đồ hoạt động chức Cập nhật Clipmap if (không phải tầng cao nhất) { foreach (khối con) if ( nằm view frustum) render khối } else render khối Chương trình Cg render khối triển khai sau: 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Vertex Program Fragment Program Hình 28: Sơ đồ hoạt động chương trình Render Block Trong Hình 28, vertex program tính tọa độ x, y world space từ tọa độ vertex khối, khoảng cách lưới tọa độ khối world space Tương tự, chương trình tính tọa độ u, v dùng để lấy normal từ normal map Hệ số trộn alpha hệ số dùng để tính tọa độ z trộn cao độ phần mép ngồi lưới z c (Phương trình tính clipmap với tầng thấp Phương trình tính là: z ' = z 1− giá trị alpha xem tr.4 tài liệu Error! Reference source not found.) Bước cuối chuyển tọa độ vertex sang clip space Các giá trị truyền cho fragment program tọa độ uv, giá trị z để lấy màu theo độ cao hệ số alpha để trộn vector normal Trong fragment program, hạn chế thời gian tạo demo đơn giản, sử dụng normal để tính ánh sáng khuếch tán 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.4.3 Triển khai lớp đề xuất TerrainParameters Hình 29: Triển khai Lớp TerrainParameters Đây triển khai ban đầu lớp TerrainParameters, tham số: ‒ m_World2Clip : ma trận chuyển đổi từ world space sang clip space ‒ m_GridScaleFactor : lưu trữ khoảng cách lưới tọa độ mặt phẳng khối render world space ‒ m_TexBlock: lưu trữ thông tin khối texture Tọa độ khối texture coordinate hệ số 1/w, 1/h ( w, h tương ứng độ rộng chiều cao texture) Tuy khơng dùng height map ta tính w = h = n + (với n kích thước lưới clip tầng tại) ‒ m_CameraPos : vị trí camera world space ‒ m_AlphaOffset m_OneOverWidth tham số dùng để tính giá trị hệ số alpha ‒ m_LightDirection : hướng ánh sáng Tham số dùng để tính ánh sáng khuếch tán fragment program ‒ m_Normalmap : normal map tầng render ‒ m_ZBasedColorSampler : texture lưu trữ mẫu màu theo giá trị độ cao TerrainEffect 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 30: Lớp TerrainEffect Đây lớp mở rộng lớp Effect thực việc giao tiếp với chương trình Cg render khối lưới clipmap tầng Nó có nhiệm vụ truyền tham số TerrainParameters cho chương trình Cg Vì phương thức cần triển khai updateParameters() Phương thức nhận vào đối tượng TerrainParameters, truyền tham số cho chương trình Cg trỏ điều khiển tham số chương trình Cg lưu lớp RenderBlockParams Ta đưa trỏ điều khiển tham số chương trình render khối vào lớp riêng để tiện cho việc mở rộng sau này, TerrainEffect cần giao tiếp với nhiều chương trình Cg khác Việc tất yếu phải thực ta thực triển khai chức cập nhật clipmap chương trình Cg TerrainSceneNode Lớp TerrainSceneNode lớp quan trọng nhất, hầu hết chức mô đun chủ yếu triển khai lớp (Hình 31) Để triển khai lớp TerrainSceneNode ta triển khai lớp thành phần sau: ‒ Các lớp FootPrint, RingFixUp, InteriorRing lớp quản lí vertex buffer object khối lưu trữ video memory, trình render khối Vì có hai phương thức viewFrustumCulling() ‒ kiểm tra khối có nằm trường quan sát camera hay không render() điều khiển việc render khối Chi tiết cách tổ chức liệu khối xem mục 2.3.2 “Vertex and Index Bufers” tài liệu Error! Reference source not found ‒ Lớp DegenerateTriangleRing điều khiển việc render vịng tam giác có kích thước khơng để tạo bề mặt địa hình liên tục, kín nước 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ‒ Lớp GeoClipmap lưu trữ thông tin tầng clipmap Đó kích thước, tầng, khoảng cách lưới, normalmap, mảng liệu độ cao vị trí clipmap mặt phẳng z = worldspace Hình 31: Sơ đồ lớp TerrainSceneNode lớp thành phần Lớp TerrainSceneNode triển khai phương thức sau: ‒ createTerrainList() phương thức thực chức tiền khởi tạo Nó khởi tạo RenderContext Terrain Effect cho đối tượng TerrainSceneNode sử dụng Phương thức triển khai phương thức tĩnh, gọi chương trình ứng dụng trước tạo đối tượng TerrainSceneNode 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ‒ updateEffectParameters() render() phương thức sở SceneNode sử dụng Effect ‒ initPyramidClipmap() thực khởi tạo tầng clipmap với liệu ban đầu Phương thức gọi phương thức khởi tạo TerrainSceneNode ‒ updatePyramidClipmap() thực chức cập nhật tầng clipmap bật 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết luận 5.1 Kết Các chương trình demo chạy hai máy thử nghiệm: Dell XPS M1330 ▪ CPU: T7100 (1.8GHz x 2) ▪ RAM: 2GB ▪ Card đồ họa : Nvidia GeForce 8400M GS ▪ OS: Windows Vista Home Premium Toshiba Satellite A200-10W ▪ CPU: T7200 (2.0GHz x 2) ▪ RAM: 2GB ▪ Card đồ họa: Nvidia GeForce Go 7300 5.1.1 Mô mặt nước Tôi hồn thành xong mơ đun thử nghiệm chương trình demo có WaterSceneNode: ‒ Kích thước 65x65 (vertex) tương ứng với khoảng cách 32mx32m ‒ Kích thước normalmap texture 256x256 pixel ‒ Số sóng sử dụng: sóng hình học 16 sóng texture Bảng 2: Bảng đánh giá thời gian thực thi Chỉ số đo Satellite A200 XPS M1330 Tốc độ đáp ứng (FPS) ~80 ~120 Thời gian render normalmap(ms) ~7 ~4 Thời gian render mặt nước (ms) ~5 ~5 Như vậy, hệ thống vượt qua yêu cầu đề nghị dành cho game 60 khung hình/giây 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5.1.2 Hệ thống hạt Mô đun xây dựng hồn thiện Chương trình demo thực số phép đo thực nghiệm cho kết sau: Bảng 3: Kết thực nghiệm tốc độ khung hình đáp ứng Hệ thống hạt Loại hạt Số lượng hạt XPS M1330 Ghi 10000 ~180 fps Hệ thống tĩnh 2000 (tương đương 14000 Point) ~300 fps Hệ thống tĩnh Streak 2000 ~400 fps Hệ thống tĩnh Multi Streak ~2000 ~220 fps Hệ thống động Point sprite ~400 ~190 fps Hệ thống Point Multi Point Hình 32: Hình ảnh demo hệ thống hạt Trên hình ảnh demo hệ thống hạt sử dụng để mô khói, mưa, Với kết này, ta tạo hiệu ứng tự nhiên đơn giản nhanh chóng Để có hiệu ứng phức tạp hơn, ta hồn tồn kết hợp loại hệ thống hạt khác để thu kết mong muốn 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5.1.3 Địa hình Đến thời điểm thực viết khóa luận này, tơi xây dựng khung cho mô đun Các chức triển khai xong là: ‒ Chức tạo TerainSceneNode từ heightmap loại ảnh 8-bit grayscale bitmap ‒ Chức render khối clip map cập nhật vị trí clipmap theo camera Hiện việc cập nhật normal map cho clipmap chưa triển khai thiếu hỗ trợ offscreen render nhiều texture GEM Tuy nhiên, kết đo ban đầu với việc bỏ qua tính tốn normal map Ta thu kết luận sau: ‒ Đối với thiết bị xử lí đồ họa tương ứng trước hệ NVIDIA GerForce 8000 series, việc sử dụng tính vertex texturing không thực hiệu Tuy nhiên với thể hệ sau đó, cung cấp khả nằng fast vertex texturing kĩ thuật hiệu ‒ Để hỗ trợ cho thiết bị xử lí đồ họa thấp hơn, ta cần triển khai kĩ thuật tương tự phù hợp với thiết bị Bảng 4: Kết đo số khung hình đạt hai hệ thống Độ lớn clipmap Kích thước heightmap Satellite A200-10W XPS M1330 63 512x512 pixel ~10 fps >600 fps 127 512x512 pixel ~2 fps >600 fps 5.2 Hướng phát triển Mô mặt nước Tiếp tục triển khai mở rộng cho loại sóng nước lan truyền theo dạng hình trịn, loại mơi trường nước tương tác Tìm hiểu kĩ thuật mơ mặt nước khác đánh giá so sánh với kĩ thuật để ứng dụng kĩ thuật hiệu Hệ thống hạt Triển khai thêm số lớp mở rộng kết hợp loại hạt triển 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com khai để tạo sẵn số hiệu ứng thường dùng lửa, pháo hoa, vụ nổ Địa hình Mục tiêu trước mắt tiếp tục hồn thiện triển khai mơ đun Địa hình triển khai phiên kĩ thuật geoclipmap CPU dành cho card đồ họa cấp thấp Nếu cần thiết phải triển khai kĩ thuật khác dành riêng cho hệ thống phần cứng cấu hình thấp Ngồi ra, chúng tơi tiếp tục triển khai số mô đun mở rộng khác dành cho việc mơ tự nhiên cỏ Hình 33: Hình ảnh chương trình demo Mơ mặt nước 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC Bảng kí hiệu UML sử dụng Kí hiệu Tên Ý nghĩa Activity Thể hành động Aggregation Thể quan hệ kết tập Choice Điểm rẽ nhánh có điều kiện Class Thể lớp Composition Thể quan hệ hợp thành Containment Thể quan hệ bao hàm Control Flow Thể luồng điều khiển Dependency Thể quan hệ phụ thuộc Final state Điểm kết thúc Genaralization Thể quan hệ tổng quát hóa Initial state Điểm bắt đầu Lifeline Vòng đời đối tượng Package Thể gói LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Tài liệu tham khảo Tiếng Anh [1] Karel Driesen and Urs Hölzle, The Direct Cost of Virtual Function Calls in C++, 1995 ACM [2] Mark Finch of Cyan Worlds Chapter “Effective Water Simulation from Physical Models” – GPU Gems, Addison-Wesley, 2004 [3] Tessendorf, Jerry 2001 "Simulating Ocean Water." In Proceedings of SIGGRAPH 2001 [4] A Asirvatham, H Hoppe Chapter “Terrain rendering using GPU-based geometry clipmaps” – GPU Gems 2, R Fernando, eds., Addison-Wesley, March 2005 [5] Losasso, Frank, and Hugues Hoppe 2004 "Geometry Clipmaps: Terrain Rendering Using Nested Regular Grids." ACM Transactions on Graphics (Proceedings of SIGGRAPH 2004) 23(3), pp 769–776 [6] Mark Duchaineau, Murray Wolinsky, David E Sigeti, Mark C Miller, Charles Aldrich, Mark B Mineev-Weinstein “ROAMing Terrain: Real-time Optimally Adapting Meshes” 1997 [7] The Cg Tutorial: The Definitive Guide to Programmable Real-Time Graphics [8] Gerasimov, Philip, Randima Fernando, and Simon Green 2004 "Shader Model 3.0: Using Vertex Textures." NVIDIA white paper DA-01373-001_v00, June 2004 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... chung Game Engine phát triển nằm dự án ? ?Xây dựng Game Engine đa tảng? ?? chương chương Chương 3, dành để trình bày phương pháp triển khai kĩ thuật sử dụng để cung cấp khả mô tượng tự nhiên cho Game Engine, ... bày chi tiết khóa luận ? ?Xây dựng Game Engine đa tảng – Hiệu ứng ánh sáng vật liệu” ‒ Mô tự nhiên mô đun mở rộng thành phần Quản lý khung cảnh để mơ yếu tố tự nhiên cần có game nước, địa hình, lửa,... nghệ xây dựng phát triển game Để mơ khung cảnh ngồi trời game, Game Engine phải cung cấp khả mô lại tượng tự nhiên đáp ứng thời gian thực Vì địi hỏi đó, tơi thực khóa luận với mục đích xây dựng

Ngày đăng: 01/11/2022, 20:28