问题标签 [directxmath]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - Can't properly produce a ViewProjection matrix
I have a camera class that uses the DirectXMath API:
When I store the result of GetViewProjectionMatrix() in a XMFLOAT4X4 and update it to the constant buffer, the geometry gets torn apart or doesn't show up at all when I move/rotate the camera with the keyboard.I have isolated the camera to be issue with the deforming/disappearing geometry, but I have no idea what the problem is.I mean the projection matrix can't be wrong, it's just 1 function call, so it's most likely the view matrix.Could someone tell me where the issue is?I tried different combinations of multiplication orders/transposing both/transposing only one/anything.It never works properly.
c++ - 使用 XMMatrixLookAtLH - 试图面对一个点,但不起作用/崩溃?
我将此代码用于我的 Entity 类:
并试图让它面对另一个实体。基本上我正在这样做:
发生的事情是以下三件事之一: 1.函数崩溃,因为一个断言 2.Entity 'a' 被放错了一个奇怪的位置 3.Entity 'a'消失了
这个该死的函数 XMMatrixLookAtLH 一直是我项目中问题的根源,无论我在哪里使用它,我都必须花费数小时才能让它正常工作。
如果我使用 XMMatrixRotationRollPitchYawFromVector 创建旋转矩阵,它可以完美地工作,但是我需要让它直接面对给出的点,我不知道如何让它工作。请有人给我一个建议。
c++ - 我可以将 memcpy() 与 XMMATRIX 一起使用吗?
即我可以这样做:
Matrix
是我自己的类,其中包含 16 个连续的浮点变量。我也可以对我的向量类(4 个浮点数)和 XMVECTOR 做同样的事情吗?
编辑:换句话说,XMMATRIX 是 POD 吗?
c++ - 使用 XMVECTOR 作为类成员
我知道 XMVECTOR 必须是 16 字节对齐的,因此不应该是一个类的成员(除非我确保对齐)。但是,我可以这样做吗?
c++ - 如何将 XMFLOAT3 转换为 const float *pData?
我有以下代码:
我想在 const float *pData 中传递 XMFLOAT3 吗?
c++ - 从 DX10 移动到 DX11 后 d3dx10math.h 中未解析的符号
我已将我的 DirectX 10 项目更新为 DirectX 11(使用 DirectX SDK),但它突然在链接器阶段失败,因为 d3dx10math 标头中的所有方法(如D3DXMatrixMultiply()
or D3DXVec3TransformCoord()
)都变成了未解析的符号。
其中一些来自我什至没有接触过的文件。我所做的只是将 D3DX10 和 D3D10 标头更改为 DX11,并添加设备上下文和与着色器交互的相关方法。我的项目设置也没有改变,我将 DirectXinclude
和lib
文件夹添加到 VC++ 目录中。
关于可能导致这种情况的任何线索?
c++ - binary '-' : 'DirectX::XMVECTOR' 没有定义这个运算符或转换(从 xnamath 迁移到 DirectXMath 不是那么容易)
我有一些使用xnamath.h
. 我想迁移到“全新” DirectXMath
,所以我改变了:
至
我还添加了DirectX
命名空间,例如:
我已经准备好迎接麻烦了,他们来了!
在编译过程中,我得到了错误:
对于工作正常的线路xnamth.h
:
我真的不知道如何解决它。我认为operator-
不再“不支持”了,但是什么会导致该错误以及如何解决?
这是更复杂的源代码:
我正在使用Windows 7 x64,项目目标是 x32 调试,xnamath.h
到目前为止它运行良好。
可行的解决方案是:
但与以前相比,它太令人毛骨悚然了,为xnamath
:
我真的不相信这是唯一的方法,我不能operator-
像上面那样使用。
我也有完全相同的问题operator/
。
directx - 投影矩阵变换“环绕”
我正在编写一些代码,必须将多个顶点坐标转换为 CPU 上的剪辑/投影空间(与现有应用程序集成;着色器不是这里的选项,因为应用程序稍后会提供自己的着色器),为此,我有一个测试用例,其结果是基本的“相机式”转换+投影,俯视围绕 X 轴旋转的相机。
测试用例如下:
如果我只是通过视图矩阵进行变换,我会注意到 Y 值正确移动与坐标的输入 Y 值相关;但是添加投影矩阵,Y 值似乎环绕,使得视图“北”的坐标和视图“南”的坐标在投影空间中沿相同方向延伸,这导致在目标应用程序中使用类似代码转换的最终面相互重叠,而不是按正确的顺序绘制。
在这方面我做错了什么,我如何才能得到至少这个输入的有效结果(即以与输入 Y 前进相同的方式扩展,即使这些顶点超出给定的投影范围,我怀疑应该是问题)?
directxmath - DirectXMath 是否可以在带有 OpenGL 的 OSX 和 Linux 上运行?
DirectXMath 库是跨平台的吗?是否可以在 OpenGL 和/或 OSX 和 Linux 上使用它?
c++ - AccessViolation 仅在优化的 Win32 构建 (XMMATRIX) 中
我在一个函数中设置两个 XMMATRIX** 类型的变量时遇到了一些麻烦。函数原型如下所示:
然后,稍后在函数定义中,我有以下两行:
但是,在打开了优化的 Win32 构建中,这些行给了我访问冲突。
开启优化后,很难准确推断问题出在哪里,但如果我更改这些行以将值设置为nullptr
,那么问题就会消失。