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);

但仍然绘制了一个角度不同的三角形..请解释我必须改变什么才能得到一个矩形。

如果您给 headstart directx12 提供一些链接或书籍,这对我真的很有帮助 ..

提前致谢 ..

4

1 回答 1

1

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

于 2016-06-30T08:55:17.150 回答