1. Trang chủ
  2. » Công Nghệ Thông Tin

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

18 314 5
Tài liệu đã được kiểm tra trùng lặp

Đ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 18
Dung lượng 561,62 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Để tạo hình khối 3D ấm trà, bạn cần sử dụng hàm D3DXCreateTeapot được định nghĩa dưới đây: HRESULT D3DXCreateTeapot LPDIRECT3DDEVICE9 pDevice, LPD3DXMESH **ppMesh, LPD3DXBUFFER *ppAd

Trang 1

Hình 7.3 khối lập phương được tạo bằng hàm D3DXCreateBox 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”

Để tạo hình khối 3D ấm trà, bạn cần sử dụng hàm D3DXCreateTeapot được định nghĩa dướ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ạn muố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ầu

Hì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ụng hàm D3DXCreateSphere được chỉ ra dưới đây:

Trang 2

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àm

D3DXCreateSphere :

//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

Trang 3

Tạ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àm

D3DXCreateCylinder được chỉ ra dưới đây sẽ chỉ ra một cách rõ ràng các đặc điểm của khố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

D3DXCreateCylinder

Bạ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ục

Chapter7\example2 trong của đĩa CD-ROM đi kèm

Định dạng của mesh trong Direct3D: File X

Tạo mesh bằng code không phải là một cách hay để tạo một thế giới 3D Hầu hết các game cần những model dạng complex và detail có chất lượng tốt, chúng có thể được tạo bằng tay Như tôi đã nói ở trên, các thanh công cụ thiết kế hiện có trên thị trường có thể

Trang 4

giúp bạn tạo các model 3D Sau khi tạo các model, bạn có thể xuất chúng vào các định dạng file

Microsoft đã tạo một dạng file chuyên dùng cho việc xuất các model 3D và nó được gọi

là file X File X có thể một trong hai dạng: text hoặc là binary Đoạn chương trình sau sẽ chỉ ra một phần nhỏ của File X ở định dạng text

MeshVertexColors{

8,

0;0.000000; 0.000000; 1.000000; 0.000000;;,

1;1.000000; 1.000000; 1.000000; 0.000000;;,

2;0.000000; 0.000000; 1.000000; 0.000000;;,

3;0.000000; 1.000000; 1.000000; 0.000000;;,

4;0.000000; 0.000000; 1.000000; 0.000000;;,

5;0.000000; 1.000000; 1.000000; 0.000000;;,

6;0.000000; 0.000000; 1.000000; 0.000000;;,

7;0.000000; 1.000000; 1.000000; 0.000000;;,

}

Đây là mẫu mô tả định dạng trong đó dữ liệu nằm trong sự điều khiển của mỗi section của X file Một mẫu có cùng tên được chỉ ra dưới đây sẽ làm việc với cấu trúc

MeshVertexColors :

template MeshVertexColors\

{ \<1630B821- 7842-11cf-8F52-0040333594A3>\

DWORD nVertexColors;\

Array IndexColor vertexColors[nVertexColors];\

}

Mỗi template chứa 2 phần: nhận dạng số đơn nhất, kèm trong trong hai dấu ngoặc, và template

có thể chứa khai báo dữ liệu Trong ví dụ này, template MeshVertexColors khai báo hai dạng

dữ liệu: kiểu DWORD dùng để chứa số véctơ colors, và một ma trận thuộc kiểu IndexColor

File X được tạo là file như thế nào?

File X thường được tạo trong các phần mềm thiết kế 3D Bạn có thể mã hóa một file X bằng phương pháp thủ công, nhưng đối với các complex model, việc này có thể sẽ rất rắc rối Thường thì một thợ đổ họa hay tạo model và sau đó xuất chúng vào định dạng file X Microsoft đã thực hiện hai chương trình có thể chuyển model thành định dạng thích hợp Chương trình đầu tiên là conv3ds.exe , là một ứng dụng command-line, chuyển một model 3D input vào định dạng file 3DS File 3DS là dạng thường được tạo trong 3ds max, các packages thiết kế khác cũng hỗ trợ định dạng file này

Chương trình thứ hai là xSkipExp.dle là một chuyển thể của 3ds max, cho phép bạn xuất trực tiếp các model từ trong môi trường thiết kế Cả hai ứng dụng này đều có trong DirectX Software Development Kit (SDK)

