Giáo trình Beginning DirectX9: Phần 2
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Giáo trình Beginning DirectX9: Phần 2 Beginning DirectX9<br /> <br /> Dịch bởi TransTeam diễn đàn Gamedev.VN<br /> <br /> CHƯƠNG 7<br /> <br /> CHIA NHỎ VÀ LÀM MỊN<br /> CÁC ĐỐI TƯỢNG<br /> <br /> B<br /> <br /> ạn đã học được cách làm thế nào để tạo các object 3D bằng code và biểu diễn nó<br /> lên màn hình. Có lẽ bạn đang nghĩ rằng đây là một quá trình thật nhàm chán và<br /> chưa có cách nào để có thể tạo tất cả các object bằng code. Bạn nghĩ rất đúng.<br /> Hiện nay 3D đã nhập cuôc. Nó có thể mô tả mọi thứ trong game của bạn rất giống với<br /> thực thể. Những mô hìnhcó thể thể hiện vật thể và đặc điểm xung quanh bạn và cũng có<br /> thể là chính chính nó. Với những đặc điểm này bạn có thể đưa những mô hình này vào<br /> game, bạn có thể biểu diễn nó với đối tượng Mesh và dịch chuyển hoặc điều khiển chúng.<br /> Đây là các phần mà bạn sẽ học trong chương này:<br /> Direct3D điều khiển mesh như thế nào ?<br /> Cần những gì để hợp lý hóa một model 3D?<br /> Định dạng file X là gì?<br /> Làm thế nào để tạo và lưu giữ mesh?<br /> Làm thế nào để load một model 3D vào game?<br /> <br /> Xây dựng một thế giới 3D<br /> Mô hình 3D giúp chúng bạn thể hiện thế giới ảo mà bạn muốn tạo. Những mô hình này<br /> được bổ xung bởi gamer và đối thủ của gamer trong môi trường này. Những mô hình này<br /> được lấy từ đâu? Nếu bạn có một package thiết kế 3D giống như Max hoặc Maya, bạn đã<br /> có những công cụ cần thiết để tạo mọi thứ cho game của bạn khi cần. Nếu những chương<br /> trình trên bạn không có thì bạn có thể dùng những package khác như MilkShape 3D, nó<br /> cũng có thể làm việc tốt.<br /> Sau khi đã tạo các model, bạn đưa chúng vào một trong những định dạng file 3D hiện có.<br /> Nhưng bạn cần biết làm thế nào để load một file định dạng 3D vào game của mình. Mục<br /> đích của cuốn sách này là giúp bạn làm việc với những định dạng file mà Microsoft đã<br /> tạo ra.<br /> Chú ý:<br /> Bạn có thể tìm MilkShape 3D tại trang http://www.swissquake.ch/chumbalumsoft/index.html.<br /> <br /> 96<br /> <br /> Beginning DirectX9<br /> <br /> Dịch bởi TransTeam diễn đàn Gamedev.VN<br /> <br /> Mesh là gì?<br /> Code của bạn điều khiển những mô hình 3D được load vào trong game cũng được xem<br /> như là một Mesh. Một Mesh là một code container mà chứa mọi thứ liên quan đến đối<br /> tượng 3D. Nó bào gồm các vectơ, tọa độ texture và các dữ liệu khác. Bằng cách sử dụng<br /> dữ liệu có trong mesh object bạn có thể biểu diễn các mô hình 3D lên màn hình .<br /> Chú ý:<br /> Thư viện tổng hợp D3DX chứa tất cả mọi thứ mà bạn cần để sử dụng mesh trong Direct3D<br /> <br /> Direct3D định nghĩa một Mesh như thế nào?<br /> Hầu hết các mesh trong Direct3D đều dựa trên ID3DXBaseMesh interface. Interface này<br /> cung cấp kho dự trữ dành cho các model của bạn, giúp các methods có hiệu lực để tăng<br /> tốc độ truy cập tới dữ liệu trong mesh. Ví dụ method GetVertexBuffer luôn sẵn có trong<br /> ID3DXBaseMesh interface để giúp bạn truy cập trực tiếp tới vectơ buffer của đối tượng<br /> mesh.<br /> Dưới đây là một số kiểu Mesh khác nhau:<br /> ID3DXMesh – Đây là dạng mesh interface chuẩn mà bạn sẽ sử dụng.<br /> ID3DXPMesh – Interface này cho phép bạn sử dụng mesh tiến hành.<br /> ID3DXSPMesh – interface này điều khiển sự đơn giản hóa các mesh object.<br /> ID3DXPatchMesh - Interface này cung cấp Patch mesh theo chức năng.<br /> Mỗi một kiểu mesh có thể lưu giữ tất cả các vectơ của một model trong vectơ buffer và<br /> cung cấp cho bạn thông tin vể model, ví dụ như số phần tử hoặc là số vectơ.<br /> <br /> Tạo Mesh<br /> Bước đầu tiên khi sử dụng các mesh trong game đó là sự khởi tạo mesh object. Mesh<br /> object là kho dự trữ, cất giữ tất cả các thông tin cần thiết dùn để mô tả model của bạn<br /> trong Direct3D. Sau khi bạn đã tạo ra mesh, bạn dễ dàng copy tất cả thông tin mà model<br /> của bạn cần.<br /> Hai hàm trong Direct3D dùng để tạo mesh: D3DXCreaetMesh và D3DXCreateMeshFVF.<br /> Vì mỗi hàm này tạo mesh bằng các cách khác nhau, chúng ta sẽ làm rõ cả hai hàm dưới đây.<br /> <br /> D3DXCreateMesh<br /> Giao diện ID3DXMesh là một giao diện đơn giản nhất trong mesh interface, dễ dàng tổ chức<br /> và thực hiện một cách nhanh chóng. Trong phần này, bạn sẽ học cách làm thế nào để tạo<br /> mesh trong ID3DXMesh interface bằng hàm D3DXCreateMesh.<br /> D3DXCreateMesh(<br /> DWORD NumFaces,<br /> DWORD NumVertices,<br /> DWORD Options,<br /> CONST LPD3DVERTEXELEMENT9 *pDeclaration,<br /> LPDIRECT3DDEVICE9 pDevice,<br /> LPD3DXMESH *ppMesh<br /> );<br /> <br /> 97<br /> <br /> Beginning DirectX9<br /> <br /> Dịch bởi TransTeam diễn đàn Gamedev.VN<br /> <br /> Hàm D3DcreateMesh có 6 tham số:<br /> NumFaces. Số phần tử mà mesh sẽ chứa.<br /> NumVertices. Số vectơ mà mesh sẽ chứa.<br /> Options. Giá trị từ bảng liệt kê D3DXMESH .<br /> pDeclaration. Ma trận thuộc đối tượng D3DVERTEXELEMENT9. Những object<br /> này mô tả FVF cho mesh.<br /> pDevice. Một Direct3D device hợp lệ.<br /> ppMesh. Con trỏ trỏ tới đối tượng ID3DMesh hợp lệ.<br /> Đoạn code sau sẽ chỉ ra cách làm thế nào để tạo một đối tượng mesh mà chứa đầy đủ bộ<br /> vectơ, dùng để tạo một khối lập phương.<br /> HRESULT hr;<br /> // biến giữ một mesh được tạo mới<br /> LPD3DXMESH boxMesh;<br /> // ma trận D3DVERTEXELEMENT9<br /> D3DVERTEXELEMENT9 Declar ...
Tìm kiếm theo từ khóa liên quan:
Giáo trình Beginning DirectX9 Chia nhỏ đối tượng Sử dụng hiệu ứng Hiệu ứng âm thanh Xây dựng dự án mẫu Bài tập thực hànhTài liệu cùng danh mục:
-
Cách tăng tốc độ Download IDM Internet Download Manager
7 trang 276 0 0 -
Giáo trình Xử lý sự cố Windows & phần mềm ứng dụng
190 trang 257 1 0 -
Xử lý các lỗi hay gặp khi dùng laptop
6 trang 246 0 0 -
Tài liệu hướng dẫn sử dụng thư điện tử tài nguyên và môi trường
72 trang 241 0 0 -
Tổng hợp lỗi Win 8 và cách sửa
3 trang 218 0 0 -
Tài liệu hướng dẫn tạo nhiều tài khoản Gmai cùng lúc
5 trang 209 0 0 -
Hướng dẫn lắp ráp máy tính từ A đến Z
13 trang 209 0 0 -
Thủ thuật giúp giải phóng dung lượng ổ cứng
4 trang 206 0 0 -
UltraISO chương trình ghi đĩa, tạo ổ đĩa ảo nhỏ gọn
10 trang 200 0 0 -
Tổng hợp 30 lỗi thương gặp cho những bạn mới sử dụng máy tính
9 trang 178 0 0
Tài liệu mới:
-
55 trang 0 0 0
-
Đề thi giữa học kì 1 môn GDCD lớp 6 năm 2024-2025 có đáp án - Trường THCS Phan Đình Giót, Thanh Xuân
7 trang 0 0 0 -
Mức độ hiệu quả của các mô hình học máy tree-based trong phát hiện giao dịch gian lận thẻ tín dụng
17 trang 0 0 0 -
Đề thi học kì 2 môn Tiếng Việt lớp 4 năm 2023-2024 - Trường Tiểu học Hồng Châu, Yên Lạc
5 trang 0 0 0 -
Xâm lấn mạch máu, thần kinh và kết quả sớm của phẫu thuật nội soi trong ung thư trực tràng
7 trang 0 0 0 -
25 trang 0 0 0
-
Nghiên cứu đặc điểm lâm sàng của vàng da tăng bilirubin gián tiếp ở trẻ sơ sinh
6 trang 0 0 0 -
Đặc điểm lâm sàng, giải phẫu bệnh ung thư vú xâm nhập tái phát
7 trang 0 0 0 -
Đề thi học kì 1 môn KHTN lớp 8 năm 2024-2025 - Sở GD&ĐT Bắc Ninh
2 trang 0 0 0 -
Đề thi học kì 1 môn Toán lớp 6 năm 2024-2025 có đáp án - Trường THCS Nguyễn Văn Trỗi, Tiên Phước
16 trang 0 0 0