DirectX 中的 XMVECTOR
XMVECTOR in DirectX
抱歉这个愚蠢的问题....但为什么这不起作用?为了显示问题,我写了这个简单的代码:
#include <windows.h>
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;
int main()
{
XMVECTOR c = XMVECTORSet(3.0f, 3.0f, 3.0f, 3.0f);
return 0;
}
VS 答案"error C3861: 'XMVECTORSet': identifier not found"
你应该使用XMVectorSet
而不是XMVECTORSet
(这个函数不存在)
上的函数定义
有多种方法可以为 DirectXMath 初始化矢量化常量。当参数是浮点变量而不是文字值时,XMVectorSet
最好。
XMVECTOR c = XMVectorSet( 3.f, 3.f, 3.f, .3f );
对于文字常量,最好使用:
const XMVECTORF32 c = { 3.f, 3.f, 3.f, 3.f };
clang will want you to write it as: const XMVECTORF32 c = { { { 3.f, 3.f, 3.f, 3f.f } } };
if you have -Wmissing-braces
enabled.
其他选项(同样,对于文字值来说不是最好的,但对于变量来说更好):
XMVECTOR c = XMVectorReplicate( 3.f );
float x = 3.f;
XMVECTOR c = XMVectorReplicatePtr(&x);
const XMVECTORF32 t = { 1.f, 2.f, 3.f, 4.f };
XMVECTOR c = XMVectorSplatZ(t);
DirectXMath Programmer's Guide 是一篇简短的文章,涵盖了很多用例。
If you are new to DirectXMath, you should consider using the SimpleMath wrapper types for DirectXMath that is included in DirectX Tool Kit for DX11 / DX12.
抱歉这个愚蠢的问题....但为什么这不起作用?为了显示问题,我写了这个简单的代码:
#include <windows.h>
#include <DirectXMath.h>
#include <DirectXPackedVector.h>
#include <iostream>
using namespace std;
using namespace DirectX;
using namespace DirectX::PackedVector;
int main()
{
XMVECTOR c = XMVECTORSet(3.0f, 3.0f, 3.0f, 3.0f);
return 0;
}
VS 答案"error C3861: 'XMVECTORSet': identifier not found"
你应该使用XMVectorSet
而不是XMVECTORSet
(这个函数不存在)
有多种方法可以为 DirectXMath 初始化矢量化常量。当参数是浮点变量而不是文字值时,XMVectorSet
最好。
XMVECTOR c = XMVectorSet( 3.f, 3.f, 3.f, .3f );
对于文字常量,最好使用:
const XMVECTORF32 c = { 3.f, 3.f, 3.f, 3.f };
clang will want you to write it as:
const XMVECTORF32 c = { { { 3.f, 3.f, 3.f, 3f.f } } };
if you have-Wmissing-braces
enabled.
其他选项(同样,对于文字值来说不是最好的,但对于变量来说更好):
XMVECTOR c = XMVectorReplicate( 3.f );
float x = 3.f;
XMVECTOR c = XMVectorReplicatePtr(&x);
const XMVECTORF32 t = { 1.f, 2.f, 3.f, 4.f };
XMVECTOR c = XMVectorSplatZ(t);
DirectXMath Programmer's Guide 是一篇简短的文章,涵盖了很多用例。
If you are new to DirectXMath, you should consider using the SimpleMath wrapper types for DirectXMath that is included in DirectX Tool Kit for DX11 / DX12.