Lưu Mesh vào file X

Vì đã có sẵn hai chương trình để tạo file X, nên có lẽ bạn thấy lạ vì sao tôi lại chỉ cho bạn cách tạo bằng phương pháp lập trình các file cho mình Ồ, không phải tất cả các lập trình game đều viết về mã hóa đồ họa engine và trí tuệ nhân tạo AI; bạn cần phải tạo các công

cụ để hoạt động các lập trình viên trở nên dễ dàng hơn Ví dụ bạn được đề nghị tạo một ứng dụng mà có thể đọc mọi định dạng file 3D và xuất ra file X May mắn thay D3DX Utility Library đã có để cứu bạn bằng các hàm tạo file X

Trang 5

D3DXSaveMeshToX

D3DX chứa một hàm gọi D3DXSaveMeshToX mà bạn có thể sử dụng để tạo file X Trước tiên bạn có thể sử dụng hàm này, mặc dù dữ liệu của bạn phải tập trung vào một

ID3DXMesh object Như bạn mong muốn từ trước, tôi đã dẫn dắt bạn xuyên suốt quá trình tạo và biểu diễn mesh Trong phần này, tôi sẽ quay lại phần trước và chỉ cho bạn cách làm thế nào để lấy mesh đã tạo trước đó và lưu chúng vào file X

Nhắc lại một số thứ mà bạn đã học về mesh trước kia: Mesh được tạo bằng cách sử dụng một trong hai hàm: D3DXCreateMesh hoặc là D3DXCreateMeshFVF Sau khi tạo mesh, bạn bổ xung véctơ và index buffer cùng với thông tin gắn liền với model bạn đang tạo Ở đây bạn nên có một ID3DXMesh object hợp lệ tuyệt đối để chuẩn bị tạo một file X từ chúng

Hàm D3DXSaveMeshToX được định nghĩ dưới đây sẽ lấy mesh bạn tạo và lưu nó vào đĩa ở dạng file X

HRESULT D3DXSaveMeshToX(

LPCTSTR pFilename,

LPD3DXMESH pMesh,

CONST DWORD* pAdjacency, CONST D3DXMATERIAL* pMaterials, CONSTD3DXEFFECTINSTANCE* pEffectInstances,

DWORD NumMaterials,

DWORD Format

)

hàm D3DXSaveMeshToX có 6 tham số:

ƒ pFilename– là một biến kiểu string dùng để lưu tên của file X

ƒ pMesh– con trỏ trỏ tới biến ID3Dmesh

ƒ pAdjacency– con trỏ trỏ tới ma trận có 3 phần tử kiểu DWORD

ƒ pMaterials– con trỏ trỏ tới ma trận kiểu cấu trúc D3DXMATERIAL

ƒ pEffectInstances– con trỏ trỏ tới ma trận kiểu effect instances

ƒ NumMaterials– số cấu trúc D3DXMATERIAL trong biến pMaterials

ƒ Format– định dạng của file X sẽ được lưu Ba định dạng có thể có:

ƒ DXFILEFORMAT_BINARY– file X được lưu trong định dạng binary

ƒ DXFILEFOMAT_TEXT– File X được lưu ở định dạng text-viewable

ƒ DXFILEFORMAT_COMPRESSED– File X được lưu ở dạng nén

Nguồn chương trình chỉ ra dưới đây là một ví dụ về cách sử dụng hàm D3DXSaveMeshToX

LPD3DXMESH cubeMesh; // con trỏ trỏ tới ID3DXMESH

D3DXMATERIAL material ; //cấu trúc đơn D3DXMATERIAL

HRESULT HR;

//tạo mesh được dùng để lưu model khối lập phương

hr= D3DXCreateMeshFVF( 12,

8, D3DXMESH_MANAGED,

D3DFVF_CUSTOMVERTEX,

pd3dDevice,

&cubeMesh);

//tạo véctơ và index buffer

//hàm này không được định nghĩa ở đây, nhưng nó điền véctơ và index buffers của mesh //với thông tin cần thiết cho một khối lập phương Bạn có thể xem phần tạo mesh từ code

//để có thể mô tả một cách đầy đủ về hàm này

Trang 6

Setup VBIB();

