Mono.Simd Vector3(浮点数)丢失?

发布于 2024-08-09 04:26:02 字数 116 浏览 3 评论 0原文

嘿亚,我正在尝试使用 Mono 的 SIMD 来处理我的项目中的坐标(X,Y,Z), 但我只看到对 Vector2 和 Vector4 类型的支持。有没有人遇到过这个问题,有什么解决方法吗?

提前致谢。

Heya, I'm trying to use Mono's SIMD to handle coordinates(X,Y,Z) in my project,
but I only see support for Vector2 and Vector4 types. Has anyone run into this before, and are there any workarounds?

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哑剧 2024-08-16 04:26:02

这与寄存器的工作方式有关。您只需使用 Vector4f 并将 W 部分设置为 0 或 1(取决于您想要对矢量执行的操作),一切都会好起来的。

http://tirania.org/blog/archive/2008/Nov-03。 html 解释:

在 x86 处理器上这些指令
使用新的寄存器组(XMM
寄存器)并可以配置为
使用a一次处理16个字节
可能的组合数量:

* 对 16 个元素进行字节级操作。
* 对 8 个元素进行短级操作。
* 对 4 个元素进行单精度或整数级运算。
* 对 2 个元素进行双精度或长整数运算。

That's connected to the way the registers work. You can just use the Vector4f and set the W part to 0, or 1 (depending on what you want to do with the vector) and everything will be ok.

http://tirania.org/blog/archive/2008/Nov-03.html explains:

On x86 processors these instructions
use a new register bank (the XMM
registers) and can be configured to
work on 16 bytes at a time using a
number of possible combinations:

* byte-level operations on 16 elements.
* short-level operations on 8 elements.
* single precision or integer-level operations on 4 elements.
* double precision or long-integer operations on 2 elements.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文