我想在DirectX 11应用程序中画一条线。我希望它具有恒定宽度(不依赖于与相机的距离),但它必须是空间中的线(3D),所以类似于对象线线框模式。我将使用一些着色器在一个充满其他对象的场景中渲染我的线条。
使用C ++(而不是C#)在DirectX 11中实现它的最佳和最简单的方法是什么?
代码示例将不胜感激;)
答案 0 :(得分:3)
最常见的解决方案是在 IASetPrimitiveTopology 调用中使用D3D11_PRIMITIVE_TOPOLOGY_LINELIST。
我怀疑(但没有描述)它也是渲染线条的一种非常快速的方法。在您的评论中,您提到了切换原始拓扑设置的成本。我会说成本可以忽略不计,因为它归结为每帧一个状态切换(首先渲染图元,最后一行)。