首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用DirectX 9渲染2D覆盖

如何使用DirectX 9渲染2D覆盖
EN

Stack Overflow用户
提问于 2015-10-31 17:22:32
回答 2查看 617关注 0票数 0

所以我有一个用DirectX 9在C++上开发的游戏,它是3D的,但我想有一个2D叠加。我听说我可以使用D3DXMatrixOrthoLH,但我对如何使用它感到非常困惑。我更熟悉OpenGL,我可以通过启动视图在3D和2D之间简单地切换。如果有一个使用DirectX 9如何做到这一点的例子,那就更好了!

非常感谢!

EN

回答 2

Stack Overflow用户

发布于 2015-11-01 03:36:01

您可以使用D3DX9库中的ID3DXSprite类为平显绘制2D纹理。

您可以使用标识转换并使用标准化坐标( -1,-1到1,1)绘制,但大多数人发现定位元素不太直观。相反,他们创建一个简单的正交投影变换,将标准化的坐标映射到更自然的东西,如像素(0,0到宽度,高度)。如果您使用的是左手视图坐标,则可以使用D3DXMatrixOrthoOffCenterLH;如果您使用的是右手视图坐标,则可以使用D3DXMatrixOrthoOffCenterRH (这对于2D图形并不重要,但使其与3D图形保持一致不会造成太大的混乱)。

您为什么要使用已有十多年历史的传统DirectX 9?如果你使用的是Direct3D 11,你可以使用DirectX Tool KitSpriteBatch类来绘制你的HUD。不推荐使用Windows,不推荐使用D3DX库,不推荐使用D3DXMath,并且在Windows8或更高版本上不支持DirectX 9的调试。请参阅MSDN

票数 1
EN

Stack Overflow用户

发布于 2015-11-01 20:22:42

感谢大家的帮助。我决定去掉DirectX,回到我更熟悉的老OpenGL。

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

https://stackoverflow.com/questions/33449990

复制
相关文章

相似问题

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