//Lấy một đối tượng mesh hợp lệ và lưu nó vào file X

D3DXSaveMeshToX (“cube.x”, //tên file sẽ lưu

cubeMesh, //giao diện ID3DXMESH NULL, //dữ liệu liền kề( không sử dụng) &material, //ma trận kiểu cấu trúc D3DXMATERIAL

NULL, //ma trận kiểu effect instances(không sử dụng)

1, // số cấu trúc kiểu D3DXMATERIAL DXFILEFORMAT_TEXT); // lưu file X vào dạng text

Phần quan trọng trong đoạn chương trình này là việc gọi hàm D3DXSaveMeshToX Hàm này trình bày tỉ mỉ tên file đựoc lưu, mesh object được lưu và định dạng file X được lưu

Hình 7.6 sẽ chỉ ra mesh của khối lập phương cube.x , nó giống với hình khi xem từ ứng

dụng MeshView trong thư mục DXSDK\Bin\DXUtils Ứng dụng này được cài đặt khi bạn cài đặt DirectX SDK

Bạn có thể tìm thấy đầy đủ source của ví dụ về lưu file X chỉ ra cách sử dụng hàm D3DX được mô tả trong chương này ở chapter7\exemple3 trong của CD-ROM

Hình 7.6 file cuble.x được hiển thị bằng ứng dụng MeshView

Load một Mesh từ file X

Giờ bạn đã biết làm thế nào để lưu file X, vậy câu hỏi tiếp theo là: làm thế nào để load một file X từ đĩa? Bạn có thể viết một loader cho mình, việc này rất cần thiết để bạn hiểu

biết rộng các định dạng file X, hoặc bạn có thể xem thêm trong thư viện D3DX

Vì file X là định dạng file mà Microsoft cung cấp cho DirectX nên Microsoft cũng đã cung cấp hàm để loading những file này vào ứng dụng của bạn

Trang 7

Sử dụng hàm D3DXLoadMeshFromX

Hàm D3DXLoadMeshFromX định nghĩ dưới đây đựợc sử dụng để load file X từ đĩa:

HRESULT D3DXLoadMeshFromX(

LPCTSTR pFilename,

DWORD Options,

LPDIRECT3DDEVICE9 pDevice,

LPD3DXBUFER* ppAdjacency,

LPD3DXBUFER* ppMaterials,

LPD3DXBUFER* ppEffectInstances,

DWORD* pNumMaterials,

);

Hàm D3DXLoadMeshFromX có 8 tham số:

ƒ pFilename– một chuỗi dùng để lưu file X

ƒ Options – cờ hiệu chỉ định mesh sẽ được load như thế nào Bạn có thể tìm thấy những giá trị này trong bảng liệt kê D3DXMESH

ƒ pDevice– Direct3D device hợp lệ

ƒ ppAdjacency– adjacency buffer

ƒ ppMaterials– con trỏ trỏ tới buffer chứa giữ liệu

ƒ ppEffectInstances– con trỏ của buffer chứa ma trận effect instances

ƒ pNumMaterials– số material mà bạn tìm thấy trong biến ppMaterials

ƒ ppMesh– đối tượng ID3DXMesh sẽ lưu giữ mesh khi hàm này kết thúc xong Đoạn code sau chỉ ra cách làm thế nào để sử dụng hàm D3DXLoadMeshFromX cho việc load một file X từ đĩa

//biến giữ giá trị trả về

HRESULT hr;

//biến giữ mesh được load lên

LPD3DXMÉH pMeshSysMem;

//buffer giữ dữ liệu liền kề

LPD3DXBUFFER ppAdjacencyBuffer;

// buffer giữ materials

LPD3DXBUFER pD3DXMtrBuffer;

//load mesh từ đĩa

hr= D3DXLoadMeshFromX(

“cube.x”,

D3DXMESH_SYSTEMMEM,

pd3dDevice,

&ppAdjacencyBuffer,

&pD3DXMtrBuffer,

NULL,

&m_dwNumMaterrials,

&pMeshSysMem

);

// kiểm tra mesh đã load thành công chưa

if (FAILDED (hr))

return false;

Đoạn code trên load mesh trong file cube.x và đưa nó vào biến pMeshSysMem Trong suốt quá trình gọi hàm D3DXLoadMeshFromX , biến m_dwNumMaterials đã được gán bởi số materials trong mesh Sử dụng giá trị này, bạn có thể lấy materials từ mesh và đưa chúng vào material buffer để sử dụng sau này Mỗi buffer được sử dụng khi kết xuất mesh làm thay đổi material chung của các nhóm nhỏ

Trang 8

Vì biến pD3DXMtrBuffer chứa tất cả thông tin vể material của mesh, nên bạn cần tách mỗi nhóm material thành các cấu trúc riêng kiểu D3DMATERIAL9 Đoạn code sau sẽ lấy một con trỏ của material trong mesh và đưa nó vào trong kiểu cấu trúc D3DMATERIAL9 bằng vòng lặp for

//lấy con trỏ trỏ tới material buffer trong mesh

D3DXMATERIAL* matMaterials = (D3DXMATERIAL*)pD3DXMtrBuffer->GetBufferPointer(); //khai báo ma trận của material

D3DXMATERIAL9* m_pMeshMaterials;

//tạo hai phần tử cấu trúc D3DXMATERIAL9

m_pMeshMaterials = new D3DXMATERIAL9 [m_dwNumMaterials];

//vòng lặp

for( DWORD i=0;i< m_dwNumMaterials; i++)

{

//copy material

m_dwNumMaterials[i]=matMaterials[i].MatD3D;

//lấy màu xung quanh cho material (D3DX không làm việc này)

m_ dwNumMaterials[i].Ambient – m_ dwNumMaterials[i].Diffuse;

}

Bây giờ mesh đã được load, bạn có thể dễ dàng kết xuất chúng lên màn hình Hàm

drawMesh sau đây chỉ ra một cách thường dùng để kết xuât mesh từ file X

/****************************************************************************

*drawMesh

*****************************************************************************

void dxManager::drawMesh(void)

{

D3DXMATRIX meshMatrix, scaleMatrix, rotaMatrix;

createCamera(1.0f, 750.0f); //

moveCamera(D3DXVECTOR3(0.0F, 0.0F, -450.0F));

pointCamera(D3DXVECTOR3(0.0F, 0.0F, 0.0F));

//lấy độ quay

//D3DXMatrixRotationY(&rotateMatrix, timeGetTime()/1000.f);

//lấy vô hướng

D3DXMatrixScaling(&rotaMatrix, 0.5f, 0.5f, 0.5f);

//làm tăng vô hướng và độ quay của ma trận

D3DXMatrixMultiply(&meshMatrix, &scaleMatrix, &roteMatrix);

//dịch chuyển đối tượng trong môi trường

pd3dDevice->SetTransform(D3DTS_WORLD, &rotateMatrix);

//vòng lặp

for( DWORD i=0;i< m_dwNumMaterials;i++) {

//lấy materials cho mesh

pd3dDevice->SetMaterial(&m_pMeshMaterials[i]);

//vẽ mesh con pMeshSysMem->DrawSubset(i);

}

}

Bây giờ bạn có thể thấy mesh trên màn hình mà bạn đã load từ file X Hình 7.7 chỉ ra mô hình con cá heo được kết xuât File X của mô hình cá heo có trong DirectX SDK và bạn

có thể tim thấy trong DXSDK\Samples\Media Bạn cũng có đầy đủ source code về ví

dụ chỉ ra cách làm thế nào để load một file X từ đĩa ở thư mục Chapter7\example4 trong CD-ROM

Trang 9

Hình 7.7 mô hình cá heo được kết xuất từ file X

Tổng kết chương

Giờ bạn đã có thể load vào một 3D model, và làm cho game của bạn thật hơn trong phần tiếp theo.Bạn sẽ không bị giới hạn bởi những hình khối hay hình cầu đơn giản mà có thể dùng được những vật thể thật sự Nếu bạn không có kỹ xảo thiết kế 3D, bạn vẫn có thể cải thiện game của mình bằng cách lấy những mô hình của rất nhiều model 3D có trên mạng

Những vấn đề đã học

Trong chương này bạn đã học những vấn đề sau

ƒ Làm thế nào để tạo một mesh

ƒ Hiển thị một mesh đã tạo như thế nào

ƒ Tối ưu dữ liệu trong mesh bằng cách nào

ƒ Cắt mesh thành các phần nhỏ để nhiều material được dùng cùng một lúc như thế nào

ƒ Các bước cần thiết để load mesh vào định dạng file X từ đĩa

ƒ Làm thế nào để tạo và lưu file X

Câu hỏi ôn tập

Bạn có thể tìm thấy câu trả lời cho câu hỏi ôn tập và bài tập trong Appendix A, “Answers to End-of-Chapter Exercises”

1 Hai hàm nào được dùng khi tạo mesh?

2 Hàm OptimizeInplace khác với hàm Optimize ở điểm nào?

3 Bảng đặc tính chứa trong mesh dùng để làm gì?

4 Hàm nào trả về số vectơ trong mesh?

5 Ba kiểu cờ hiệu định dạng gì giúp bạn sử dụng hàm D3DXSaveMeshToX?

Bài tập tự làm

1 Viết một ví dụ nhỏ về load và hiển thị nhiều file X một lúc

2 Viết một hàm mà trả về bản tối ưu của một mesh

Trang 10

VẬT THỂ, ĐIỂM CHÈN VÀ

CÁC HIỆU ỨNG

article được sử dụng ở mọi nơi trong game để tạo ra những hiệu ứng khó quên Từ những quả rocket tìm kiếm mục tiêu cho đến những vụ nổ mà nó tạo ra, particle làm cho thế giới ảo trong game trở lên hấp dẫn hơn.

Những gì bạn sẽ được học trong chương này:

ƒ Particle là gì và được dùng thế nào

ƒ Particle bao gồm những thuộc tính gì

ƒ Làm thế nào để định nghĩa và render các particle

ƒ Particle emitter là gì và ứng dụng của nó

ƒ Cách render các particle bằng Direct3D’s point sprite

Particles

Particle được dùng trong game để biểu diễn những mảnh vỡ nhỏ, tia lửa của pháo hoa, hay bất

kỳ một thực thể nhỏ chuyển động nào

Mỗi particle là một thực thể độc lập với cách thức chuyển động và biểu hiện được định nghĩa trước, ngay khi nó được tạo ra Trong suốt quá trình tồn tại, nó tự cập nhật các thuộc tính về hướng di chuyển và tốc độ di chuyển Particle dùng cho các hiệu ứng khác nhau thường được tạo ra từ một thứ gọi là emitter Công việc của emitter là tạo ra và xác lập các thuộc tính cho particle trước khi kích hoạt chúng Emitter cũng điều khiển cả số lượng và thời điểm tạo ra các particle

Particle được tạo ra bởi các đa giác có texture, gọi là billboard, chúng luôn hướng (mặt phẳng)

về phía camera Billboard có rất nhiều ứng dụng như tạo các đám mây, rừng cây, và nhiều hơn

cả là tạo các particle Bởi vì mỗI billboard thường chỉ chứa 2 tam giác (với 1 loạI texture), nên bạn có thể render một chuỗI nhiều billboard để tạo ra các hiệu ứng đặc biệt đẹp mắt

Trước khi tung các particle vào trong scene, bạn cần biết chi tiết cách mà nó làm việc

Các thuộc tính của Particle

Mỗi particle có những thuộc tính riêng quy định cách biểu hiện của nó Danh sách dướI đây là một vài thuộc tính cơ bản mà hầu hết các particle đều có:

P

CHƯƠNG 8

Ngày đăng: 31/07/2014, 01:20

HÌNH ẢNH LIÊN QUAN

Hình 7.3 khối lập phương được tạo bằng hàm D3DXCreateBox - Các bước đầu về DirectX phần 7 pot
Hình 7.3 khối lập phương được tạo bằng hàm D3DXCreateBox (Trang 1)
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 - Các bước đầu về DirectX phần 7 pot
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 (Trang 2)
Hình 7.6 file cuble.x được hiển thị bằng ứng dụng MeshView. - Các bước đầu về DirectX phần 7 pot
Hình 7.6 file cuble.x được hiển thị bằng ứng dụng MeshView (Trang 6)
Hình 7.7 mô hình cá heo được kết xuất từ file X. - Các bước đầu về DirectX phần 7 pot
Hình 7.7 mô hình cá heo được kết xuất từ file X (Trang 9)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN