我的问题是:如何使用 绘制正确的金字塔(三角四边形金字塔) D3DPT_TRIANGLEFAN
?
我用作积分:
CUSTOMVERTEX vertices[] =
{
{ 0.0f, 3.0f, 0.0f, 0x00ff0000, }, //The top Vertex
{ 1.0f, 0.0f, -1.0f, 0xff00ff00, }, //(A) vertex
{ 1.0f, 0.0f, 1.0f, 0xff0000ff, }, //(B) vertex
{ -1.0f, 0.0f, 1.0f, 0xffffff00, }, //(C) vertex
{ -1.0f, 0.0f, -1.0f, 0xffff00ff, }, //(D) vertex
{ 1.0f, 0.0f, -1.0f, 0xff00ff00, }, //(A) vertex
};
其中 aCUSTOMVERTEX
是:
struct CUSTOMVERTEX
{
float x, y, z;
DWORD color;
};
我称之为:
g_pD3DDevice->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, 5);
金字塔绘制正确,但屏幕上绘制了一个额外的三角形,一个由顶部和第一个顶点组成(一个直角三角形,金字塔底部的 PI / 2 角,另一个点 <<1.0 f, 0.0f, -1.0f>>(第一个点 (A))。
所以我想要隐藏那个三角形,我尝试让设备从 1 绘制到 5,但这只给了我基础( (A)-(B)-(C)-(D) 平面),我也试过了制作剔除 D3DCULL_CW,当我将金字塔旋转一半时,我可以看到额外的三角形,而它的一半被另一个平面隐藏了。