在前一节中提到的渲染方法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);
//第一个参数同上
//第二个参数绘制的第一个顶点索引
//第三个参数是绘制的平面数
本文详细介绍了Direct3D中的DrawUserPrimitives和DrawPrimitives方法,包括它们的参数解析,如PrimitiveType枚举用于区分不同图形类型(如点、线段、三角形),以及如何指定绘制的数量和顶点数据。通过实例展示了各种图形的绘制,帮助理解Direct3D的图形渲染过程。

1061

被折叠的 条评论
为什么被折叠?



