directx9学習(ポリゴンの表示を増やす)


  • 頂点データを増やす(InitVB関数内)

  // Initialize three Vertices for rendering a triangle
  CUSTOMVERTEX Vertices[] =
  {
    { 150.0f, 50.0f, 0.5f, 1.0f, 0xffff0000, }, // x, y, z, rhw, color
    { 250.0f, 250.0f, 0.5f, 1.0f, 0xff00ff00, },
    { 50.0f, 250.0f, 0.5f, 1.0f, 0xff00ffff, },
    { 15.0f, 5.0f, 0.5f, 1.0f, 0xffff0000, }, // 小さい三角形を増やした
    { 25.0f, 25.0f, 0.5f, 1.0f, 0xff00ff00, },
    { 5.0f, 25.0f, 0.5f, 1.0f, 0xff00ffff, },
  };

  • 実際に頂点バッファを作るときに指定するサイズも増やす(InitVB関数内)

指定するのは、頂点数x頂点データ構造体のサイズ

  // Create the vertex buffer. Here we are allocating enough memory
  // (from the default pool) to hold all our 3 custom Vertices. We also
  // specify the FVF, so the vertex buffer knows what data it contains.
  if( FAILED( g_pd3dDevice->CreateVertexBuffer( 6*sizeof(CUSTOMVERTEX),
                         0, D3DFVF_CUSTOMVERTEX,
                         D3DPOOL_DEFAULT, &g_pVB, NULL ) ) )
  {
    return E_FAIL;
  }

  • 表示するときのポリゴン数も増やす(Render関数内)

    g_pd3dDevice->DrawPrimitive( D3DPT_TRIANGLELIST, 0, 2 );

  • 増やした結果

directXでは3角形ポリゴンしか表示できないので、4角形を出すには3角形が2つ必要