私の質問は:を使用して正しいピラミッド (三角四角錐) を描画するにはどうすればよい 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 を作成し、ピラミッドを半分回転すると、追加の三角形が見え、半分は別の平面に隠れていました。