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 );
相关文章推荐
- D3D9 Samples(7)--EmptyProject
- D3D9 Samples(8)--SimpleSample
- D3D9 Samples(9)--BasicHLSL
- D3D9 Samples(10)--Text3D
- D3D9 Samples(11)--HLSLwithoutEffects
- D3D9 Samples(12)--CompiledEffect
- D3D9 Samples(1)--CreateDevice
- D3D9 Samples(14)--StateManager
- D3D9 Samples(2)--Vertices
- D3D9 Samples(15)--CustomUI
- D3D9 Samples(3)--Matrices
- D3D9 Samples(16)--Pick
- D3D9 Samples(4)--Lights
- D3D9 Samples(5)--Textures
- [转]samples about delegates
- Policy Injection Application Block Samples
- 101 LINQ Samples(from MSDN)
- Acegi-security-samples-tutorial-1.0.7.zip 实例学习笔记
- D3D9 vs D3D1x
- acegi-security-samples-contacts分析