1

ねえ、プロジェクトで Mono の SIMD を使用して座標 (X、Y、Z) を処理しようとしていますが、Vector2 と Vector4 型のサポートしか表示されません。以前にこれに遭遇した人はいますか?回避策はありますか?

前もって感謝します。

4

1 に答える 1

4

それはレジスターの仕組みに関係しています。Vector4f を使用して、Wパーツを 0 または 1 に設定するだけで (ベクターで何をしたいかによって異なります)、すべて問題ありません。

http://tirania.org/blog/archive/2008/Nov-03.htmlは次のように説明しています。

x86 プロセッサでは、これらの命令は新しいレジスタ バンク (XMM レジスタ) を使用し、いくつかの可能な組み合わせを使用して一度に 16 バイトで動作するように構成できます。

* 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.
于 2009-10-26T22:44:23.590 に答える