[英]DirectX11 - Is it possible to render 2D graphics using D3DX11CreateTextureFromFile?
[英]How to use render a 2D overlay with DirectX 9
因此,我有一个正在使用DirectX 9在C ++中进行开发的游戏。它是3D的,但是我想要一个2D的叠加层。 我听说我可以使用D3DXMatrixOrthoLH,但是我对如何使用它感到非常困惑。 我对OpenGL更熟悉,可以在其中通过启动视图在3D和2D之间切换。 一个使用DirectX 9做到这一点的例子将是很棒的!
非常感谢!
您可以使用D3DX9库中的ID3DXSprite
类为HUD绘制2D纹理。
您可以使用身份变换并使用深度测试未完成的归一化坐标(-1,-1至1,1,1)进行绘制,但是大多数人发现放置元素不太直观。 取而代之的是,他们创建了一个简单的正交投影变换,将归一化的坐标映射到更自然的东西,例如像素(从0,0到width,height)。 您可以使用D3DXMatrixOrthoOffCenterLH
如果您使用左手视图坐标或D3DXMatrixOrthoOffCenterRH
如果您正在使用右手视图坐标(不用于2D绘图重要,但它是减少混乱,使之与你的3D绘图一致)。
为什么要使用已经使用了十年的传统DirectX 9? 如果使用的是Direct3D 11,则可以使用DirectX工具包和
SpriteBatch
类绘制HUD。 不推荐使用DirectX SDK,不推荐使用D3DX库,不推荐使用D3DXMath,并且Windows 8或更高版本不支持DirectX 9的调试。 参见MSDN
感谢所有帮助人员。 我决定从头开始DirectX,然后回到我更熟悉的旧OpenGL。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.