2016-06-30 26 views
2

こんにちは私はdirectx12を勉強し始めました。私は以前のバージョンに関する知識がありません。Directx12 Draw rectangle

私はこの例のプログラムHelloWorldTriangleに従っており、三角形を描画しています。私は

は ..私は

Vertex triangleVertices[] = 
      { 
       { { 0.0f, 0.25f * m_aspectRatio, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } }, 
       { { 0.25f, -0.25f * m_aspectRatio, 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }, 
       { { -0.25f, -0.3f * m_aspectRatio, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }, 
       { { -0.25f, -0.2f * m_aspectRatio, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }, 

      }; 

    m_commandList->DrawInstanced(4, 1, 0, 0); 

Vertex triangleVertices[] = 
     { 
      { { 0.0f, 0.25f * m_aspectRatio, 0.0f }, { 1.0f, 0.0f, 0.0f, 1.0f } }, 
      { { 0.25f, -0.25f * m_aspectRatio, 0.0f }, { 0.0f, 1.0f, 0.0f, 1.0f } }, 
      { { -0.25f, -0.25f * m_aspectRatio, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } } 

     }; 

m_commandList->DrawInstanced(3, 1, 0, 0); 

を変更しかし、まだ別の角度で三角形を描くので、四角形を描画したい私が取得するように変更しなければならないものを教えてください矩形。

あなたには、いくつかのリンクやdirectx12をヘッドスタートする本を与えればそれは私にとって本当に参考になります。..事前に

おかげで..私は全体のコードをダウンロードする必要はありません

+2

学習に重点を置くことを強くお勧めしますDirect3D 11を使用しようとする前のDirect3D 11 Direct3D 12は、実際にDirect3D 11ランタイムを最初から書くのに慣れ親しんだ人のためのものです。詳細については、[このスレッド](http://stackoverflow.com/questions/29719853/directx-c-3d-engine-programming-learn-now-or-wait-for-directx-12/29779660#29779660)を参照してください。 。 –

+0

[DirectX 12用のDirectX Tool Kit](https://github.com/Microsoft/DirectXTK12/wiki/Getting-Started)が利用可能になりました。つまり、グラフィックスの専門家向けに設計されたDirect3D 12に取り組む前に、Direct3D 11を実際に知っているはずなので、初心者にはまったく許されません。 –

答えて

1

が、慣れますトポロジーの概念でこのプロジェクトでは、プリミティブトポロジはD3D_PRIMITIVE_TOPOLOGY_TRIANGLELISTに設定されているため、3つの頂点を使用して三角形を描画し、次に別の頂点を描画するにはさらに3つ必要になります。最後の2つの頂点と新しい頂点を使用して2番目の三角形を描画する場合は、三角形を使用する必要があります(または、D3D12_GRAPHICS_PIPELINE_STATE_DESC RasterizerState.CullMode = D3D12_CULL_MODE_NONEを設定します)