2

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

三角形をレンダリングするこのサンプルプログラム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.25f * m_aspectRatio, 0.0f }, { 0.0f, 0.0f, 1.0f, 1.0f } }

        };

m_commandList->DrawInstanced(3, 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.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);

しかし、それでも角度の異なる三角形を描画します..長方形を得るために何を変更しなければならないかを説明してください。

directx12を始めるためのリンクや本をいくつか教えていただければ、本当に助かります..

前もって感謝します ..

4

1 に答える 1

1

コード全体をダウンロードするつもりはありませんが、トポロジの概念に慣れてください。このプロジェクトでは、プリミティブ トポロジが D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST に設定されているため、3 つの頂点を使用して三角形を描画し、別の頂点を描画するにはさらに 3 つの三角形が必要になります。最後の 2 つの頂点と新しい頂点を使用して 2 番目の三角形を描画する場合は、trianglestrip を使用する必要がありますが、新しい三角形が正しい方向を向いていることを確認してください (または、D3D12_GRAPHICS_PIPELINE_STATE_DESC RasterizerState.CullMode = D3D12_CULL_MODE_NONE を設定します)。

于 2016-06-30T08:55:17.150 に答える