我在我自己的 DirectX 11 游戏引擎中使用 Bullet Physics,我想使用 bullet 提供的调试绘图类。基本上你正在创建一个类,它接收所有应该由项目符号绘制的线。是否有一种简单快捷的方法可以在 DirectX 11 中绘制 3D 线(最好不使用缓冲区和着色器以及所有这些东西)?
最佳答案
不幸的是,没有简单的方法。您需要使用线点创建顶点缓冲区。如果您想绘制多条线,请将所有顶点放在一个缓冲区中以优化性能。
因为FFP在DirectX 10中已经被移除,所以你需要一个简单的shader。顶点着色器可能只是通过 View 和投影变换来变换顶点,而像素着色器返回恒定的颜色(取决于您的需要)。
然后您将使用适当的拓扑(线列表)绘制顶点缓冲区。
之所以没有简单的方法(例如 Jesus Ramos 的回答或 OpenGL 的 glBegin(GL_LINES)
),是因为它们无法有效地实现。总是需要向 GPU 传输比需要更多的数据。这就是程序员使用缓冲区编写高效代码的原因。
关于c++ - DirectX 11 - 子弹调试抽奖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18167175/