我正在创建一个在3D空间中渲染复杂网格的DirectX 11游戏。我正在使用顶点/索引缓冲区/着色器,这一切都正常。但是我现在想要执行一些基本的“叠加”渲染 - 更具体地说,我想在3D空间中渲染线框以显示特定区域的边界。任何时候在视野中只会有一个或两个盒子,它们的顶点会改变每一帧的位置。
因此我一直在寻找更简单的DX11渲染方法,但我找到的大多数文章仍然为非常简单的渲染准备了顶点/索引缓冲区。我知道硬件已经很好地优化了处理顶点流,但是每帧构建和填充顶点缓冲区的开销只是处理8个顶点真的是最有效的方法吗?
因此,我的问题是,在DX11中执行这种非常简单的渲染的最有效方法是什么?是否有更原始的方法(“DrawLine”,“DrawLineList(D3DXVECTOR3 [])”,...),这将是一个更好的解决方案?它的每顶点效率可能低于传递顶点缓冲区的标准方法,因为它只能用于每帧的少数几个顶点。
提前致谢
罗布
答案 0 :(得分:1)
您应该为每个基本Shape(box,sphere,...)创建一个顶点/索引缓冲区,并使用转换矩阵将其正确放置在世界中。