Danh mục

Các bước đầu về DirectX phần 7

Số trang: 18      Loại file: pdf      Dung lượng: 561.62 KB      Lượt xem: 8      Lượt tải: 0    
Hoai.2512

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tạo hình khối ấm tràHình khối ấm trà được sử dụng rộng rãi trong các ví dụ về mô hình hình học 3D và nó cũng có thể được tạo dễ dàng trong Direct3D. Bạn đã kết xuất nó vì bạn đã sử dụng nó như một mô hình trong chương 6, “Vertex Colors, Texture Mapping, and 3D Lighting”.
Nội dung trích xuất từ tài liệu:
Các bước đầu về DirectX phần 7 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9 Hình 7.3 khối lập phương được tạo bằng hàm D3DXCreateBoxTạo hình khối ấm tràHình khối ấm trà được sử dụng rộng rãi trong các ví dụ về mô hình hình học 3D và nócũng có thể được tạo dễ dàng trong Direct3D. Bạn đã kết xuất nó vì bạn đã sử dụng nónhư một mô hình trong chương 6, “Vertex Colors, Texture Mapping, and 3D Lighting”.Để tạo hình khối 3D ấm trà, bạn cần sử dụng hàm D3DXCreateTeapot được định nghĩadưới đây: HRESULT D3DXCreateTeapot( LPDIRECT3DDEVICE9 pDevice, LPD3DXMESH **ppMesh, LPD3DXBUFFER *ppAdjacency );Hàm D3DXCreateTeapot có 3 tham số cần thiết: pDevice – đối tượng Direct3D hợp lệ ppMesh – đối tượng ID3DXMesh trong đó sẽ đưa mesh được tạo vào ppAdjacency – adjacency buffer. Nếu bạn không muốn giữ thông tin này , bạn có thể truyền NULL cho tham số này.Điều không may là hàm này không cho phép bạn thay đổi kích thước của ấm trà mà bạnmuốn tạo. Dòng code đơn giản sau sẽ tạo ra một ấm trà cho bạn: D3DXCreateTeapot (pd3dDevice, &teapotMesh, NULL);Tạo hình khối cầuHình khối cầu rất có ích trong 3D. sử dụng chỉ những khối cầu, bạn có thể tạo một môhình tượng trưng cho hệ phần tử trời. Nếu bạn thấy cần tạo khối cầu, bạn có thể sử dụnghàm D3DXCreateSphere được chỉ ra dưới đây: 109 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9 HRESULT D3DXCreateSphere ( LPDIRECT3DDEVICE9 pDevice, FLOAT Radius, UINT Slices, UINT Stacks, LPD3DXMESH **ppMesh, LPD3DXBUFFER *ppAdjacency );Hàm D3DXCreateSphere có 6 tham số: pDevice – Direct3D device hợp lệ Radius – bán kính của khối cầu có kiểu float Slices – số đoạn nối chiều dọc được chỉ ra Stacks - số đoạn nối chiều ngang được vẽ ra ppMesh – đối tượng ID3DXMesh lưu giũ khối cầu được tạo ppAdjacency - adjacency buffer. Nếu bạn không muốn giữ thông tin này , bạn có thể truyền NULL cho tham số này.Đoạn chương trình nhỏ dưới đây sẽ chỉ ra cách làm thế nào để sử dụng hàmD3DXCreateSphere: //tạo khối cầu loat sphereRadius=30; int numSlices = 20; int numStacks = 20; D3DXCreateSphere ( pd3dDevice, sphereRadius, numSlices, numStacks, SphereMessh, NULL );Hình 7.4 sẽ chỉ ra một khối cầu được tạo bằng hàm D3DXCreateSphere. Độ lớn của giátrị biểu diễn qua tham số Slices va Stacks sẽ là độ nhẵn của khối cầu. 110 Dịch bởi TransTeam diễn đàn Gamedev.VNBeginning DirectX9Tạo khối trụĐối tượng cuối cùng mà chúng ta sẽ biểu diễn là một khối trụ. HàmD3DXCreateCylinder được chỉ ra dưới đây sẽ chỉ ra một cách rõ ràng các đặc điểm củakhối trụ, ví dụ như chiều dài và bán kính của mỗi đáy. HRESULT D3DXCreateCylinder ( LPDIRECT3DDEVICE9 pDevice, FLOAT Radius1, FLOAT Radius2, FLOAT Lenght, UINT Slices, UINT Stacks, LPD3DXMESH **ppMesh, LPD3DXBUFFER *ppAdjacency );Hàm D3DXCreateCylinder có 8 tham số: pDevice - Direct3D device hợp lệ Radius1 – bán kính đáy nổi của khối trụ tính dọc theo trục Z và có kiểu float Radius2 - bán kính đáy chìm của khối trụ tính dọc theo trục Zvà có kiểu float Length – chiều cao của khối trụ Slices – số phần tử tạo hình theo chiều dài của khối trụ Stacks – sô phần tử tạo hình theo chu vi đường tròn ppMesh - đối tượng ID3DXMesh lưu giữ khối trụ được tạo ppAdjacency- adjacency buffer. Nếu bạn không muốn giữ thông tin này , bạn có thể truyền NULL cho tham số này.Ví dụ sau chỉ ra cách tạo một khối trụ: //xác dịnh đặc điẻm của khối trụ float cylRadius1=2.0; float cylRadius2= 2.0; float cylLength = 7.0; int cylSlices = 10; int cylStack = 10; //tạo khối trụ D3DXCreateCylinder (pd3dDevice, cylRadius1, cylRadius2, cylLength, cylSlices, cylStack, &cylMesh, NULL); Hình 7.5 chỉ ra khối trụ được tạo bởi hàm D3DXCreateCylinderBạn có thể tìm source code của ví dụ về cách sử dụng các hàm D3DX tại thư mụcChapter7example2 tr ...

Tài liệu được xem nhiều: