第六章 Mesh对象
一、什么是Mesh?
前面已经接触过Mesh类,在这里则对它进行详细介绍
Mesh可以用来储存任何类型的图形数据,但主要用来封装复杂的模型。Mesh类同样也有一些用来提高渲染物体性能的方法。使用Mesh可以从外部文件读入3D的模型文件,比如MaYa文件,这样就可以在3D Max或MaYa等软件中做好模型,然后读入程序。
Mesh对象内部也包含了很多几何体的模型。
Mesh对象包位于Direct3D扩展库(D3DX Direct3D Extensions library)中。注意添加对Direct3DX.dll程序集的引用。
Mesh类有三个构造函数。Mesh类有几个静态方法用来创建或加载不同的模型。
所有的Mesh对象都包含了一个顶点缓冲和一个索引缓存,除此之外,他还包含了一个属性缓冲(attribute buffer)。
二、使用Mesh
在前面,已经使用以下方法建立了Mesh对象:
private Mesh mesh = null;
mesh = Mesh.Box(device,2.0f,2.0f,2.0f);
这样就建立了一个长宽高都为2的立方体。
如果创建一个圆柱或园台或园锥则是这样的:
mesh = Mesh.Cylinder(device,2.0f,2.0f,2.0f,36,36);
第二和第三个参数Radius1,Radius2 表示圆柱体的下底面和上底面半径,必须为非负;第四个参数Length 表示圆柱体在Z方向的高度;第五个参数Slices 表示沿中心轴的片段数量,第六个参数Stacks 表示沿主轴的“