问题标签 [xna-math-library]

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.

0 投票
1 回答
146 浏览

c# - 与角度物体碰撞

我正在为激光束(球精灵)开发一面镜子。在那里,我试图根据镜子(矩形)的配给度来重定向延迟光束。如果碰撞物体以某个角度(45 度)而不是向后碰撞,我如何将球碰撞到正确的角度。

这是我工作的屏幕截图 在此处输入图像描述

这是我的代码:

0 投票
2 回答
2336 浏览

c++ - binary '-' : 'DirectX::XMVECTOR' 没有定义这个运算符或转换(从 xnamath 迁移到 DirectXMath 不是那么容易)

我有一些使用xnamath.h. 我想迁移到“全新” DirectXMath,所以我改变了:

我还添加了DirectX命名空间,例如:

我已经准备好迎接麻烦了,他们来了!

在编译过程中,我得到了错误

对于工作正常的线路xnamth.h

我真的不知道如何解决它。我认为operator-不再“不支持”了,但是什么会导致该错误以及如何解决

这是更复杂的源代码:

我正在使用Windows 7 x64,项目目标是 x32 调试,xnamath.h到目前为止它运行良好。


可行的解决方案是:

但与以前相比,它太令人毛骨悚然了,为xnamath

我真的不相信这是唯一的方法,我不能operator-像上面那样使用。

我也有完全相同的问题operator/

0 投票
1 回答
177 浏览

c++ - 头文件中基于 DirectX 的结构

我对 c++ 比较陌生,我正在尝试创建一个可从多个 c++ 文件访问的结构。为此,我将其写入头文件。但是,该结构需要来自 DirectX 库的标识符,即“xnamath.h”。

我的结构如下

我曾尝试在我的 resource.h 头文件中包含 xnamath 头文件,但这导致比当前问题更多的错误。据我所知,所有文件都需要该结构,因此不能在每个 .cpp 文件中重新定义该结构。

任何帮助将不胜感激,谢谢大家!

0 投票
1 回答
1106 浏览

c# - SharpDX 中是否有相当于 XNA Math 的功能?

我买了这本书“DirectX 11 3D 编程简介”,希望我可以使用 SharpDX 将所有内容移植到 C#,因为我不懂 C++。好吧,我似乎找不到 SharpDX 的 XNA Math 包装类,而这本书广泛涉及该库。还有什么我可以得到的吗,我可以下载一些 XNA Math C# 包装器,这样我就可以继续学习了?

0 投票
1 回答
279 浏览

animation - Directx X 11 中的 MD5 3D 模型和动画。正常旋转以更新模型导致 1.#QNAN00

我尝试将 MD5ANIM 和 MD5Mesh 文件(Doom 中的 3d 动画和模型格式)中的动画加载到我的 DX 11 延迟渲染器中。
一切正常,除了我必须使用 XNA Math 更新动画的模型顶点位置和法线。以下代码计算旋转法线的结果始终为 -1。#QNAN00 并且模型显示为完全黑色。除此之外,位置的计算工作正常,您可以看到动画正常运行,没有法线完全黑色。

计算开始时的值是:

浮动 tempWeight.bias = 1.0000000

XMFLOAT3 旋转点 x=-0.022973990 y=-0.053293169 z=-0.10924719

XMFLOAT3 tempVert.normal = x=0.00000000 y=0.00000000 z=0.00000000

我不得不提到我在 for 循环中计算了值。在循环之后,我存储这样的值:

干杯马克斯

0 投票
1 回答
410 浏览

c# - 使用 Kinect 的 DrawBone 角度变量

当我们想将骨骼绘制到 XNA 中时(使用 KnectSDK 和 C#),您必须计算两个关节之间的差异并在它们之间绘制骨骼。这是绘制骨骼的函数:

我只是想了解计算角度的方式以及角度公式的工作原理

谢谢

0 投票
1 回答
713 浏览

c++ - 这是数据对齐崩溃吗?(可能涉及堆栈错位,XNAMath,Visual Studio 2103)

我的 Win32,DirectX 游戏在操作向量和矩阵的代码中以发布模式崩溃。具体来说,崩溃发生在这条指令上:

014E2752 unpcklps xmm1,xmmword ptr [esp+3Ch]

RodinaRelease.exe 中 0x014E2752 处的第一次机会异常:0xC0000005:访问冲突读取位置 0xFFFFFFFF

我在深入研究汇编和寄存器方面没有太多经验,但似乎esp = 0x0043f31c这会使esp+3Ch = 0x0043f358

现在,根据thisthis,该unpcklps指令是一条 SSE 指令,需要对齐 16 个字节。0x0043f358不是 16 字节对齐的,对吗?我认为堆栈的对齐是导致我崩溃的原因是否正确?

如果是这样,我做了什么应得的????我没有在我的游戏中使用 SSE 指令,所以我可以忽略这样的对齐问题 - 这是幼稚/错误的吗?有什么办法可以关闭这种行为?

相关点:

  • 我最近升级到 Visual Studio 2013,我怀疑这个错误是在这个时候出现的。我发现了一个与我的问题类似的错误报告。

  • 我的游戏使用 XNAMath,特别是 XMMATRIX 和 XMVECTOR。通常这需要我对齐所有内容。但是,因为我不想遇到这样的问题,所以我使用 _XM_NO_INTRINSICS_ 标志进行编译,该标志应该关闭 XNAMath 对 SIMD 指令的使用。直到现在,这似乎从来都不是问题。我正在处理的具体崩溃是我自己的向量类型,但它与 XMMATRIX 代码足够接近,我相信它们都是通过优化混合在一起的。

  • 我的游戏是作为 Win32 应用程序构建的。切换到 x64 是一个可行的解决方案,或者这会是荒谬的矫枉过正吗?除了需要获得我使用的 64 位版本的库之外,我不知道会产生什么后果。

0 投票
2 回答
305 浏览

xna - DX11 中的不可见几何体

在努力理解和弥补微软在 Windows 8 中弃用 D3DX 的许多小时之后,我遇到了一个我无法摆脱的问题。

我第一次启动我的程序时,由于访问冲突,它变得不朽。重新启动计算机并重新编译并运行相同的代码后,它不会崩溃,但我应该看到的立方体不存在。

我还收到警告说“在堆上声明的对象可能未对齐 16”。根据我的研究,这通常是由于 XNA Math 而发生的。因此,在找到这个讨论之后,我几乎尝试了所有建议的内容。除了 XMFLOAT4X4 解决方案之外的一切都有效,但我的立方体仍然不可见。这是我认为相关的代码部分:

更新:所以,在启用 D3D 调试设备后,我在输出中得到了这个。我实在想不通。

更新:我的 XMMATRIXs 现在正确对齐。立方体仍然是不可见的。我也找不到 Visual Studio 图形调试器。根据我的研究,我知道它应该在哪里,它只是不存在。

0 投票
1 回答
403 浏览

c++ - XMVECTOR 类型的函数参数传递

为什么 FXMVECTOR 的定义在 32 位和 64 位上不同?为什么不应该在 32 位上通过引用传递 XMVECTOR 来使用 SIMD 的荣耀?

先感谢您!

0 投票
1 回答
125 浏览

math - 绘制 4 维和 3 维数据 - matlab

我有数据集以以下维度绘制。

  1. 密度
  2. 可访问性
  3. 土地利用组合
  4. 活力

帮我完成任务的步骤。

预期输出将是在此处输入图像描述