c++ - DirectX 11 - 子弹调试抽奖

标签 c++ directx lines bullet

我在我自己的 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/

相关文章:

c++ - 如何使用 VTK 原始保存 DICOM 系列

c++ - 正确处理 Alt-Enter/Alt-Tab 全屏分辨率

directx - 再一次: triangle strips vs triangle lists

graphics - DirectX:使用纹理的顶点着色器

C++ 使用多条线创建圆的轮廓

powershell - Powershell-连接字符串

android - 我如何告诉 Android Studio 将 GCC 4.9 与 CMake 一起使用?

c++ - 自定义枚举基础类型