为什么XMMatrixLookAtLH会导致调试错误



我正在C++中开发DirectX 11游戏,我正在尝试创建一个视图矩阵,但当我这样做时,我得到了以下调试错误:

Assertion failed!
Program: ...ate-Direct3D11BuildDebugTemplate-Direct3D11.exe
File: C:Program Files (x86)Windows Kits...DirectX...rix.inl
Line: 1971
Expression: !XMVector3Equal(EyeDirection, XMVectorZero())
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts
(Press Retry to debug the application - JIT must be enabled)'Template-Direct3D11.exe' (Win32): Loaded 'C:WindowsSysWOW64TextShaping.dll'. 
Template-Direct3D11.exe has triggered a breakpoint.

这是代码:

DirectX::XMVECTOR eyePos = DirectX::XMVectorSet(0.f, 0.f, -2.f, 0.f);
DirectX::XMVECTOR lookAtPos = DirectX::XMVectorSet(0.f, 0.f, -2.f, 0.f);
DirectX::XMVECTOR upVector = DirectX::XMVectorSet(0.f, 1.f, 0.f, 0.f);
DirectX::XMMATRIX view = DirectX::XMMatrixLookAtLH(eyePos, lookAtPos, upVector); //Debug Error

我在网上找不到任何关于这方面的信息,因为似乎每个人都有不同的错误。

有人能帮忙吗?

您正在设置的eyPoslookAtPos是相同的值。。。结果是方向的0长度单位向量。

DirectX::XMVectorSet不是初始化常量向量的最佳方式。阅读DirectXMath程序员指南,尤其是入门指南。

最新更新