在前一节中提到的渲染方法Render()中的不同实例如何区分呢?
如: device.DrawUserPrimitives(PrimitiveType.TriangleFan,5, verts1); //绘制5个三角形
device.DrawUserPrimitives(PrimitiveType.TriangleStrip, 4, verts1); //绘制4个三角形
device.DrawUserPrimitives(PrimitiveType.TriangleList, 2, verts1); //绘制2个三角形
device.DrawUserPrimitives(PrimitiveType.LineList, 3, verts1); //绘制3条线段
device.DrawUserPrimitives(PrimitiveType.LineStrip, 5, verts1); //绘制5条线段
device.DrawUserPrimitives(PrimitiveType.PointList, 6, verts1); //绘制6个点
下面介绍DrawUserPrimitives(使用托管堆中定义的顶点索引绘制)和DrawPrimitives(使用Device中的设置的输入流来绘制)
一、DrawUserPrimitives(PrimitiveType primitiveType,int primitiveCount,object vertexStreamZeroData);
//看下参数
1.PrimitiveType primitiveType //是个枚举类
PrimitiveType.PointList //绘制若干点,枚举值为1
PrimitiveType.LineList //绘制若干线段,枚举值为2
PrimitiveType.LineStrip //将绘制的线段衔接起来,最终是一条折线,枚举值为3
PrimitiveType.TriangleList //绘制若干三角形,枚举值为4
PrimitiveType.TriangleStrip //绘制若干相连的三角形,枚举值为5
PrimitiveType.TriangleFan //绘制若干相连的三角形每两个相连的三角形共享两个顶点,所有三角形共享一个三角形
//枚举值为6
D3DPT_FORCE_DWORD //这个好像很少用到,好像与什么32位有关,具体啥意思不是很清楚(可以省略)
2.int primitiveCount //要绘制的图形的个数,几条线绘制是几个三角形
3.object vertexStreamZeroData //含有所有顶点定义的数据 如数组
二、DrawPrimitives(PrimitiveType primitiveType,int startVertex, int primitiveCount);
//第一个参数同上
//第二个参数绘制的第一个顶点索引
//第三个参数是绘制的平面数