我有一个DirectX 11项目,我使用Beginning DirectX 11 Game Programming
书通过所有章节。我有我的相机的地方,它一直在没有崩溃,但最近在调试我的Obj Loader时我发现它在XMMatrixTranspose
线路上不断崩溃,我换了我的视图矩阵和投影矩阵来查看是否它是特定于我的观点矩阵而不是。XMMatrixTranspose访问冲突读取位置0xFFFFFFFF
这里的代码导致错误
vMatrix = camera.GetViewMatrix();
vMatrix = XMMatrixTranspose(vMatrix);
pMatrix = XMMatrixPerspectiveFovLH(XM_PIDIV4, (float)(screenWidth/screenHeight), 0.01f, 100.0f);
pMatrix = XMMatrixTranspose(pMatrix);
块这是我DX11::Render
功能找到。这在我的main.cpp
游戏循环中被调用,如下所示。
MSG msg = { 0 };
while (msg.message != WM_QUIT)
{
if (PeekMessage(&msg, 0, 0, 0, PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
else
{
directX->Update(0.0f);
directX->Render();
}
}
directX->Shutdown();
我的变量的所有记忆和该代码已经工作之前,当它开始这样做,它会做得很间歇,但现在它似乎是在做这一切的时候。
任何帮助和指导将是惊人的!我一直在研究几个小时,找不到任何有用的东西,我已经有了这个问题约7个小时!它要走了!
在此先感谢。
UPDATE现在已经回到了间歇性崩溃
更新2我还使用xnamath不DXMath
的可能的复制[DX11崩溃时访问XMMATRIX],因为这是使用XMMatrixTranspose功能(http://stackoverflow.com/questions/22133742/dx11-crash-when-accessing-xmmatrix) –
是。 –
Zach,XMMATRIX变量未对齐的问题是众所周知的,并给出了您所看到的症状。我建议你尝试链接答案中的建议。 –