您的位置:首页 > 其它

D3D9 Samples(6)--Meshes

2013-09-10 11:55 218 查看
 

 

 

D3D9 Sample(6)—Meshes
 

 

        打开Tutorial 6: Meshes项目,编译后运行,界面如下:

 



 

        这个例子主要演示网格模型(Mesh),一个三角形可以手写,但是模型通常都很庞大,有几百、几千甚至几万个点,就需要更简便、有效的管理方式。这个例子主要展示x文件的使用。

 

 

 

1. 初始化

 

         
初始化主要是加载X文件和纹理文件。在InitGeometry函数中完成。

 

1.1 用D3DX函数加载网格

 

D3DXLoadMeshFromX

加载Tiger.x文件。加载的同时,我们返回了材质数g_dwNumMaterials和材质指针。

 

 

1.2 枚举材质,加载纹理

 

根据上面得到的材质数和材质指针,我们可以遍历.x文件中定义的各种材质。每种材质除了上个sample: Lights所说的各种颜色外,还会定义一张贴图。

D3DXCreateTextureFromFileA

通过这个D3DX函数加载材质中所描述的材质。

 

 

 

 

2. 渲染

 

每一种相同材质的点组成了子集subset,绘制网格时需要分别绘制Mesh中所有的子集,每种材质代表一个子集。

 
// Set the material and texture for this subset
g_pd3dDevice->SetMaterial( &g_pMeshMaterials[i] );
g_pd3dDevice->SetTexture( 0, g_pMeshTextures[i] );

// Draw the mesh subset
g_pMesh->DrawSubset( i );


 
 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Direct3D9 3D