Directx12绘制矩形

时间:2016-06-30 05:01:54

标签: visual-c++ directx directx-12

您好我开始学习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 ..

,对我来说真的很有帮助

提前致谢..

1 个答案:

答案 0 :(得分:1)

我不想下载整个代码,但要熟悉拓扑概念。在这个项目中,原始拓扑设置为D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,因此它将使用3个顶点绘制三角形,然后再需要3个以绘制另一个顶点。如果你想使用最后2个顶点和新的顶点绘制第二个三角形,你必须使用triangletrip,但是要确保你的新三角形面向正确(或者设置D3D12_GRAPHICS_PIPELINE_STATE_DESC RasterizerState.CullMode = D3D12_CULL_MODE_NONE)