我发现Microsoft不推荐使用D3DX9,Windows SDK不附带。 我想采纳。
我错过了我的画线工具。
如何在“新”DirectX9中替换ID3DXLine和ID3DXFont?
答案 0 :(得分:4)
通常,线条和字体都是精灵。 ID3DXLine
和ID3DXFont
使用ID3DXSprite
界面。 (当然,还有其他选项,但精灵方法是最广泛使用的)
因此,首先,您需要第三方或您自己的精灵渲染器。通常,开发“卧室”精灵引擎,包括阶段:
您可以选择停止的舞台。之后,你可以回去继续。
然后,对于直线,您只需绘制一个细矩形精灵。用户将输入行的开始,结束和粗细等值,您需要进行一些简单的数学运算来计算该精灵的位置和旋转。精灵可以是彩色的或具有纹理:用于虚线,剥线,粉红色蓬松小猫等等。然后,您可以将曲线实现为一组直线。您可以选择将精灵添加到行的末尾,例如箭头。
对于文本,事情可能非常复杂(我将在这里仅讲述精灵字体):
要将字体文件中的字符(例如.ttf
)添加到位图(图像),您可以使用库。 FreeType是我所知道的最好的开源。自己解析字体可能很复杂。
然后,您可以将所有内容混合在一起,并使用文本纹理绘制线条。或者绘制由线框包围的文本。或者上面有文字的精灵。或GUI。所有这些都是精灵。
如果你仍然使用DirectX 9,你真的需要打扰Windows SDK,删除D3DX的东西吗?也许你可以继续开发Direct SDK和D3DX,如果它适合你?请注意,如果由于某种原因,您决定转移到DX11,则会DirectXTK,它会部分取代D3DX11的内容。不过,您自己的或第三方解决方案可能会更灵活,更适合您。在3D图形中还有许多精灵应用,例如广告牌,GUI,粒子等。而且一如既往,重新发明轮子是一种非常有趣和积极的体验;)
希望它有所帮助。快乐的编码!
答案 1 :(得分:-2)
为什么不尝试使用DirectX 11?
几乎任何平台都支持OTERhwise OpenGL。
我建议尝试使用SDL,它有大多数可以想象的2D东西的辅助方法。