首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11 -子弹调试图

DirectX 11 -子弹调试图
EN

Stack Overflow用户
提问于 2013-08-10 23:06:26
回答 3查看 2.1K关注 0票数 1

我在我自己的DirectX 11游戏引擎中使用“弹物理”,我想使用由子程序提供的调试绘图类。简单地说,您正在创建一个类,该类接收所有应该由项目绘制的线条。有没有一种简单快捷的方法,可以在DirectX 11中绘制一条3D线(最好不用缓冲区、着色器之类的东西)?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-11 13:22:36

不幸的是,没有容易的办法。您需要创建一个带线点的顶点缓冲区。如果要绘制多条线,请将所有顶点放在一个缓冲区中,以优化性能。

因为FFP已经在DirectX 10中删除了,所以您需要一个简单的着色器。顶点着色器可能只是通过视图和投影转换来转换顶点,像素着色器返回一个恒定的颜色(取决于您的需要)。

然后,使用适当的拓扑(行列表)绘制顶点缓冲区。

之所以没有简单的方法(比如Jesus的答案或OpenGL的glBegin(GL_LINES)),是因为它们无法有效地实现。向GPU传输的数据总是比需要的多。这就是为什么要由程序员使用缓冲区编写高效的代码。

票数 4
EN

Stack Overflow用户

发布于 2013-08-10 23:32:19

使用LP3DXLINE并调用D3DXCreateLine绘制一条简单的线。为您的行调用长度为2(开始、结束)数组的Draw,它应该可以工作。

编辑:这显然只是DX9。把答案留在这里以防万一对别人有帮助。

票数 1
EN

Stack Overflow用户

发布于 2013-12-22 21:52:14

在点亮的线框中使用三角形的任何机会,并使两个相同的位置: x1y1z1,x2y2z2,x2y2z2,我用DBPro做这个,它可以工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18167175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档