2017-06-15 76 views
0

我开始使用Directx 11,并且在设置相机时遇到了一些问题。 我想设置原点到sceen的左上角,它是目前在机器人左,这是我应该如何进行设置:Directx 11 2D ortho

D3DXMatrixIdentity(&mProjection); 
D3DXMatrixIdentity(&mView); 

mPosition = D3DXVECTOR3{ 0.0f, 0.0f, -0.5f }; 
mTarget = D3DXVECTOR3{ 0.0f, 0.0f, 0.0f }; 
mUp = D3DXVECTOR3{ 0.0f, 0.0f, 0.0f }; 

D3DXMatrixOrthoOffCenterLH(&mProjection, 
    0.0f, static_cast<Float32>(WindowWidth), 
    0.0f, static_cast<Float32>(WindowHeight), 0.0f, 1.0f); 

,这里是我怎么想它enter image description here

这是目前我的坐标系统:enter image description here

+0

您应该避免使用传统D3DXMath库。它仅在已弃用的''D3DX11''帮助程序库中受支持。见[没有D3DX的生活](https://blogs.msdn.microsoft.com/chuckw/2013/08/20/living-without-d3dx/) –

回答

0

交换y参数构建矩阵:

D3DXMatrixOrthoOffCenterLH(&mProjection, 
0.0f, static_cast<Float32>(WindowWidth), 
static_cast<Float32>(WindowHeight), 0.0f, 0.0f, 1.0f); 
+0

sry它没有工作,如果我这样做,我没有看到纹理 –

+0

可以给我顶点吗?另外,检查你的三角形是不是现在被剔除 –

+0

OMG I忘记改变它的性能omg非常感谢你,你是最好的 –