您好我开始学习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 ..
,对我来说真的很有帮助提前致谢..
答案 0 :(得分:1)
我不想下载整个代码,但要熟悉拓扑概念。在这个项目中,原始拓扑设置为D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST,因此它将使用3个顶点绘制三角形,然后再需要3个以绘制另一个顶点。如果你想使用最后2个顶点和新的顶点绘制第二个三角形,你必须使用triangletrip,但是要确保你的新三角形面向正确(或者设置D3D12_GRAPHICS_PIPELINE_STATE_DESC RasterizerState.CullMode = D3D12_CULL_MODE_NONE)