1

私は飛行機の絵を描きたいです。ここに画像の説明を入力

今私は頂点バッファを試してみて、DrawPrimitive は D3DPT_LINESTRIP です。しかし、私が望む効果はありません。

だから、それ以上に効果的ですか?

アドバイスをください。ありがとうございました。

4

3 に答える 3

1

これはオプションかもしれませんが、最適ではありませんが、そのグリッドを実現します

void DrawGrid (float32 Size, CColor Color, int32 GridX, int32 GridZ)
{
  // Check if the size of the grid is null
        if( Size <= 0 )
                return;

  // Calculate the data
  DWORD grid_color_aux = Color.GetUint32Argb();
  float32 GridXStep = Size / GridX;
  float32 GridZStep = Size / GridZ;
  float32 halfSize = Size * 0.5f;

  // Set the attributes to the paint device
  m_pD3DDevice->SetTexture(0,NULL);
  m_pD3DDevice->SetFVF(CUSTOMVERTEX::getFlags());

  // Draw the lines of the X axis
  for( float32 i = -halfSize; i <= halfSize ; i+= GridXStep )
  {
    CUSTOMVERTEX v[] =
      { {i, 0.0f, -halfSize, grid_color_aux}, {i, 0.0f, halfSize, grid_color_aux} };

    m_pD3DDevice->DrawPrimitiveUP( D3DPT_LINELIST,1, v,sizeof(CUSTOMVERTEX));
  }

  // Draw the lines of the Z axis
  for( float32 i = -halfSize; i <= halfSize ; i+= GridZStep )
  {
    CUSTOMVERTEX v[] =
    { {-halfSize, 0.0f, i, grid_color_aux}, {halfSize, 0.0f, i, grid_color_aux} };

    m_pD3DDevice->DrawPrimitiveUP( D3DPT_LINELIST,1, v,sizeof(CUSTOMVERTEX));
  }
}

CUSTOMVERTEX 構造体:

struct CUSTOMVERTEX
{
        float32 x, y, z;
        DWORD color;
        static unsigned int getFlags()
        {
                return D3DFVF_CUSTOMVERTEX;
        }
};

注: は線のあるグリッドにすぎないため、希望どおりの結果を得るには、ソリッド プレーンを描画する必要があります。

于 2014-12-03T14:04:53.367 に答える
0

本を紹介しますIntroduction to 3D programming with DirectX。これを行う方法については、第 8 章、セクション 4 で詳しく説明されています。

于 2014-05-07T03:18:48.487 に答える