[D3D9] 两种图元类型的区别:D3DPT_TRIANGLESTRIP D3DPT_TRIANGLEFAN

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/felicityWSH/article/details/70314918
D3DPT_TRIANGLESTRIP
每三个顶点是一组,构成一个三角形。每一组的后两个顶点,是下一个组的顶点成员。
比如ABCD, 分别会画出以下三角形:ABC BCD

D3DPT_TRIANGLEFAN
以扇形方式画三角形,第一个顶点是公共顶点0,从第二个顶点开始,每两个顶点一组,与公共顶点O组合成一个三角形。每一组的后一个顶点是下一个组的顶点成员。(如果是画一个矩形,声明顶点时最好按照顺时针或逆时针方向)
比如ABCD,分别会画出以下三角形:ABC ACD

综上,根据这两种图元类型的区别,如果要画一个如图所示的矩形:

两种图元类型对应的伪代码如下:

VertexArray[0] = Vertex::A;
VertexArray[1] = Vertex::B;
VertexArray[2] = Vertex::D;
VertexArray[3] = Vertex::C;
IDirect3DDevice9::DrawPrimitive(D3DPT_TRIANGLESTRIP, 0, 2);

VertexArray[0] = Vertex::A;
VertexArray[1] = Vertex::B;
VertexArray[2] = Vertex::C;
VertexArray[3] = Vertex::D;
IDirect3DDevice9::DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 2);


猜你喜欢

转载自blog.csdn.net/felicityWSH/article/details/70314918